/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #ifndef __com_sun_star_embed_XEmbedObjectFactory_idl__ #define __com_sun_star_embed_XEmbedObjectFactory_idl__ #include #include #include #include #include #include module com { module sun { module star { module embed { /** allows to create and initialize a new embedded object of specified type.

This interface provides user with full control over object creation.

*/ published interface XEmbedObjectFactory: com::sun::star::uno::XInterface { /** creates a new object and transport parameters for persistent initialization.

This method can be used to have a full control over persistence initialization of an object.

If the service implementation does not support XEmbedObjectCreator interface, it must accept the empty aClassID parameter in case of loading from existing entry.

@param aClassID the class id of the new object @param sClassName the class name of the new object @param xStorage a parent storage the entry should be created/opened in @param sEntName a name for the entry @param nEntryConnectionMode a mode in which the object should be initialized from entry can take values from EntryInitModes constant set @param aArgs optional parameters for the embedded document persistence initialization, see also com::sun::star::document::MediaDescriptor @param aObjectArgs optional parameters for the object persistence initialization, see also com::sun::star::embed::EmbeddedObjectDescriptor @throws ::com::sun::star::lang::IllegalArgumentException one of arguments is illegal @throws com::sun::star::io::IOException in case of io problems during opening or creation @throws com::sun::star::uno::Exception in case of other problems */ ::com::sun::star::uno::XInterface createInstanceUserInit( [in] sequence< byte > aClassID, [in] string sClassName, [in] ::com::sun::star::embed::XStorage xStorage, [in] string sEntName, [in] long nEntryConnectionMode, [in] sequence< ::com::sun::star::beans::PropertyValue > aArgs, [in] sequence< ::com::sun::star::beans::PropertyValue > aObjectArgs ) raises( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::io::IOException, ::com::sun::star::uno::Exception ); }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */