| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef _INC_OLEEMBOBJ_HXX_ |
| #define _INC_OLEEMBOBJ_HXX_ |
| |
| #include <com/sun/star/uno/Sequence.hxx> |
| #include <com/sun/star/uno/Reference.hxx> |
| #include <com/sun/star/uno/Any.hxx> |
| #include <com/sun/star/embed/XEmbeddedObject.hpp> |
| #include <com/sun/star/embed/XInplaceObject.hpp> |
| #include <com/sun/star/embed/XVisualObject.hpp> |
| #include <com/sun/star/embed/XEmbedPersist.hpp> |
| #include <com/sun/star/embed/XLinkageSupport.hpp> |
| #include <com/sun/star/embed/XClassifiedObject.hpp> |
| #include <com/sun/star/embed/XComponentSupplier.hpp> |
| #include <com/sun/star/embed/VerbDescriptor.hpp> |
| #include <com/sun/star/document/XEventBroadcaster.hpp> |
| #include <com/sun/star/container/XChild.hpp> |
| #include <com/sun/star/util/XCloseable.hpp> |
| #include <com/sun/star/util/XCloseListener.hpp> |
| #include <cppuhelper/implbase5.hxx> |
| |
| #include <osl/thread.h> |
| |
| namespace cppu { |
| class OMultiTypeInterfaceContainerHelper; |
| } |
| |
| class VerbExecutionController |
| { |
| // the following mutex is allowed to be locked only for variables initialization, so no deadlock can be caused |
| ::osl::Mutex m_aVerbExecutionMutex; |
| |
| sal_Bool m_bVerbExecutionInProgress; |
| oslThreadIdentifier m_nVerbExecutionThreadIdentifier; |
| sal_Bool m_bChangedOnVerbExecution; |
| |
| sal_Bool m_bWasEverActive; |
| sal_Int32 m_nNotificationLock; |
| |
| public: |
| |
| VerbExecutionController() |
| : m_bVerbExecutionInProgress( sal_False ) |
| , m_nVerbExecutionThreadIdentifier( 0 ) |
| , m_bChangedOnVerbExecution( sal_False ) |
| , m_bWasEverActive( sal_False ) |
| , m_nNotificationLock( 0 ) |
| {} |
| #ifdef WNT |
| void StartControlExecution(); |
| sal_Bool EndControlExecution_WasModified(); |
| void ModificationNotificationIsDone(); |
| #endif |
| void LockNotification(); |
| void UnlockNotification(); |
| |
| // no need to lock anything to check the value of the numeric members |
| sal_Bool CanDoNotification() { return ( !m_bVerbExecutionInProgress && !m_bWasEverActive && !m_nNotificationLock ); } |
| // ... or to change it |
| void ObjectIsActive() { m_bWasEverActive = sal_True; } |
| }; |
| |
| class VerbExecutionControllerGuard |
| { |
| VerbExecutionController& m_rController; |
| public: |
| |
| VerbExecutionControllerGuard( VerbExecutionController& rController ) |
| : m_rController( rController ) |
| { |
| m_rController.LockNotification(); |
| } |
| |
| ~VerbExecutionControllerGuard() |
| { |
| m_rController.UnlockNotification(); |
| } |
| }; |
| |
| |
| class OleComponent; |
| class OwnView_Impl; |
| class OleEmbeddedObject : public ::cppu::WeakImplHelper5 |
| < ::com::sun::star::embed::XEmbeddedObject |
| , ::com::sun::star::embed::XEmbedPersist |
| , ::com::sun::star::embed::XLinkageSupport |
| , ::com::sun::star::embed::XInplaceObject |
| , ::com::sun::star::container::XChild > |
| { |
| friend class OleComponent; |
| |
| ::osl::Mutex m_aMutex; |
| |
| OleComponent* m_pOleComponent; |
| |
| ::cppu::OMultiTypeInterfaceContainerHelper* m_pInterfaceContainer; |
| |
| sal_Bool m_bReadOnly; |
| |
| sal_Int32 m_bDisposed; |
| sal_Int32 m_nObjectState; |
| sal_Int32 m_nTargetState; |
| sal_Int32 m_nUpdateMode; |
| |
| ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory; |
| |
| ::com::sun::star::uno::Sequence< sal_Int8 > m_aClassID; |
| ::rtl::OUString m_aClassName; |
| |
| ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient > m_xClientSite; |
| |
| ::rtl::OUString m_aContainerName; |
| |
| ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener > m_xClosePreventer; |
| |
| sal_Bool m_bWaitSaveCompleted; |
| sal_Bool m_bNewVisReplInStream; |
| ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xNewCachedVisRepl; |
| ::rtl::OUString m_aNewEntryName; |
| ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xNewParentStorage; |
| ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xNewObjectStream; |
| sal_Bool m_bStoreLoaded; |
| |
| ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xCachedVisualRepresentation; |
| sal_Bool m_bVisReplInitialized; |
| sal_Bool m_bVisReplInStream; |
| sal_Bool m_bStoreVisRepl; |
| |
| sal_Bool m_bIsLink; |
| |
| // TODO/LATER: may need to cache more than one aspect in future |
| sal_Bool m_bHasCachedSize; // the object has cached size |
| ::com::sun::star::awt::Size m_aCachedSize; |
| sal_Int64 m_nCachedAspect; |
| |
| sal_Bool m_bHasSizeToSet; // the object has cached size that should be set to OLE component |
| ::com::sun::star::awt::Size m_aSizeToSet; // this size might be different from the cached one ( scaling is applied ) |
| sal_Int64 m_nAspectToSet; |
| |
| |
| // cache the status of the object |
| // TODO/LATER: may need to cache more than one aspect in future |
| sal_Bool m_bGotStatus; |
| sal_Int64 m_nStatus; |
| sal_Int64 m_nStatusAspect; |
| |
| // embedded object related stuff |
| ::rtl::OUString m_aEntryName; |
| ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xParentStorage; |
| ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xObjectStream; |
| |
| // link related stuff |
| ::rtl::OUString m_aLinkURL; // ??? |
| |
| // points to own view provider if the the object has no server |
| OwnView_Impl* m_pOwnView; |
| |
| // whether the object should be initialized from clipboard in case of default initialization |
| sal_Bool m_bFromClipboard; |
| |
| ::rtl::OUString m_aTempURL; |
| |
| ::rtl::OUString m_aTempDumpURL; |
| |
| // STAMPIT solution |
| // the following member is used during verb execution to detect whether the verb execution modifies the object |
| VerbExecutionController m_aVerbExecutionController; |
| |
| // if the following member is set, the object works in wrapper mode |
| ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedObject > m_xWrappedObject; |
| sal_Bool m_bTriedConversion; |
| |
| ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xParent; |
| |
| protected: |
| |
| ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > TryToGetAcceptableFormat_Impl( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xStream ) |
| throw ( ::com::sun::star::uno::Exception ); |
| |
| ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > GetNewFilledTempStream_Impl( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xInStream ) |
| throw( ::com::sun::star::io::IOException ); |
| #ifdef WNT |
| void SwitchComponentToRunningState_Impl(); |
| #endif |
| void MakeEventListenerNotification_Impl( const ::rtl::OUString& aEventName ); |
| #ifdef WNT |
| void StateChangeNotification_Impl( sal_Bool bBeforeChange, sal_Int32 nOldState, sal_Int32 nNewState ); |
| ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > GetStreamForSaving(); |
| |
| |
| ::com::sun::star::uno::Sequence< sal_Int32 > GetIntermediateVerbsSequence_Impl( sal_Int32 nNewState ); |
| |
| ::com::sun::star::uno::Sequence< sal_Int32 > GetReachableStatesList_Impl( |
| const ::com::sun::star::uno::Sequence< ::com::sun::star::embed::VerbDescriptor >& aVerbList ); |
| #endif |
| |
| void CloseComponent(); |
| void Dispose(); |
| |
| void SwitchOwnPersistence( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewParentStorage, |
| const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xNewObjectStream, |
| const ::rtl::OUString& aNewName ); |
| |
| void SwitchOwnPersistence( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewParentStorage, |
| const ::rtl::OUString& aNewName ); |
| |
| void GetRidOfComponent(); |
| |
| void StoreToLocation_Impl( |
| 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, |
| sal_Bool bSaveAs ) |
| throw ( ::com::sun::star::uno::Exception ); |
| #ifdef WNT |
| void StoreObjectToStream( ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > xOutStream ) |
| throw ( ::com::sun::star::uno::Exception ); |
| #endif |
| void InsertVisualCache_Impl( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xTargetStream, |
| const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xCachedVisualRepresentation ) |
| throw ( ::com::sun::star::uno::Exception ); |
| |
| void RemoveVisualCache_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xTargetStream ) |
| throw ( ::com::sun::star::uno::Exception ); |
| |
| void SetVisReplInStream( sal_Bool bExists ); |
| sal_Bool HasVisReplInStream(); |
| |
| ::com::sun::star::embed::VisualRepresentation GetVisualRepresentationInNativeFormat_Impl( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > xCachedVisRepr ) |
| throw ( ::com::sun::star::uno::Exception ); |
| |
| ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > TryToRetrieveCachedVisualRepresentation_Impl( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xStream, |
| sal_Bool bAllowRepair50 = sal_False ) |
| throw (); |
| #ifdef WNT |
| sal_Bool SaveObject_Impl(); |
| sal_Bool OnShowWindow_Impl( sal_Bool bShow ); |
| void CreateOleComponent_Impl( OleComponent* pOleComponent = NULL ); |
| void CreateOleComponentAndLoad_Impl( OleComponent* pOleComponent = NULL ); |
| void CreateOleComponentFromClipboard_Impl( OleComponent* pOleComponent = NULL ); |
| #endif |
| void SetObjectIsLink_Impl( sal_Bool bIsLink ) { m_bIsLink = bIsLink; } |
| |
| #ifdef WNT |
| ::rtl::OUString CreateTempURLEmpty_Impl(); |
| ::rtl::OUString GetTempURL_Impl(); |
| #endif |
| ::rtl::OUString GetContainerName_Impl() { return m_aContainerName; } |
| |
| // the following 4 methods are related to switch to wrapping mode |
| void MoveListeners(); |
| ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > CreateTemporarySubstorage( ::rtl::OUString& o_aStorageName ); |
| ::rtl::OUString MoveToTemporarySubstream(); |
| sal_Bool TryToConvertToOOo(); |
| |
| public: |
| // in case a new object must be created the class ID must be specified |
| OleEmbeddedObject( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory, |
| const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID, |
| const ::rtl::OUString& aClassName ); |
| |
| // in case object will be loaded from a persistent entry or from a file the class ID will be detected on loading |
| // factory can do it for OOo objects, but for OLE objects OS dependent code is required |
| OleEmbeddedObject( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory, |
| sal_Bool bLink ); |
| #ifdef WNT |
| // this constructor let object be initialized from clipboard |
| OleEmbeddedObject( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory ); |
| #endif |
| |
| virtual ~OleEmbeddedObject(); |
| |
| #ifdef WNT |
| void OnIconChanged_Impl(); |
| void OnViewChanged_Impl(); |
| void OnClosed_Impl(); |
| #endif |
| |
| // XEmbeddedObject |
| |
| virtual void SAL_CALL changeState( sal_Int32 nNewState ) |
| throw ( ::com::sun::star::embed::UnreachableStateException, |
| ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getReachableStates() |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual sal_Int32 SAL_CALL getCurrentState() |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL doVerb( sal_Int32 nVerbID ) |
| throw ( ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::embed::UnreachableStateException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual ::com::sun::star::uno::Sequence< ::com::sun::star::embed::VerbDescriptor > SAL_CALL getSupportedVerbs() |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL setClientSite( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient >& xClient ) |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedClient > SAL_CALL getClientSite() |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL update() |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL setUpdateMode( sal_Int32 nMode ) |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual sal_Int64 SAL_CALL getStatus( sal_Int64 nAspect ) |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL setContainerName( const ::rtl::OUString& sName ) |
| throw ( ::com::sun::star::uno::RuntimeException ); |
| |
| |
| // XVisualObject |
| |
| virtual void SAL_CALL setVisualAreaSize( sal_Int64 nAspect, const ::com::sun::star::awt::Size& aSize ) |
| throw ( ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual ::com::sun::star::awt::Size SAL_CALL getVisualAreaSize( sal_Int64 nAspect ) |
| throw ( ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual ::com::sun::star::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation( ::sal_Int64 nAspect ) |
| throw ( ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual sal_Int32 SAL_CALL getMapUnit( sal_Int64 nAspect ) |
| throw ( ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException); |
| |
| |
| // XEmbedPersist |
| |
| virtual void SAL_CALL setPersistentEntry( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, |
| const ::rtl::OUString& sEntName, |
| sal_Int32 nEntryConnectionMode, |
| const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments, |
| const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs ) |
| throw ( ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::io::IOException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| 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 ) |
| throw ( ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::io::IOException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL storeAsEntry( |
| 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 ) |
| throw ( ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::io::IOException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL saveCompleted( sal_Bool bUseNew ) |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual sal_Bool SAL_CALL hasEntry() |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual ::rtl::OUString SAL_CALL getEntryName() |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| // XLinkageSupport |
| |
| virtual void SAL_CALL breakLink( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, |
| const ::rtl::OUString& sEntName ) |
| throw ( ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::io::IOException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual sal_Bool SAL_CALL isLink() |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::RuntimeException); |
| |
| virtual ::rtl::OUString SAL_CALL getLinkURL() |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException); |
| |
| // XCommonEmbedPersist |
| virtual void SAL_CALL storeOwn() |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::io::IOException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual sal_Bool SAL_CALL isReadonly() |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL reload( |
| const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments, |
| const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lObjArgs ) |
| throw ( ::com::sun::star::lang::IllegalArgumentException, |
| ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::io::IOException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| // XClassifiedObject |
| |
| virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getClassID() |
| throw ( ::com::sun::star::uno::RuntimeException ); |
| |
| virtual ::rtl::OUString SAL_CALL getClassName() |
| throw ( ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL setClassInfo( |
| const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID, const ::rtl::OUString& aClassName ) |
| throw ( ::com::sun::star::lang::NoSupportException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| // XStateChangeBroadcaster |
| virtual void SAL_CALL addStateChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStateChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); |
| virtual void SAL_CALL removeStateChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStateChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); |
| |
| |
| // XComponentSupplier |
| |
| virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > SAL_CALL getComponent() |
| throw ( ::com::sun::star::uno::RuntimeException ); |
| |
| // XCloseable |
| |
| virtual void SAL_CALL close( sal_Bool DeliverOwnership ) |
| throw ( ::com::sun::star::util::CloseVetoException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL addCloseListener( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener >& Listener ) |
| throw ( ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL removeCloseListener( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener >& Listener ) |
| throw ( ::com::sun::star::uno::RuntimeException ); |
| |
| // XEventBroadcaster |
| virtual void SAL_CALL addEventListener( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& Listener ) |
| throw ( ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL removeEventListener( |
| const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& Listener ) |
| throw ( ::com::sun::star::uno::RuntimeException ); |
| |
| // XInplaceObject ( only for wrapping scenario here ) |
| |
| virtual void SAL_CALL setObjectRectangles( const ::com::sun::star::awt::Rectangle& aPosRect, |
| const ::com::sun::star::awt::Rectangle& aClipRect ) |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL enableModeless( sal_Bool bEnable ) |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::Exception, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| virtual void SAL_CALL translateAccelerators( |
| const ::com::sun::star::uno::Sequence< ::com::sun::star::awt::KeyEvent >& aKeys ) |
| throw ( ::com::sun::star::embed::WrongStateException, |
| ::com::sun::star::uno::RuntimeException ); |
| |
| // XChild ( only for wrapping scenario here ) |
| virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent( ) throw (::com::sun::star::uno::RuntimeException); |
| 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); |
| |
| }; |
| |
| #endif |
| |