Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
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/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
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 .
18 : */
19 :
20 : #ifndef INCLUDED_EMBEDDEDOBJ_SOURCE_INC_OLEEMBOBJ_HXX
21 : #define INCLUDED_EMBEDDEDOBJ_SOURCE_INC_OLEEMBOBJ_HXX
22 :
23 : #include <com/sun/star/uno/Sequence.hxx>
24 : #include <com/sun/star/uno/Reference.hxx>
25 : #include <com/sun/star/uno/Any.hxx>
26 : #include <com/sun/star/lang/XMultiServiceFactory.hpp>
27 : #include <com/sun/star/embed/XEmbeddedObject.hpp>
28 : #include <com/sun/star/embed/XInplaceObject.hpp>
29 : #include <com/sun/star/embed/XVisualObject.hpp>
30 : #include <com/sun/star/embed/XEmbedPersist.hpp>
31 : #include <com/sun/star/embed/XLinkageSupport.hpp>
32 : #include <com/sun/star/embed/XClassifiedObject.hpp>
33 : #include <com/sun/star/embed/XComponentSupplier.hpp>
34 : #include <com/sun/star/embed/VerbDescriptor.hpp>
35 : #include <com/sun/star/document/XEventBroadcaster.hpp>
36 : #include <com/sun/star/container/XChild.hpp>
37 : #include <com/sun/star/util/XCloseable.hpp>
38 : #include <com/sun/star/util/XCloseListener.hpp>
39 : #include <cppuhelper/implbase5.hxx>
40 :
41 : #include <osl/thread.h>
42 :
43 : namespace cppu {
44 : class OMultiTypeInterfaceContainerHelper;
45 : }
46 :
47 2 : class VerbExecutionController
48 : {
49 : // the following mutex is allowed to be locked only for variables initialization, so no deadlock can be caused
50 : ::osl::Mutex m_aVerbExecutionMutex;
51 :
52 : bool m_bVerbExecutionInProgress;
53 : #ifdef WNT
54 : oslThreadIdentifier m_nVerbExecutionThreadIdentifier;
55 : sal_Bool m_bChangedOnVerbExecution;
56 : #endif
57 :
58 : bool m_bWasEverActive;
59 : sal_Int32 m_nNotificationLock;
60 :
61 : public:
62 :
63 2 : VerbExecutionController()
64 : : m_bVerbExecutionInProgress( false )
65 : #ifdef WNT
66 : , m_nVerbExecutionThreadIdentifier( 0 )
67 : , m_bChangedOnVerbExecution( sal_False )
68 : #endif
69 : , m_bWasEverActive( false )
70 2 : , m_nNotificationLock( 0 )
71 2 : {}
72 : #ifdef WNT
73 : void StartControlExecution();
74 : sal_Bool EndControlExecution_WasModified();
75 : void ModificationNotificationIsDone();
76 : #endif
77 : void LockNotification();
78 : void UnlockNotification();
79 :
80 : // no need to lock anything to check the value of the numeric members
81 : bool CanDoNotification() { return ( !m_bVerbExecutionInProgress && !m_bWasEverActive && !m_nNotificationLock ); }
82 : // ... or to change it
83 : void ObjectIsActive() { m_bWasEverActive = true; }
84 : };
85 :
86 : class VerbExecutionControllerGuard
87 : {
88 : VerbExecutionController& m_rController;
89 : public:
90 :
91 0 : VerbExecutionControllerGuard( VerbExecutionController& rController )
92 0 : : m_rController( rController )
93 : {
94 0 : m_rController.LockNotification();
95 0 : }
96 :
97 0 : ~VerbExecutionControllerGuard()
98 : {
99 0 : m_rController.UnlockNotification();
100 0 : }
101 : };
102 :
103 :
104 : class OleComponent;
105 : class OwnView_Impl;
106 : class OleEmbeddedObject : public ::cppu::WeakImplHelper5
107 : < ::com::sun::star::embed::XEmbeddedObject
108 : , ::com::sun::star::embed::XEmbedPersist
109 : , ::com::sun::star::embed::XLinkageSupport
110 : , ::com::sun::star::embed::XInplaceObject
111 : , ::com::sun::star::container::XChild >
112 : {
113 : friend class OleComponent;
114 :
115 : ::osl::Mutex m_aMutex;
116 :
117 : OleComponent* m_pOleComponent;
118 :
119 : ::cppu::OMultiTypeInterfaceContainerHelper* m_pInterfaceContainer;
120 :
121 : bool m_bReadOnly;
122 :
123 : bool m_bDisposed;
124 : sal_Int32 m_nObjectState;
125 : sal_Int32 m_nTargetState;
126 : sal_Int32 m_nUpdateMode;
127 :
128 : ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
129 :
130 : ::com::sun::star::uno::Sequence< sal_Int8 > m_aClassID;
131 : OUString m_aClassName;
132 :
133 : ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient > m_xClientSite;
134 :
135 : OUString m_aContainerName;
136 :
137 : ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener > m_xClosePreventer;
138 :
139 : bool m_bWaitSaveCompleted;
140 : bool m_bNewVisReplInStream;
141 : ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xNewCachedVisRepl;
142 : OUString m_aNewEntryName;
143 : ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xNewParentStorage;
144 : ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xNewObjectStream;
145 : bool m_bStoreLoaded;
146 :
147 : ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xCachedVisualRepresentation;
148 : bool m_bVisReplInitialized;
149 : bool m_bVisReplInStream;
150 : bool m_bStoreVisRepl;
151 :
152 : bool m_bIsLink;
153 :
154 : // TODO/LATER: may need to cache more than one aspect in future
155 : bool m_bHasCachedSize; // the object has cached size
156 : ::com::sun::star::awt::Size m_aCachedSize;
157 : sal_Int64 m_nCachedAspect;
158 :
159 : bool m_bHasSizeToSet; // the object has cached size that should be set to OLE component
160 : ::com::sun::star::awt::Size m_aSizeToSet; // this size might be different from the cached one ( scaling is applied )
161 : sal_Int64 m_nAspectToSet;
162 :
163 :
164 : // cache the status of the object
165 : // TODO/LATER: may need to cache more than one aspect in future
166 : bool m_bGotStatus;
167 : sal_Int64 m_nStatus;
168 : sal_Int64 m_nStatusAspect;
169 :
170 : // embedded object related stuff
171 : OUString m_aEntryName;
172 : ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xParentStorage;
173 : ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xObjectStream;
174 :
175 : // link related stuff
176 : OUString m_aLinkURL; // ???
177 :
178 : // points to own view provider if the object has no server
179 : OwnView_Impl* m_pOwnView;
180 :
181 : // whether the object should be initialized from clipboard in case of default initialization
182 : bool m_bFromClipboard;
183 :
184 : OUString m_aTempURL;
185 :
186 : OUString m_aTempDumpURL;
187 :
188 : // STAMPIT solution
189 : // the following member is used during verb execution to detect whether the verb execution modifies the object
190 : VerbExecutionController m_aVerbExecutionController;
191 :
192 : // if the following member is set, the object works in wrapper mode
193 : ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedObject > m_xWrappedObject;
194 : bool m_bTriedConversion;
195 : OUString m_aFilterName; // if m_bTriedConversion, then the filter detected by that
196 :
197 : ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xParent;
198 :
199 : protected:
200 :
201 : ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > TryToGetAcceptableFormat_Impl(
202 : const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xStream )
203 : throw ( ::com::sun::star::uno::Exception );
204 :
205 : ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > GetNewFilledTempStream_Impl(
206 : const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xInStream )
207 : throw( css::io::IOException, css::uno::RuntimeException );
208 : #ifdef WNT
209 : void SwitchComponentToRunningState_Impl();
210 : #endif
211 : void MakeEventListenerNotification_Impl( const OUString& aEventName );
212 : #ifdef WNT
213 : void StateChangeNotification_Impl( sal_Bool bBeforeChange, sal_Int32 nOldState, sal_Int32 nNewState );
214 : ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > GetStreamForSaving();
215 :
216 :
217 : ::com::sun::star::uno::Sequence< sal_Int32 > GetIntermediateVerbsSequence_Impl( sal_Int32 nNewState );
218 :
219 : ::com::sun::star::uno::Sequence< sal_Int32 > GetReachableStatesList_Impl(
220 : const ::com::sun::star::uno::Sequence< ::com::sun::star::embed::VerbDescriptor >& aVerbList );
221 : #endif
222 :
223 : void CloseComponent();
224 : void Dispose();
225 :
226 : void SwitchOwnPersistence(
227 : const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewParentStorage,
228 : const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xNewObjectStream,
229 : const OUString& aNewName );
230 :
231 : void SwitchOwnPersistence(
232 : const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewParentStorage,
233 : const OUString& aNewName );
234 :
235 : void GetRidOfComponent();
236 :
237 : void StoreToLocation_Impl(
238 : const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
239 : const OUString& sEntName,
240 : const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs,
241 : bool bSaveAs )
242 : throw ( ::com::sun::star::uno::Exception );
243 : #ifdef WNT
244 : void StoreObjectToStream( ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > xOutStream )
245 : throw ( ::com::sun::star::uno::Exception );
246 : #endif
247 : void InsertVisualCache_Impl(
248 : const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xTargetStream,
249 : const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xCachedVisualRepresentation )
250 : throw ( ::com::sun::star::uno::Exception );
251 :
252 : void RemoveVisualCache_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xTargetStream )
253 : throw ( ::com::sun::star::uno::Exception );
254 :
255 : void SetVisReplInStream( bool bExists );
256 : bool HasVisReplInStream();
257 :
258 : ::com::sun::star::embed::VisualRepresentation GetVisualRepresentationInNativeFormat_Impl(
259 : const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > xCachedVisRepr )
260 : throw ( ::com::sun::star::uno::Exception );
261 :
262 : ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > TryToRetrieveCachedVisualRepresentation_Impl(
263 : const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xStream,
264 : bool bAllowRepair50 = false )
265 : throw ();
266 : #ifdef WNT
267 : sal_Bool SaveObject_Impl();
268 : sal_Bool OnShowWindow_Impl( sal_Bool bShow );
269 : void CreateOleComponent_Impl( OleComponent* pOleComponent = NULL );
270 : void CreateOleComponentAndLoad_Impl( OleComponent* pOleComponent = NULL );
271 : void CreateOleComponentFromClipboard_Impl( OleComponent* pOleComponent = NULL );
272 : #endif
273 : void SetObjectIsLink_Impl( bool bIsLink ) { m_bIsLink = bIsLink; }
274 :
275 : #ifdef WNT
276 : OUString CreateTempURLEmpty_Impl();
277 : OUString GetTempURL_Impl();
278 : #endif
279 : OUString GetContainerName_Impl() { return m_aContainerName; }
280 :
281 : // the following 4 methods are related to switch to wrapping mode
282 : void MoveListeners();
283 : ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > CreateTemporarySubstorage( OUString& o_aStorageName );
284 : OUString MoveToTemporarySubstream();
285 : bool TryToConvertToOOo();
286 :
287 : public:
288 : // in case a new object must be created the class ID must be specified
289 : OleEmbeddedObject( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory,
290 : const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID,
291 : const OUString& aClassName );
292 :
293 : // in case object will be loaded from a persistent entry or from a file the class ID will be detected on loading
294 : // factory can do it for OOo objects, but for OLE objects OS dependent code is required
295 : OleEmbeddedObject( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory,
296 : bool bLink );
297 : #ifdef WNT
298 : // this constructor let object be initialized from clipboard
299 : OleEmbeddedObject( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory );
300 : #endif
301 :
302 : virtual ~OleEmbeddedObject();
303 :
304 : #ifdef WNT
305 : void OnIconChanged_Impl();
306 : void OnViewChanged_Impl();
307 : void OnClosed_Impl();
308 : #endif
309 :
310 : // XEmbeddedObject
311 :
312 : virtual void SAL_CALL changeState( sal_Int32 nNewState )
313 : throw ( ::com::sun::star::embed::UnreachableStateException,
314 : ::com::sun::star::embed::WrongStateException,
315 : ::com::sun::star::uno::Exception,
316 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
317 :
318 : virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getReachableStates()
319 : throw ( ::com::sun::star::embed::WrongStateException,
320 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
321 :
322 : virtual sal_Int32 SAL_CALL getCurrentState()
323 : throw ( ::com::sun::star::embed::WrongStateException,
324 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
325 :
326 : virtual void SAL_CALL doVerb( sal_Int32 nVerbID )
327 : throw ( ::com::sun::star::lang::IllegalArgumentException,
328 : ::com::sun::star::embed::WrongStateException,
329 : ::com::sun::star::embed::UnreachableStateException,
330 : ::com::sun::star::uno::Exception,
331 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
332 :
333 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::embed::VerbDescriptor > SAL_CALL getSupportedVerbs()
334 : throw ( ::com::sun::star::embed::WrongStateException,
335 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
336 :
337 : virtual void SAL_CALL setClientSite(
338 : const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient >& xClient )
339 : throw ( ::com::sun::star::embed::WrongStateException,
340 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
341 :
342 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient > SAL_CALL getClientSite()
343 : throw ( ::com::sun::star::embed::WrongStateException,
344 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
345 :
346 : virtual void SAL_CALL update()
347 : throw ( ::com::sun::star::embed::WrongStateException,
348 : ::com::sun::star::uno::Exception,
349 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
350 :
351 : virtual void SAL_CALL setUpdateMode( sal_Int32 nMode )
352 : throw ( ::com::sun::star::embed::WrongStateException,
353 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
354 :
355 : virtual sal_Int64 SAL_CALL getStatus( sal_Int64 nAspect )
356 : throw ( ::com::sun::star::embed::WrongStateException,
357 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
358 :
359 : virtual void SAL_CALL setContainerName( const OUString& sName )
360 : throw ( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
361 :
362 :
363 : // XVisualObject
364 :
365 : virtual void SAL_CALL setVisualAreaSize( sal_Int64 nAspect, const ::com::sun::star::awt::Size& aSize )
366 : throw ( ::com::sun::star::lang::IllegalArgumentException,
367 : ::com::sun::star::embed::WrongStateException,
368 : ::com::sun::star::uno::Exception,
369 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
370 :
371 : virtual ::com::sun::star::awt::Size SAL_CALL getVisualAreaSize( sal_Int64 nAspect )
372 : throw ( ::com::sun::star::lang::IllegalArgumentException,
373 : ::com::sun::star::embed::WrongStateException,
374 : ::com::sun::star::uno::Exception,
375 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
376 :
377 : virtual ::com::sun::star::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation( ::sal_Int64 nAspect )
378 : throw ( ::com::sun::star::lang::IllegalArgumentException,
379 : ::com::sun::star::embed::WrongStateException,
380 : ::com::sun::star::uno::Exception,
381 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
382 :
383 : virtual sal_Int32 SAL_CALL getMapUnit( sal_Int64 nAspect )
384 : throw ( ::com::sun::star::uno::Exception,
385 : ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
386 :
387 :
388 : // XEmbedPersist
389 :
390 : virtual void SAL_CALL setPersistentEntry(
391 : const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
392 : const OUString& sEntName,
393 : sal_Int32 nEntryConnectionMode,
394 : const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
395 : const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
396 : throw ( ::com::sun::star::lang::IllegalArgumentException,
397 : ::com::sun::star::embed::WrongStateException,
398 : ::com::sun::star::io::IOException,
399 : ::com::sun::star::uno::Exception,
400 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
401 :
402 : virtual void SAL_CALL storeToEntry( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, const 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 )
403 : throw ( ::com::sun::star::lang::IllegalArgumentException,
404 : ::com::sun::star::embed::WrongStateException,
405 : ::com::sun::star::io::IOException,
406 : ::com::sun::star::uno::Exception,
407 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
408 :
409 : virtual void SAL_CALL storeAsEntry(
410 : const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
411 : const OUString& sEntName,
412 : const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
413 : const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
414 : throw ( ::com::sun::star::lang::IllegalArgumentException,
415 : ::com::sun::star::embed::WrongStateException,
416 : ::com::sun::star::io::IOException,
417 : ::com::sun::star::uno::Exception,
418 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
419 :
420 : virtual void SAL_CALL saveCompleted( sal_Bool bUseNew )
421 : throw ( ::com::sun::star::embed::WrongStateException,
422 : ::com::sun::star::uno::Exception,
423 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
424 :
425 : virtual sal_Bool SAL_CALL hasEntry()
426 : throw ( ::com::sun::star::embed::WrongStateException,
427 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
428 :
429 : virtual OUString SAL_CALL getEntryName()
430 : throw ( ::com::sun::star::embed::WrongStateException,
431 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
432 :
433 : // XLinkageSupport
434 :
435 : virtual void SAL_CALL breakLink( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage,
436 : const OUString& sEntName )
437 : throw ( ::com::sun::star::lang::IllegalArgumentException,
438 : ::com::sun::star::embed::WrongStateException,
439 : ::com::sun::star::io::IOException,
440 : ::com::sun::star::uno::Exception,
441 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
442 :
443 : virtual sal_Bool SAL_CALL isLink()
444 : throw ( ::com::sun::star::embed::WrongStateException,
445 : ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
446 :
447 : virtual OUString SAL_CALL getLinkURL()
448 : throw ( ::com::sun::star::embed::WrongStateException,
449 : ::com::sun::star::uno::Exception,
450 : ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
451 :
452 : // XCommonEmbedPersist
453 : virtual void SAL_CALL storeOwn()
454 : throw ( ::com::sun::star::embed::WrongStateException,
455 : ::com::sun::star::io::IOException,
456 : ::com::sun::star::uno::Exception,
457 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
458 :
459 : virtual sal_Bool SAL_CALL isReadonly()
460 : throw ( ::com::sun::star::embed::WrongStateException,
461 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
462 :
463 : virtual void SAL_CALL reload(
464 : const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments,
465 : const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs )
466 : throw ( ::com::sun::star::lang::IllegalArgumentException,
467 : ::com::sun::star::embed::WrongStateException,
468 : ::com::sun::star::io::IOException,
469 : ::com::sun::star::uno::Exception,
470 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
471 :
472 : // XClassifiedObject
473 :
474 : virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getClassID()
475 : throw ( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
476 :
477 : virtual OUString SAL_CALL getClassName()
478 : throw ( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
479 :
480 : virtual void SAL_CALL setClassInfo(
481 : const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID, const OUString& aClassName )
482 : throw ( ::com::sun::star::lang::NoSupportException,
483 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
484 :
485 : // XStateChangeBroadcaster
486 : virtual void SAL_CALL addStateChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStateChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
487 : virtual void SAL_CALL removeStateChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStateChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
488 :
489 :
490 : // XComponentSupplier
491 :
492 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > SAL_CALL getComponent()
493 : throw ( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
494 :
495 : // XCloseable
496 :
497 : virtual void SAL_CALL close( sal_Bool DeliverOwnership )
498 : throw ( ::com::sun::star::util::CloseVetoException,
499 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
500 :
501 : virtual void SAL_CALL addCloseListener(
502 : const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener >& Listener )
503 : throw ( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
504 :
505 : virtual void SAL_CALL removeCloseListener(
506 : const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener >& Listener )
507 : throw ( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
508 :
509 : // XEventBroadcaster
510 : virtual void SAL_CALL addEventListener(
511 : const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& Listener )
512 : throw ( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
513 :
514 : virtual void SAL_CALL removeEventListener(
515 : const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& Listener )
516 : throw ( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
517 :
518 : // XInplaceObject ( only for wrapping scenario here )
519 :
520 : virtual void SAL_CALL setObjectRectangles( const ::com::sun::star::awt::Rectangle& aPosRect,
521 : const ::com::sun::star::awt::Rectangle& aClipRect )
522 : throw ( ::com::sun::star::embed::WrongStateException,
523 : ::com::sun::star::uno::Exception,
524 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
525 :
526 : virtual void SAL_CALL enableModeless( sal_Bool bEnable )
527 : throw ( ::com::sun::star::embed::WrongStateException,
528 : ::com::sun::star::uno::Exception,
529 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
530 :
531 : virtual void SAL_CALL translateAccelerators(
532 : const ::com::sun::star::uno::Sequence< ::com::sun::star::awt::KeyEvent >& aKeys )
533 : throw ( ::com::sun::star::embed::WrongStateException,
534 : ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
535 :
536 : // XChild ( only for wrapping scenario here )
537 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent( ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
538 : 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, std::exception) SAL_OVERRIDE;
539 :
540 : };
541 :
542 : #endif
543 :
544 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|