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