22#include <com/sun/star/uno/Sequence.hxx>
23#include <com/sun/star/uno/Reference.hxx>
24#include <com/sun/star/uno/Any.hxx>
25#include <com/sun/star/container/XChild.hpp>
26#include <com/sun/star/document/XStorageBasedDocument.hpp>
27#include <com/sun/star/embed/XEmbeddedObject.hpp>
28#include <com/sun/star/embed/XEmbedPersist2.hpp>
29#include <com/sun/star/embed/XLinkageSupport.hpp>
30#include <com/sun/star/embed/XInplaceObject.hpp>
31#include <com/sun/star/awt/XWindow.hpp>
32#include <com/sun/star/awt/Rectangle.hpp>
33#include <com/sun/star/util/XCloseable.hpp>
34#include <com/sun/star/chart2/XDefaultSizeTransmitter.hpp>
35#include <com/sun/star/io/XTempFile.hpp>
36#include <com/sun/star/lang/XServiceInfo.hpp>
37#include <com/sun/star/lang/XInitialization.hpp>
51 class XMultiServiceFactory;
63 class OMultiTypeInterfaceContainerHelper2;
67 class NamedValueCollection;
70#define NUM_SUPPORTED_STATES 5
82 ,
public css::embed::EmbeddedUpdate
83 ,
public css::embed::XEmbedPersist2
84 ,
public css::embed::XLinkageSupport
85 ,
public css::embed::XInplaceObject
86 ,
public css::container::XChild
87 ,
public css::chart2::XDefaultSizeTransmitter
88 ,
public css::lang::XServiceInfo
89 ,
public css::lang::XInitialization
90 ,
public css::lang::XTypeProvider
109 css::uno::Reference< css::uno::XComponentContext >
m_xContext;
173 void CommonInit_Impl(
const css::uno::Sequence< css::beans::NamedValue >& aObjectProps );
175 void LinkInit_Impl(
const css::uno::Sequence< css::beans::NamedValue >& aObjectProps,
176 const css::uno::Sequence< css::beans::PropertyValue >& aMediaDescr,
177 const css::uno::Sequence< css::beans::PropertyValue >& aObjectDescr );
181 const css::uno::Reference< css::embed::XStorage >& xNewParentStorage,
182 const css::uno::Reference< css::embed::XStorage >& xNewObjectStorage,
183 const OUString& aNewName );
186 const css::uno::Reference< css::embed::XStorage >& xNewParentStorage,
187 const OUString& aNewName );
192 css::uno::Reference< css::io::XInputStream >
194 const OUString& aBaseURL,
195 const OUString& aHierarchName );
207 enum class CopyBackToOLELink {NoCopy, CopyTempToLink, CopyLinkToTemp, CopyLinkToTempInit, CopyLinkToTempRefresh};
220 css::uno::Reference< css::util::XCloseable >
LoadLink_Impl();
225 const css::uno::Reference<css::embed::XStorage>& xStorage,
226 const css::uno::Sequence<css::beans::PropertyValue>& rMediaArgs,
227 const css::uno::Sequence<css::beans::PropertyValue>& rObjArgs,
228 sal_Int32 nStorageVersion,
229 const OUString& aHierarchName,
230 bool bAttachToStorage );
233 const css::uno::Reference< css::document::XStorageBasedDocument >& xDoc,
234 const css::uno::Reference< css::embed::XStorage >& xStorage );
237 const css::uno::Reference< css::embed::XStorage >& i_rxStorage,
242 const css::uno::Reference< css::util::XCloseable >& i_rxDocument
246 const css::uno::Sequence< css::beans::PropertyValue >& aMedDescr );
252 const css::uno::Sequence< css::beans::PropertyValue >& lArguments,
253 const css::uno::Sequence< css::beans::PropertyValue >& lObjArgs );
262 css::uno::Reference< css::uno::XComponentContext > xContext,
263 const css::uno::Sequence< css::beans::NamedValue >& aObjectProps );
267 css::uno::Reference< css::uno::XComponentContext > xContext,
268 const css::uno::Sequence< css::beans::NamedValue >& aObjectProps,
269 const css::uno::Sequence< css::beans::PropertyValue >& aMediaDescr,
270 const css::uno::Sequence< css::beans::PropertyValue >& aObjectDescr );
284 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type& rType )
override ;
286 virtual void SAL_CALL
acquire()
289 virtual
void SAL_CALL
release()
294 virtual
void SAL_CALL
changeState( sal_Int32 nNewState ) override;
300 virtual
void SAL_CALL
doVerb( sal_Int32 nVerbID ) override;
305 const css::
uno::Reference< css::embed::XEmbeddedClient >& xClient ) override;
307 virtual css::
uno::Reference< css::embed::XEmbeddedClient > SAL_CALL
getClientSite() override;
309 virtual
void SAL_CALL
update() override;
311 virtual
void SAL_CALL
setUpdateMode( sal_Int32 nMode ) override;
313 virtual sal_Int64 SAL_CALL
getStatus( sal_Int64 nAspect ) override;
319 virtual
void SetOleState(
bool bIsOleUpdate) override;
330 virtual sal_Int32 SAL_CALL
getMapUnit( sal_Int64 nAspect ) override;
335 const css::
uno::Reference< css::embed::XStorage >& xStorage,
336 const OUString& sEntName,
337 sal_Int32 nEntryConnectionMode,
338 const css::
uno::Sequence< css::beans::PropertyValue >& lArguments,
339 const css::
uno::Sequence< css::beans::PropertyValue >& lObjArgs ) override;
341 virtual
void SAL_CALL
storeToEntry( const css::
uno::Reference< css::embed::XStorage >& xStorage, const OUString& sEntName, const css::
uno::Sequence< css::beans::PropertyValue >& lArguments, const css::
uno::Sequence< css::beans::PropertyValue >& lObjArgs ) override;
344 const css::
uno::Reference< css::embed::XStorage >& xStorage,
345 const OUString& sEntName,
346 const css::
uno::Sequence< css::beans::PropertyValue >& lArguments,
347 const css::
uno::Sequence< css::beans::PropertyValue >& lObjArgs ) override;
357 virtual
void SAL_CALL
breakLink( const css::
uno::Reference< css::embed::XStorage >& xStorage,
358 const OUString& sEntName ) override;
362 virtual OUString SAL_CALL
getLinkURL() override;
367 virtual
void SAL_CALL
storeOwn() override;
371 virtual
void SAL_CALL
reload(
372 const css::
uno::Sequence< css::beans::PropertyValue >& lArguments,
373 const css::
uno::Sequence< css::beans::PropertyValue >& lObjArgs ) override;
382 const css::awt::Rectangle& aClipRect ) override;
387 const css::
uno::Sequence< css::awt::
KeyEvent >& aKeys ) override;
396 const css::
uno::Sequence<
sal_Int8 >& aClassID, const OUString& aClassName ) override;
401 virtual css::
uno::Reference< css::util::XCloseable > SAL_CALL
getComponent() override;
404 virtual
void SAL_CALL
addStateChangeListener( const css::
uno::Reference< css::embed::XStateChangeListener >& xListener ) override;
409 virtual
void SAL_CALL
close(
sal_Bool DeliverOwnership ) override;
412 const css::
uno::Reference< css::util::XCloseListener >& Listener ) override;
415 const css::
uno::Reference< css::util::XCloseListener >& Listener ) override;
419 const css::
uno::Reference< css::document::XEventListener >& Listener ) override;
422 const css::
uno::Reference< css::document::XEventListener >& Listener ) override;
430 virtual
void SAL_CALL
setDefaultSize( const css::awt::
Size& rSize_100TH_MM ) override;
438 void SAL_CALL
initialize(const css::
uno::Sequence<css::
uno::Any>& rArguments) override;
Represents an OLE object that has native data and we loaded that data into a document model successfu...
OUString m_aDocServiceName
std::map< sal_Int32, sal_Int32 > m_aVerbTable
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getParent() override
virtual void SAL_CALL setObjectRectangles(const css::awt::Rectangle &aPosRect, const css::awt::Rectangle &aClipRect) override
css::uno::Sequence< css::beans::PropertyValue > m_aDocMediaDescriptor
virtual css::uno::Reference< css::util::XCloseable > SAL_CALL getComponent() override
virtual sal_Bool SAL_CALL isReadonly() override
css::awt::Size m_aDefaultSizeForChart_In_100TH_MM
css::uno::Reference< css::uno::XComponentContext > m_xContext
css::uno::Sequence< css::beans::PropertyValue > m_aNewDocMediaDescriptor
virtual void SAL_CALL addEventListener(const css::uno::Reference< css::document::XEventListener > &Listener) override
virtual void SAL_CALL addCloseListener(const css::uno::Reference< css::util::XCloseListener > &Listener) override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getClassID() override
OUString m_aLinkFilterName
void SwitchOwnPersistence(const css::uno::Reference< css::embed::XStorage > &xNewParentStorage, const OUString &aNewName)
std::unique_ptr<::comphelper::OMultiTypeInterfaceContainerHelper2 > m_pInterfaceContainer
virtual void SAL_CALL release() noexcept override
sal_Int32 ConvertVerbToState_Impl(sal_Int32 nVerb)
OCommonEmbeddedObject(css::uno::Reference< css::uno::XComponentContext > xContext, const css::uno::Sequence< css::beans::NamedValue > &aObjectProps, const css::uno::Sequence< css::beans::PropertyValue > &aMediaDescr, const css::uno::Sequence< css::beans::PropertyValue > &aObjectDescr)
const OUString & GetDocumentServiceName() const
css::uno::Reference< css::uno::XInterface > m_xParent
virtual void SAL_CALL reload(const css::uno::Sequence< css::beans::PropertyValue > &lArguments, const css::uno::Sequence< css::beans::PropertyValue > &lObjArgs) override
virtual sal_Bool SAL_CALL hasEntry() override
static OUString GetBaseURLFrom_Impl(const css::uno::Sequence< css::beans::PropertyValue > &lArguments, const css::uno::Sequence< css::beans::PropertyValue > &lObjArgs)
void PostEvent_Impl(const OUString &aEventName)
OCommonEmbeddedObject(css::uno::Reference< css::uno::XComponentContext > xContext, const css::uno::Sequence< css::beans::NamedValue > &aObjectProps)
void StateChangeNotification_Impl(bool bBeforeChange, sal_Int32 nOldState, sal_Int32 nNewState,::osl::ResettableMutexGuard &_rGuard)
bool m_bDocumentRecoverySupport
virtual sal_Bool SAL_CALL isLink() override
css::uno::Reference< css::embed::XStorage > m_xRecoveryStorage
css::uno::Sequence< css::embed::VerbDescriptor > m_aObjectVerbs
css::awt::Rectangle m_aClipRectangle
css::uno::Reference< css::awt::XWindow > m_xClientWindow
css::uno::Reference< css::util::XCloseable > InitNewDocument_Impl()
virtual void SAL_CALL setUpdateMode(sal_Int32 nMode) override
virtual void SAL_CALL changeState(sal_Int32 nNewState) override
OUString GetBaseURL_Impl() const
OUString const & getContainerName() const
virtual css::awt::Size SAL_CALL getVisualAreaSize(sal_Int64 nAspect) override
css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual void SAL_CALL setPersistentEntry(const css::uno::Reference< css::embed::XStorage > &xStorage, const OUString &sEntName, sal_Int32 nEntryConnectionMode, const css::uno::Sequence< css::beans::PropertyValue > &lArguments, const css::uno::Sequence< css::beans::PropertyValue > &lObjArgs) override
virtual void SAL_CALL setVisualAreaSize(sal_Int64 nAspect, const css::awt::Size &aSize) override
void requestPositioning(const css::awt::Rectangle &aRect)
void StoreDocToStorage_Impl(const css::uno::Reference< css::embed::XStorage > &xStorage, const css::uno::Sequence< css::beans::PropertyValue > &rMediaArgs, const css::uno::Sequence< css::beans::PropertyValue > &rObjArgs, sal_Int32 nStorageVersion, const OUString &aHierarchName, bool bAttachToStorage)
int ShowMsgDialog(TranslateId Msg, const OUString &sFileName)
virtual void SAL_CALL breakLink(const css::uno::Reference< css::embed::XStorage > &xStorage, const OUString &sEntName) override
css::awt::Rectangle m_aOwnRectangle
bool m_bEmbeddedScriptSupport
css::uno::Reference< css::util::XCloseable > CreateTempDocFromLink_Impl()
virtual OUString SAL_CALL getEntryName() override
virtual void SAL_CALL saveCompleted(sal_Bool bUseNew) override
virtual css::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation(::sal_Int64 nAspect) override
OUString m_aDefaultParentBaseURL
virtual void SAL_CALL setDefaultSize(const css::awt::Size &rSize_100TH_MM) override
virtual void SAL_CALL setClassInfo(const css::uno::Sequence< sal_Int8 > &aClassID, const OUString &aClassName) override
void LinkInit_Impl(const css::uno::Sequence< css::beans::NamedValue > &aObjectProps, const css::uno::Sequence< css::beans::PropertyValue > &aMediaDescr, const css::uno::Sequence< css::beans::PropertyValue > &aObjectDescr)
css::uno::Reference< css::io::XTempFile > m_aLinkTempFile
virtual void SAL_CALL removeStateChangeListener(const css::uno::Reference< css::embed::XStateChangeListener > &xListener) override
virtual ~OCommonEmbeddedObject() override
virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::document::XEventListener > &Listener) override
virtual void SAL_CALL storeAsEntry(const css::uno::Reference< css::embed::XStorage > &xStorage, const OUString &sEntName, const css::uno::Sequence< css::beans::PropertyValue > &lArguments, const css::uno::Sequence< css::beans::PropertyValue > &lObjArgs) override
virtual void SetOleState(bool bIsOleUpdate) override
css::uno::Sequence< sal_Int8 > m_aClassID
void SetInplaceActiveState()
OUString m_aContainerName
bool m_bLinkTempFileChanged
virtual css::uno::Reference< css::embed::XEmbeddedClient > SAL_CALL getClientSite() override
virtual OUString SAL_CALL getClassName() override
css::uno::Reference< css::util::XCloseable > LoadLink_Impl()
sal_Int32 m_nClonedMapUnit
css::uno::Reference< css::embed::XStorage > m_xNewObjectStorage
virtual void SAL_CALL setParent(const css::uno::Reference< css::uno::XInterface > &Parent) override
virtual void SAL_CALL storeToEntry(const css::uno::Reference< css::embed::XStorage > &xStorage, const OUString &sEntName, const css::uno::Sequence< css::beans::PropertyValue > &lArguments, const css::uno::Sequence< css::beans::PropertyValue > &lObjArgs) override
void EmbedAndReparentDoc_Impl(const css::uno::Reference< css::util::XCloseable > &i_rxDocument) const
const OUString & GetPresetFilterName() const
css::awt::Size m_aClonedSize
OUString SAL_CALL getImplementationName() override
rtl::Reference< DocumentHolder > m_xDocHolder
virtual sal_Int32 SAL_CALL getMapUnit(sal_Int64 nAspect) override
css::uno::Reference< css::util::XCloseable > CreateDocFromMediaDescr_Impl(const css::uno::Sequence< css::beans::PropertyValue > &aMedDescr)
void SwitchOwnPersistence(const css::uno::Reference< css::embed::XStorage > &xNewParentStorage, const css::uno::Reference< css::embed::XStorage > &xNewObjectStorage, const OUString &aNewName)
virtual void SAL_CALL doVerb(sal_Int32 nVerbID) override
virtual sal_Int64 SAL_CALL getStatus(sal_Int64 nAspect) override
virtual void SAL_CALL close(sal_Bool DeliverOwnership) override
virtual css::uno::Sequence< css::embed::VerbDescriptor > SAL_CALL getSupportedVerbs() override
::std::unique_ptr< FileChangedChecker > m_pLinkFile
virtual sal_Bool SAL_CALL isStored() override
void handleLinkedOLE(CopyBackToOLELink eState)
css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
OUString GetFilterName(sal_Int32 nVersion) const
css::uno::Reference< css::embed::XStorage > m_xNewParentStorage
virtual void SAL_CALL translateAccelerators(const css::uno::Sequence< css::awt::KeyEvent > &aKeys) override
void SwitchDocToStorage_Impl(const css::uno::Reference< css::document::XStorageBasedDocument > &xDoc, const css::uno::Reference< css::embed::XStorage > &xStorage)
css::uno::Reference< css::embed::XEmbeddedClient > m_xClientSite
css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
OUString m_aPresetFilterName
virtual sal_Int32 SAL_CALL getCurrentState() override
virtual void SAL_CALL storeOwn() override
virtual void SAL_CALL setClientSite(const css::uno::Reference< css::embed::XEmbeddedClient > &xClient) override
css::uno::Sequence< sal_Int32 > const & GetIntermediateStatesSequence_Impl(sal_Int32 nNewState)
virtual void SAL_CALL setContainerName(const OUString &sName) override
bool m_bWaitSaveCompleted
virtual css::uno::Sequence< sal_Int32 > SAL_CALL getReachableStates() override
css::uno::Reference< css::embed::XStorage > m_xParentStorage
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
css::uno::Reference< css::io::XInputStream > StoreDocumentToTempStream_Impl(sal_Int32 nStorageFormat, const OUString &aBaseURL, const OUString &aHierarchName)
void CommonInit_Impl(const css::uno::Sequence< css::beans::NamedValue > &aObjectProps)
css::uno::Reference< css::util::XCloseable > LoadDocumentFromStorage_Impl()
virtual void SAL_CALL acquire() noexcept override
virtual void SAL_CALL removeCloseListener(const css::uno::Reference< css::util::XCloseListener > &Listener) override
virtual void SAL_CALL enableModeless(sal_Bool bEnable) override
virtual void SAL_CALL addStateChangeListener(const css::uno::Reference< css::embed::XStateChangeListener > &xListener) override
void SwitchStateTo_Impl(sal_Int32 nNextState)
void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &rArguments) override
sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
css::uno::Reference< css::embed::XStorage > m_xObjectStorage
void FillDefaultLoadArgs_Impl(const css::uno::Reference< css::embed::XStorage > &i_rxStorage, ::comphelper::NamedValueCollection &o_rLoadArgs) const
virtual void SAL_CALL update() override
virtual OUString SAL_CALL getLinkURL() override