1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 #ifndef __com_sun_star_embed_XEmbedObjectFactory_idl__
20 #define __com_sun_star_embed_XEmbedObjectFactory_idl__
22 #include
<com
/sun
/star
/uno
/XInterface.idl
>
23 #include
<com
/sun
/star
/embed
/XStorage.idl
>
24 #include
<com
/sun
/star
/io
/IOException.idl
>
25 #include
<com
/sun
/star
/embed
/WrongStateException.idl
>
26 #include
<com
/sun
/star
/lang
/IllegalArgumentException.idl
>
27 #include
<com
/sun
/star
/beans
/PropertyValue.idl
>
30 module com
{ module sun
{ module star
{ module embed
{
32 /** allows to create and initialize a new embedded object of specified type.
34 This interface provides user with full control over object creation.
37 published
interface XEmbedObjectFactory
: com
::sun
::star
::uno
::XInterface
39 /** creates a new object and transport parameters for persistent
43 This method can be used to have a full control over persistence
44 initialization of a object.
48 If the service implementation does not support
49 XEmbedObjectCreator interface, it must accept the empty
50 aClassID parameter in case of loading from existing entry.
54 the class id of the new object
57 the class name of the new object
60 a parent storage the entry should be created/opened in
65 @param nEntryConnectionMode
66 a mode in which the object should be initialized from entry
67 can take values from EntryInitModes constant set
70 optional parameters for the embedded document persistence
71 initialization, see also
72 com::sun::star::document::MediaDescriptor
75 optional parameters for the object persistence initialization,
77 com::sun::star::embed::EmbeddedObjectDescriptor
79 @throws ::com::sun::star::lang::IllegalArgumentException
80 one of arguments is illegal
82 @throws com::sun::star::io::IOException
83 in case of io problems during opening or creation
85 @throws com::sun::star::uno::Exception
86 in case of other problems
88 ::com
::sun
::star
::uno
::XInterface createInstanceUserInit
(
89 [in] sequence
< byte > aClassID
,
90 [in] string sClassName
,
91 [in] ::com
::sun
::star
::embed
::XStorage xStorage
,
93 [in] long nEntryConnectionMode
,
94 [in] sequence
< ::com
::sun
::star
::beans
::PropertyValue
> aArgs
,
95 [in] sequence
< ::com
::sun
::star
::beans
::PropertyValue
> aObjectArgs
)
96 raises
( ::com
::sun
::star
::lang
::IllegalArgumentException
,
97 ::com
::sun
::star
::io
::IOException
,
98 ::com
::sun
::star
::uno
::Exception
);
106 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */