xref: /AOO41X/main/embeddedobj/source/inc/commonembobj.hxx (revision 08421ca6693c7ac7e4bba1e7a4157ea1594eb73d)
1*08421ca6SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*08421ca6SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*08421ca6SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*08421ca6SAndrew Rist  * distributed with this work for additional information
6*08421ca6SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*08421ca6SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*08421ca6SAndrew Rist  * "License"); you may not use this file except in compliance
9*08421ca6SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*08421ca6SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*08421ca6SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*08421ca6SAndrew Rist  * software distributed under the License is distributed on an
15*08421ca6SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*08421ca6SAndrew Rist  * KIND, either express or implied.  See the License for the
17*08421ca6SAndrew Rist  * specific language governing permissions and limitations
18*08421ca6SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*08421ca6SAndrew Rist  *************************************************************/
21*08421ca6SAndrew Rist 
22*08421ca6SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _INC_COMMONEMBOBJ_HXX_
25cdf0e10cSrcweir #define _INC_COMMONEMBOBJ_HXX_
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <com/sun/star/uno/Sequence.hxx>
28cdf0e10cSrcweir #include <com/sun/star/uno/Reference.hxx>
29cdf0e10cSrcweir #include <com/sun/star/uno/Any.hxx>
30cdf0e10cSrcweir #include <com/sun/star/container/XChild.hpp>
31cdf0e10cSrcweir #include <com/sun/star/document/XStorageBasedDocument.hpp>
32cdf0e10cSrcweir #include <com/sun/star/embed/XEmbeddedObject.hpp>
33cdf0e10cSrcweir #include <com/sun/star/embed/XVisualObject.hpp>
34cdf0e10cSrcweir #include <com/sun/star/embed/XEmbedPersist.hpp>
35cdf0e10cSrcweir #include <com/sun/star/embed/XLinkageSupport.hpp>
36cdf0e10cSrcweir #include <com/sun/star/embed/XClassifiedObject.hpp>
37cdf0e10cSrcweir #include <com/sun/star/embed/XComponentSupplier.hpp>
38cdf0e10cSrcweir #include <com/sun/star/embed/XInplaceObject.hpp>
39cdf0e10cSrcweir #include <com/sun/star/embed/XStateChangeBroadcaster.hpp>
40cdf0e10cSrcweir #include <com/sun/star/awt/XWindow.hpp>
41cdf0e10cSrcweir #include <com/sun/star/awt/Rectangle.hpp>
42cdf0e10cSrcweir #include <com/sun/star/document/XEventBroadcaster.hpp>
43cdf0e10cSrcweir #include <com/sun/star/util/XCloseable.hpp>
44cdf0e10cSrcweir #include <com/sun/star/chart2/XDefaultSizeTransmitter.hpp>
45cdf0e10cSrcweir #include <cppuhelper/weak.hxx>
46cdf0e10cSrcweir 
47cdf0e10cSrcweir namespace com { namespace sun { namespace star {
48cdf0e10cSrcweir     namespace embed {
49cdf0e10cSrcweir         class XStorage;
50cdf0e10cSrcweir     }
51cdf0e10cSrcweir     namespace frame {
52cdf0e10cSrcweir         class XModel;
53cdf0e10cSrcweir         class XFrame;
54cdf0e10cSrcweir     }
55cdf0e10cSrcweir     namespace lang {
56cdf0e10cSrcweir         class XMultiServiceFactory;
57cdf0e10cSrcweir     }
58cdf0e10cSrcweir     namespace util {
59cdf0e10cSrcweir         class XCloseListener;
60cdf0e10cSrcweir     }
61cdf0e10cSrcweir     namespace beans {
62cdf0e10cSrcweir         struct PropertyValue;
63cdf0e10cSrcweir         struct NamedValue;
64cdf0e10cSrcweir     }
65cdf0e10cSrcweir }}}
66cdf0e10cSrcweir 
67cdf0e10cSrcweir namespace cppu {
68cdf0e10cSrcweir     class OMultiTypeInterfaceContainerHelper;
69cdf0e10cSrcweir }
70cdf0e10cSrcweir 
71cdf0e10cSrcweir namespace comphelper {
72cdf0e10cSrcweir     class NamedValueCollection;
73cdf0e10cSrcweir }
74cdf0e10cSrcweir 
75cdf0e10cSrcweir #define NUM_SUPPORTED_STATES 5
76cdf0e10cSrcweir // #define NUM_SUPPORTED_VERBS 5
77cdf0e10cSrcweir 
78cdf0e10cSrcweir #include "docholder.hxx"
79cdf0e10cSrcweir 
80cdf0e10cSrcweir class Interceptor;
81cdf0e10cSrcweir 
82cdf0e10cSrcweir class OCommonEmbeddedObject : public ::com::sun::star::embed::XEmbeddedObject
83cdf0e10cSrcweir                             , public ::com::sun::star::embed::XEmbedPersist
84cdf0e10cSrcweir                             , public ::com::sun::star::embed::XLinkageSupport
85cdf0e10cSrcweir                             , public ::com::sun::star::embed::XInplaceObject
86cdf0e10cSrcweir                             , public ::com::sun::star::container::XChild
87cdf0e10cSrcweir                             , public ::com::sun::star::chart2::XDefaultSizeTransmitter
88cdf0e10cSrcweir                             , public ::cppu::OWeakObject
89cdf0e10cSrcweir {
90cdf0e10cSrcweir protected:
91cdf0e10cSrcweir     ::osl::Mutex    m_aMutex;
92cdf0e10cSrcweir 
93cdf0e10cSrcweir     DocumentHolder* m_pDocHolder;
94cdf0e10cSrcweir 
95cdf0e10cSrcweir     ::cppu::OMultiTypeInterfaceContainerHelper* m_pInterfaceContainer;
96cdf0e10cSrcweir 
97cdf0e10cSrcweir     sal_Bool m_bReadOnly;
98cdf0e10cSrcweir 
99cdf0e10cSrcweir     sal_Bool m_bDisposed;
100cdf0e10cSrcweir     sal_Bool m_bClosed;
101cdf0e10cSrcweir 
102cdf0e10cSrcweir     sal_Int32 m_nObjectState;
103cdf0e10cSrcweir     sal_Int32 m_nTargetState; // should be -1 exept during state changing
104cdf0e10cSrcweir     sal_Int32 m_nUpdateMode;
105cdf0e10cSrcweir 
106cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
107cdf0e10cSrcweir 
108cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_aDocMediaDescriptor;
109cdf0e10cSrcweir 
110cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< sal_Int8 > m_aClassID;
111cdf0e10cSrcweir     ::rtl::OUString m_aClassName;
112cdf0e10cSrcweir 
113cdf0e10cSrcweir     ::rtl::OUString m_aDocServiceName;
114cdf0e10cSrcweir     ::rtl::OUString m_aPresetFilterName;
115cdf0e10cSrcweir 
116cdf0e10cSrcweir     sal_Int64 m_nMiscStatus;
117cdf0e10cSrcweir 
118cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< ::com::sun::star::embed::VerbDescriptor > m_aObjectVerbs;
119cdf0e10cSrcweir 
120cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< sal_Int32 > m_aAcceptedStates;
121cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< sal_Int32 > m_pIntermediateStatesSeqs[NUM_SUPPORTED_STATES][NUM_SUPPORTED_STATES];
122cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< sal_Int32 > > m_aVerbTable;
123cdf0e10cSrcweir 
124cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient > m_xClientSite;
125cdf0e10cSrcweir 
126cdf0e10cSrcweir     ::rtl::OUString m_aContainerName;
127cdf0e10cSrcweir     ::rtl::OUString m_aDefaultParentBaseURL;
128cdf0e10cSrcweir     ::rtl::OUString m_aModuleName;
129cdf0e10cSrcweir     sal_Bool        m_bEmbeddedScriptSupport;
130cdf0e10cSrcweir     sal_Bool        m_bDocumentRecoverySupport;
131cdf0e10cSrcweir 
132cdf0e10cSrcweir     Interceptor* m_pInterceptor;
133cdf0e10cSrcweir 
134cdf0e10cSrcweir     // following information will be used between SaveAs and SaveCompleted
135cdf0e10cSrcweir     sal_Bool m_bWaitSaveCompleted;
136cdf0e10cSrcweir     ::rtl::OUString m_aNewEntryName;
137cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xNewParentStorage;
138cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xNewObjectStorage;
139cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_aNewDocMediaDescriptor;
140cdf0e10cSrcweir 
141cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > m_xClientWindow; // ???
142cdf0e10cSrcweir     ::com::sun::star::awt::Rectangle m_aOwnRectangle;
143cdf0e10cSrcweir     ::com::sun::star::awt::Rectangle m_aClipRectangle;
144cdf0e10cSrcweir 
145cdf0e10cSrcweir     sal_Bool m_bIsLink;
146cdf0e10cSrcweir 
147cdf0e10cSrcweir     // embedded object related stuff
148cdf0e10cSrcweir     ::rtl::OUString m_aEntryName;
149cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xParentStorage;
150cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xObjectStorage;
151cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xRecoveryStorage;
152cdf0e10cSrcweir 
153cdf0e10cSrcweir     // link related stuff
154cdf0e10cSrcweir     ::rtl::OUString m_aLinkURL;
155cdf0e10cSrcweir     ::rtl::OUString m_aLinkFilterName;
156cdf0e10cSrcweir     sal_Bool        m_bLinkHasPassword;
157cdf0e10cSrcweir     ::rtl::OUString m_aLinkPassword;
158cdf0e10cSrcweir 
159cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xParent;
160cdf0e10cSrcweir 
161cdf0e10cSrcweir     sal_Bool m_bHasClonedSize; // the object has cached size
162cdf0e10cSrcweir     ::com::sun::star::awt::Size m_aClonedSize;
163cdf0e10cSrcweir     sal_Int32 m_nClonedMapUnit;
164cdf0e10cSrcweir     ::com::sun::star::awt::Size m_aDefaultSizeForChart_In_100TH_MM;//#i103460# charts do not necessaryly have an own size within ODF files, in this case they need to use the size settings from the surrounding frame, which is made available with this member
165cdf0e10cSrcweir 
166cdf0e10cSrcweir private:
167cdf0e10cSrcweir     void CommonInit_Impl( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObjectProps );
168cdf0e10cSrcweir 
169cdf0e10cSrcweir     void LinkInit_Impl( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObjectProps,
170cdf0e10cSrcweir                         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescr,
171cdf0e10cSrcweir                         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aObjectDescr );
172cdf0e10cSrcweir 
173cdf0e10cSrcweir 
174cdf0e10cSrcweir     void SwitchOwnPersistence(
175cdf0e10cSrcweir                 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewParentStorage,
176cdf0e10cSrcweir                 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewObjectStorage,
177cdf0e10cSrcweir                 const ::rtl::OUString& aNewName );
178cdf0e10cSrcweir 
179cdf0e10cSrcweir     void SwitchOwnPersistence(
180cdf0e10cSrcweir                 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewParentStorage,
181cdf0e10cSrcweir                 const ::rtl::OUString& aNewName );
182cdf0e10cSrcweir 
GetDocumentServiceName() const183cdf0e10cSrcweir     ::rtl::OUString GetDocumentServiceName() const { return m_aDocServiceName; }
GetPresetFilterName() const184cdf0e10cSrcweir     ::rtl::OUString GetPresetFilterName() const { return m_aPresetFilterName; }
185cdf0e10cSrcweir 
186cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >
187cdf0e10cSrcweir         StoreDocumentToTempStream_Impl( sal_Int32 nStorageFormat,
188cdf0e10cSrcweir                                         const ::rtl::OUString& aBaseURL,
189cdf0e10cSrcweir                                         const ::rtl::OUString& aHierarchName );
190cdf0e10cSrcweir 
191cdf0e10cSrcweir     sal_Int32 ConvertVerbToState_Impl( sal_Int32 nVerb );
192cdf0e10cSrcweir 
193cdf0e10cSrcweir     void Deactivate();
194cdf0e10cSrcweir 
195cdf0e10cSrcweir     void StateChangeNotification_Impl( sal_Bool bBeforeChange, sal_Int32 nOldState, sal_Int32 nNewState,::osl::ResettableMutexGuard& _rGuard );
196cdf0e10cSrcweir 
197cdf0e10cSrcweir     void SwitchStateTo_Impl( sal_Int32 nNextState );
198cdf0e10cSrcweir 
199cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< sal_Int32 > GetIntermediateStatesSequence_Impl( sal_Int32 nNewState );
200cdf0e10cSrcweir 
201cdf0e10cSrcweir     ::rtl::OUString GetFilterName( sal_Int32 nVersion ) const;
202cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > LoadDocumentFromStorage_Impl();
203cdf0e10cSrcweir 
204cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > LoadLink_Impl();
205cdf0e10cSrcweir 
206cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > InitNewDocument_Impl();
207cdf0e10cSrcweir 
208cdf0e10cSrcweir     void StoreDocToStorage_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
209cdf0e10cSrcweir                                 sal_Int32 nStorageVersion,
210cdf0e10cSrcweir                                 const ::rtl::OUString& aBaseURL,
211cdf0e10cSrcweir                                 const ::rtl::OUString& aHierarchName,
212cdf0e10cSrcweir                                 sal_Bool bAttachToStorage );
213cdf0e10cSrcweir 
214cdf0e10cSrcweir     void SwitchDocToStorage_Impl(
215cdf0e10cSrcweir             const ::com::sun::star::uno::Reference< ::com::sun::star::document::XStorageBasedDocument >& xDoc,
216cdf0e10cSrcweir             const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage );
217cdf0e10cSrcweir 
218cdf0e10cSrcweir     void FillDefaultLoadArgs_Impl(
219cdf0e10cSrcweir             const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& i_rxStorage,
220cdf0e10cSrcweir                   ::comphelper::NamedValueCollection& o_rLoadArgs
221cdf0e10cSrcweir         ) const;
222cdf0e10cSrcweir 
223cdf0e10cSrcweir     void EmbedAndReparentDoc_Impl(
224cdf0e10cSrcweir             const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable >& i_rxDocument
225cdf0e10cSrcweir         ) const;
226cdf0e10cSrcweir 
227cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > CreateDocFromMediaDescr_Impl(
228cdf0e10cSrcweir                         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMedDescr );
229cdf0e10cSrcweir 
230cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > CreateTempDocFromLink_Impl();
231cdf0e10cSrcweir 
232cdf0e10cSrcweir     ::rtl::OUString GetBaseURL_Impl() const;
233cdf0e10cSrcweir     ::rtl::OUString GetBaseURLFrom_Impl(
234cdf0e10cSrcweir                     const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
235cdf0e10cSrcweir                     const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs );
236cdf0e10cSrcweir 
237cdf0e10cSrcweir public:
238cdf0e10cSrcweir     OCommonEmbeddedObject(
239cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory,
240cdf0e10cSrcweir         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObjectProps );
241cdf0e10cSrcweir 
242cdf0e10cSrcweir     // no persistance for linked objects, so the descriptors are provided in constructor
243cdf0e10cSrcweir     OCommonEmbeddedObject(
244cdf0e10cSrcweir         const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory,
245cdf0e10cSrcweir         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObjectProps,
246cdf0e10cSrcweir         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescr,
247cdf0e10cSrcweir         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aObjectDescr );
248cdf0e10cSrcweir 
249cdf0e10cSrcweir     virtual ~OCommonEmbeddedObject();
250cdf0e10cSrcweir 
251cdf0e10cSrcweir     void SaveObject_Impl();
252cdf0e10cSrcweir 
253cdf0e10cSrcweir     void requestPositioning( const ::com::sun::star::awt::Rectangle& aRect );
254cdf0e10cSrcweir 
255cdf0e10cSrcweir     // not a real listener and should not be
256cdf0e10cSrcweir     void PostEvent_Impl( const ::rtl::OUString& aEventName,
257cdf0e10cSrcweir                          const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xSource =
258cdf0e10cSrcweir                                             ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() );
259cdf0e10cSrcweir 
260cdf0e10cSrcweir // XInterface
261cdf0e10cSrcweir 
262cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& rType )
263cdf0e10cSrcweir         throw( ::com::sun::star::uno::RuntimeException ) ;
264cdf0e10cSrcweir 
265cdf0e10cSrcweir     virtual void SAL_CALL acquire()
266cdf0e10cSrcweir         throw();
267cdf0e10cSrcweir 
268cdf0e10cSrcweir     virtual void SAL_CALL release()
269cdf0e10cSrcweir         throw();
270cdf0e10cSrcweir 
271cdf0e10cSrcweir // XTypeProvider
272cdf0e10cSrcweir 
273cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
274cdf0e10cSrcweir         throw( ::com::sun::star::uno::RuntimeException ) ;
275cdf0e10cSrcweir 
276cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
277cdf0e10cSrcweir         throw( ::com::sun::star::uno::RuntimeException ) ;
278cdf0e10cSrcweir 
279cdf0e10cSrcweir // XEmbeddedObject
280cdf0e10cSrcweir 
281cdf0e10cSrcweir     virtual void SAL_CALL changeState( sal_Int32 nNewState )
282cdf0e10cSrcweir         throw ( ::com::sun::star::embed::UnreachableStateException,
283cdf0e10cSrcweir                 ::com::sun::star::embed::WrongStateException,
284cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
285cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
286cdf0e10cSrcweir 
287cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getReachableStates()
288cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
289cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
290cdf0e10cSrcweir 
291cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getCurrentState()
292cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
293cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
294cdf0e10cSrcweir 
295cdf0e10cSrcweir     virtual void SAL_CALL doVerb( sal_Int32 nVerbID )
296cdf0e10cSrcweir         throw ( ::com::sun::star::lang::IllegalArgumentException,
297cdf0e10cSrcweir                 ::com::sun::star::embed::WrongStateException,
298cdf0e10cSrcweir                 ::com::sun::star::embed::UnreachableStateException,
299cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
300cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
301cdf0e10cSrcweir 
302cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::embed::VerbDescriptor > SAL_CALL getSupportedVerbs()
303cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
304cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
305cdf0e10cSrcweir 
306cdf0e10cSrcweir     virtual void SAL_CALL setClientSite(
307cdf0e10cSrcweir                 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient >& xClient )
308cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
309cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
310cdf0e10cSrcweir 
311cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient > SAL_CALL getClientSite()
312cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
313cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
314cdf0e10cSrcweir 
315cdf0e10cSrcweir     virtual void SAL_CALL update()
316cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
317cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
318cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
319cdf0e10cSrcweir 
320cdf0e10cSrcweir     virtual void SAL_CALL setUpdateMode( sal_Int32 nMode )
321cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
322cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
323cdf0e10cSrcweir 
324cdf0e10cSrcweir     virtual sal_Int64 SAL_CALL getStatus( sal_Int64 nAspect )
325cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
326cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
327cdf0e10cSrcweir 
328cdf0e10cSrcweir     virtual void SAL_CALL setContainerName( const ::rtl::OUString& sName )
329cdf0e10cSrcweir         throw ( ::com::sun::star::uno::RuntimeException );
330cdf0e10cSrcweir 
331cdf0e10cSrcweir 
332cdf0e10cSrcweir // XVisualObject
333cdf0e10cSrcweir 
334cdf0e10cSrcweir     virtual void SAL_CALL setVisualAreaSize( sal_Int64 nAspect, const ::com::sun::star::awt::Size& aSize )
335cdf0e10cSrcweir         throw ( ::com::sun::star::lang::IllegalArgumentException,
336cdf0e10cSrcweir                 ::com::sun::star::embed::WrongStateException,
337cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
338cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
339cdf0e10cSrcweir 
340cdf0e10cSrcweir     virtual ::com::sun::star::awt::Size SAL_CALL getVisualAreaSize( sal_Int64 nAspect )
341cdf0e10cSrcweir         throw ( ::com::sun::star::lang::IllegalArgumentException,
342cdf0e10cSrcweir                 ::com::sun::star::embed::WrongStateException,
343cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
344cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
345cdf0e10cSrcweir 
346cdf0e10cSrcweir     virtual ::com::sun::star::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation( ::sal_Int64 nAspect )
347cdf0e10cSrcweir         throw ( ::com::sun::star::lang::IllegalArgumentException,
348cdf0e10cSrcweir                 ::com::sun::star::embed::WrongStateException,
349cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
350cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
351cdf0e10cSrcweir 
352cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getMapUnit( sal_Int64 nAspect )
353cdf0e10cSrcweir         throw ( ::com::sun::star::uno::Exception,
354cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException);
355cdf0e10cSrcweir 
356cdf0e10cSrcweir // XEmbedPersist
357cdf0e10cSrcweir 
358cdf0e10cSrcweir     virtual void SAL_CALL setPersistentEntry(
359cdf0e10cSrcweir                     const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
360cdf0e10cSrcweir                     const ::rtl::OUString& sEntName,
361cdf0e10cSrcweir                     sal_Int32 nEntryConnectionMode,
362cdf0e10cSrcweir                     const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
363cdf0e10cSrcweir                     const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
364cdf0e10cSrcweir         throw ( ::com::sun::star::lang::IllegalArgumentException,
365cdf0e10cSrcweir                 ::com::sun::star::embed::WrongStateException,
366cdf0e10cSrcweir                 ::com::sun::star::io::IOException,
367cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
368cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
369cdf0e10cSrcweir 
370cdf0e10cSrcweir     virtual void SAL_CALL storeToEntry( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, const ::rtl::OUString& sEntName, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
371cdf0e10cSrcweir         throw ( ::com::sun::star::lang::IllegalArgumentException,
372cdf0e10cSrcweir                 ::com::sun::star::embed::WrongStateException,
373cdf0e10cSrcweir                 ::com::sun::star::io::IOException,
374cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
375cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
376cdf0e10cSrcweir 
377cdf0e10cSrcweir     virtual void SAL_CALL storeAsEntry(
378cdf0e10cSrcweir                 const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
379cdf0e10cSrcweir                 const ::rtl::OUString& sEntName,
380cdf0e10cSrcweir                 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
381cdf0e10cSrcweir                 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
382cdf0e10cSrcweir         throw ( ::com::sun::star::lang::IllegalArgumentException,
383cdf0e10cSrcweir                 ::com::sun::star::embed::WrongStateException,
384cdf0e10cSrcweir                 ::com::sun::star::io::IOException,
385cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
386cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
387cdf0e10cSrcweir 
388cdf0e10cSrcweir     virtual void SAL_CALL saveCompleted( sal_Bool bUseNew )
389cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
390cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
391cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
392cdf0e10cSrcweir 
393cdf0e10cSrcweir     virtual sal_Bool SAL_CALL hasEntry()
394cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
395cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
396cdf0e10cSrcweir 
397cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getEntryName()
398cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
399cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
400cdf0e10cSrcweir 
401cdf0e10cSrcweir // XLinkageSupport
402cdf0e10cSrcweir 
403cdf0e10cSrcweir     virtual void SAL_CALL breakLink( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
404cdf0e10cSrcweir                                      const ::rtl::OUString& sEntName )
405cdf0e10cSrcweir         throw ( ::com::sun::star::lang::IllegalArgumentException,
406cdf0e10cSrcweir                 ::com::sun::star::embed::WrongStateException,
407cdf0e10cSrcweir                 ::com::sun::star::io::IOException,
408cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
409cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
410cdf0e10cSrcweir 
411cdf0e10cSrcweir     virtual sal_Bool SAL_CALL isLink()
412cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
413cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException);
414cdf0e10cSrcweir 
415cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getLinkURL()
416cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
417cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
418cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException);
419cdf0e10cSrcweir 
420cdf0e10cSrcweir 
421cdf0e10cSrcweir // XCommonEmbedPersist
422cdf0e10cSrcweir 
423cdf0e10cSrcweir     virtual void SAL_CALL storeOwn()
424cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
425cdf0e10cSrcweir                 ::com::sun::star::io::IOException,
426cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
427cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
428cdf0e10cSrcweir 
429cdf0e10cSrcweir     virtual sal_Bool SAL_CALL isReadonly()
430cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
431cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
432cdf0e10cSrcweir 
433cdf0e10cSrcweir     virtual void SAL_CALL reload(
434cdf0e10cSrcweir                 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
435cdf0e10cSrcweir                 const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
436cdf0e10cSrcweir         throw ( ::com::sun::star::lang::IllegalArgumentException,
437cdf0e10cSrcweir                 ::com::sun::star::embed::WrongStateException,
438cdf0e10cSrcweir                 ::com::sun::star::io::IOException,
439cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
440cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
441cdf0e10cSrcweir 
442cdf0e10cSrcweir 
443cdf0e10cSrcweir // XInplaceObject
444cdf0e10cSrcweir 
445cdf0e10cSrcweir     virtual void SAL_CALL setObjectRectangles( const ::com::sun::star::awt::Rectangle& aPosRect,
446cdf0e10cSrcweir                                           const ::com::sun::star::awt::Rectangle& aClipRect )
447cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
448cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
449cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
450cdf0e10cSrcweir 
451cdf0e10cSrcweir     virtual void SAL_CALL enableModeless( sal_Bool bEnable )
452cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
453cdf0e10cSrcweir                 ::com::sun::star::uno::Exception,
454cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
455cdf0e10cSrcweir 
456cdf0e10cSrcweir     virtual void SAL_CALL translateAccelerators(
457cdf0e10cSrcweir                     const ::com::sun::star::uno::Sequence< ::com::sun::star::awt::KeyEvent >& aKeys )
458cdf0e10cSrcweir         throw ( ::com::sun::star::embed::WrongStateException,
459cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
460cdf0e10cSrcweir 
461cdf0e10cSrcweir // XClassifiedObject
462cdf0e10cSrcweir 
463cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getClassID()
464cdf0e10cSrcweir         throw ( ::com::sun::star::uno::RuntimeException );
465cdf0e10cSrcweir 
466cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getClassName()
467cdf0e10cSrcweir         throw ( ::com::sun::star::uno::RuntimeException );
468cdf0e10cSrcweir 
469cdf0e10cSrcweir     virtual void SAL_CALL setClassInfo(
470cdf0e10cSrcweir                 const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID, const ::rtl::OUString& aClassName )
471cdf0e10cSrcweir         throw ( ::com::sun::star::lang::NoSupportException,
472cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
473cdf0e10cSrcweir 
474cdf0e10cSrcweir 
475cdf0e10cSrcweir // XComponentSupplier
476cdf0e10cSrcweir 
477cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > SAL_CALL getComponent()
478cdf0e10cSrcweir         throw ( ::com::sun::star::uno::RuntimeException );
479cdf0e10cSrcweir 
480cdf0e10cSrcweir // XStateChangeBroadcaster
481cdf0e10cSrcweir     virtual void SAL_CALL addStateChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStateChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
482cdf0e10cSrcweir     virtual void SAL_CALL removeStateChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStateChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
483cdf0e10cSrcweir 
484cdf0e10cSrcweir // XCloseable
485cdf0e10cSrcweir 
486cdf0e10cSrcweir     virtual void SAL_CALL close( sal_Bool DeliverOwnership )
487cdf0e10cSrcweir         throw ( ::com::sun::star::util::CloseVetoException,
488cdf0e10cSrcweir                 ::com::sun::star::uno::RuntimeException );
489cdf0e10cSrcweir 
490cdf0e10cSrcweir     virtual void SAL_CALL addCloseListener(
491cdf0e10cSrcweir                 const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener >& Listener )
492cdf0e10cSrcweir         throw ( ::com::sun::star::uno::RuntimeException );
493cdf0e10cSrcweir 
494cdf0e10cSrcweir     virtual void SAL_CALL removeCloseListener(
495cdf0e10cSrcweir                 const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener >& Listener )
496cdf0e10cSrcweir         throw ( ::com::sun::star::uno::RuntimeException );
497cdf0e10cSrcweir 
498cdf0e10cSrcweir // XEventBroadcaster
499cdf0e10cSrcweir     virtual void SAL_CALL addEventListener(
500cdf0e10cSrcweir                 const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& Listener )
501cdf0e10cSrcweir         throw ( ::com::sun::star::uno::RuntimeException );
502cdf0e10cSrcweir 
503cdf0e10cSrcweir     virtual void SAL_CALL removeEventListener(
504cdf0e10cSrcweir                 const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& Listener )
505cdf0e10cSrcweir         throw ( ::com::sun::star::uno::RuntimeException );
506cdf0e10cSrcweir 
507cdf0e10cSrcweir     // XChild
508cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent(  ) throw (::com::sun::star::uno::RuntimeException);
509cdf0e10cSrcweir     virtual void SAL_CALL setParent( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& Parent ) throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
510cdf0e10cSrcweir 
511cdf0e10cSrcweir     // XDefaultSizeTransmitter
512cdf0e10cSrcweir     //#i103460# charts do not necessaryly have an own size within ODF files, in this case they need to use the size settings from the surrounding frame, which is made available with this method
513cdf0e10cSrcweir     virtual void SAL_CALL setDefaultSize( const ::com::sun::star::awt::Size& rSize_100TH_MM ) throw (::com::sun::star::uno::RuntimeException);
514cdf0e10cSrcweir };
515cdf0e10cSrcweir 
516cdf0e10cSrcweir #endif
517cdf0e10cSrcweir 
518