26#include <com/sun/star/uno/Reference.h>
27#include <com/sun/star/uno/Sequence.h>
29#include <unordered_map>
40 :
public IPersistStorage,
43 public IOleInPlaceObject,
46 public IExternalConnection
49 css::uno::Sequence< css::beans::PropertyValue >
52 LPCOLESTR pFilePath =
nullptr );
53 css::uno::Sequence< css::beans::PropertyValue >
61 EmbedDocument_Impl(
const css::uno::Reference< css::lang::XMultiServiceFactory >& smgr,
71 STDMETHOD(
GetClassID)(CLSID *pClassID)
override;
75 STDMETHOD(
InitNew) ( IStorage *pStg )
override;
76 STDMETHOD(
Load) ( IStorage* pStr )
override;
77 STDMETHOD(
Save) ( IStorage *pStgSave,
BOOL fSameAsLoad )
override;
82 STDMETHOD(
GetData) ( FORMATETC * pFormatetc, STGMEDIUM * pMedium )
override;
83 STDMETHOD(
GetDataHere) ( FORMATETC * pFormatetc, STGMEDIUM * pMedium )
override;
84 STDMETHOD(
QueryGetData) ( FORMATETC * pFormatetc )
override;
86 STDMETHOD(
SetData) ( FORMATETC * pFormatetc, STGMEDIUM * pMedium,
BOOL fRelease )
override;
87 STDMETHOD(
EnumFormatEtc) ( DWORD dwDirection, IEnumFORMATETC ** ppFormatetc )
override;
88 STDMETHOD(
DAdvise) ( FORMATETC * pFormatetc, DWORD advf, IAdviseSink * pAdvSink, DWORD * pdwConnection )
override;
89 STDMETHOD(
DUnadvise) ( DWORD dwConnection )
override;
90 STDMETHOD(
EnumDAdvise) ( IEnumSTATDATA ** ppenumAdvise )
override;
95 STDMETHOD(
SetHostNames) ( LPCOLESTR szContainerApp, LPCOLESTR szContainerObj )
override;
96 STDMETHOD(
Close) ( DWORD dwSaveOption)
override;
97 STDMETHOD(
SetMoniker) ( DWORD dwWhichMoniker, IMoniker *pmk )
override;
98 STDMETHOD(
GetMoniker) ( DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk )
override;
99 STDMETHOD(
InitFromData) ( IDataObject *pDataObject,
BOOL fCreation, DWORD dwReserved )
override;
100 STDMETHOD(
GetClipboardData) ( DWORD dwReserved, IDataObject **ppDataObject )
override;
101 STDMETHOD(
DoVerb) (
LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite,
LONG lindex, HWND hwndParent, LPCRECT lprcPosRect )
override;
102 STDMETHOD(
EnumVerbs) ( IEnumOLEVERB **ppEnumOleVerb )
override;
103 STDMETHOD(
Update) ()
override;
106 STDMETHOD(
GetUserType) ( DWORD dwFormOfType, LPOLESTR *pszUserType )
override;
107 STDMETHOD(
SetExtent) ( DWORD dwDrawAspect,
SIZEL *psizel )
override;
108 STDMETHOD(
GetExtent) ( DWORD dwDrawAspect,
SIZEL *psizel )
override;
109 STDMETHOD(
Advise) ( IAdviseSink *pAdvSink, DWORD *pdwConnection )
override;
110 STDMETHOD(
Unadvise) ( DWORD dwConnection )
override;
111 STDMETHOD(
EnumAdvise) ( IEnumSTATDATA **ppenumAdvise )
override;
112 STDMETHOD(
GetMiscStatus) ( DWORD dwAspect, DWORD *pdwStatus )
override;
124 STDMETHOD(
Load) ( LPCOLESTR pszFileName, DWORD dwMode )
override;
125 STDMETHOD(
Save) ( LPCOLESTR pszFileName,
BOOL fRemember )
override;
127 STDMETHOD(
GetCurFile) ( LPOLESTR *ppszFileName )
override;
131 STDMETHOD(
GetTypeInfo)(
unsigned int iTInfo, LCID lcid, ITypeInfo** ppTInfo)
override;
132 STDMETHOD(
GetIDsOfNames)(REFIID riid, OLECHAR** rgszNames,
unsigned int cNames, LCID lcid, DISPID* rgDispId)
override;
133 STDMETHOD(
Invoke)(DISPID dispIdMember, REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo,
unsigned int* puArgErr)
override;
136 virtual DWORD STDMETHODCALLTYPE
AddConnection( DWORD extconn, DWORD reserved)
override;
137 virtual DWORD STDMETHODCALLTYPE
ReleaseConnection( DWORD extconn, DWORD reserved,
BOOL fLastReleaseCloses)
override;
141 void notify(
bool bDataChanged =
true );
153 css::uno::Reference< css::lang::XMultiServiceFactory >
m_xFactory;
BooleanGuard_Impl(bool &bValue)
HRESULT OLENotifyClosing()
STDMETHOD_(ULONG, Release)() override
STDMETHOD() InitNew(IStorage *pStg) override
STDMETHOD() GetCanonicalFormatEtc(FORMATETC *pFormatetcIn, FORMATETC *pFormatetcOut) override
virtual ~EmbedDocument_Impl()
STDMETHOD() GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType) override
CComPtr< IStream > m_pOwnStream
STDMETHOD() GetClassID(CLSID *pClassID) override
sal_uInt64 getMetaFileHandle_Impl(bool isEnhMeta)
STDMETHOD() DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) override
Well, this is a not so very inefficient way to deliver.
STDMETHOD() Save(IStorage *pStgSave, BOOL fSameAsLoad) override
STDMETHOD() GetClientSite(IOleClientSite **pSite) override
STDMETHOD() QueryInterface(REFIID riid, LPVOID *ppvObj) override
STDMETHOD() InPlaceDeactivate() override
STDMETHOD() EnumVerbs(IEnumOLEVERB **ppEnumOleVerb) override
STDMETHOD() GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk) override
STDMETHOD() EnumAdvise(IEnumSTATDATA **ppenumAdvise) override
STDMETHOD() ContextSensitiveHelp(BOOL) override
STDMETHOD() Load(IStorage *pStr) override
STDMETHOD() SetClientSite(IOleClientSite *pSite) override
STDMETHOD() IsDirty() override
void notify(bool bDataChanged=true)
STDMETHOD() SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj) override
STDMETHOD() ReactivateAndUndo() override
HRESULT OLENotifyDeactivation()
STDMETHOD() GetIDsOfNames(REFIID riid, OLECHAR **rgszNames, unsigned int cNames, LCID lcid, DISPID *rgDispId) override
CComPtr< IOleClientSite > m_pClientSite
STDMETHOD() GetUserClassID(CLSID *pClsid) override
STDMETHOD() GetWindow(HWND *) override
STDMETHOD() DUnadvise(DWORD dwConnection) override
HRESULT SaveTo_Impl(IStorage *pStg)
STDMETHOD() GetExtent(DWORD dwDrawAspect, SIZEL *psizel) override
STDMETHOD() GetData(FORMATETC *pFormatetc, STGMEDIUM *pMedium) override
STDMETHOD() GetTypeInfoCount(unsigned int *pctinfo) override
virtual DWORD STDMETHODCALLTYPE AddConnection(DWORD extconn, DWORD reserved) override
STDMETHOD() SetObjectRects(LPCRECT, LPCRECT) override
oslInterlockedCount m_refCount
STDMETHOD() SetData(FORMATETC *pFormatetc, STGMEDIUM *pMedium, BOOL fRelease) override
STDMETHOD() GetCurFile(LPOLESTR *ppszFileName) override
STDMETHOD_(ULONG, AddRef)() override
STDMETHOD() Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, unsigned int *puArgErr) override
STDMETHOD() Unadvise(DWORD dwConnection) override
AdviseSinkHashMap m_aAdviseHashMap
rtl::Reference< DocumentHolder > m_pDocHolder
virtual DWORD STDMETHODCALLTYPE ReleaseConnection(DWORD extconn, DWORD reserved, BOOL fLastReleaseCloses) override
::rtl::Reference< EmbeddedDocumentInstanceAccess_Impl > m_xOwnAccess
STDMETHOD() GetDataHere(FORMATETC *pFormatetc, STGMEDIUM *pMedium) override
css::uno::Sequence< css::beans::PropertyValue > fillArgsForStoring_Impl(css::uno::Reference< css::io::XOutputStream > const &xStream)
STDMETHOD() SaveCompleted(IStorage *pStgNew) override
STDMETHOD() EnumDAdvise(IEnumSTATDATA **ppenumAdvise) override
EmbedDocument_Impl(const css::uno::Reference< css::lang::XMultiServiceFactory > &smgr, const GUID *guid)
STDMETHOD() SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk) override
STDMETHOD() Update() override
STDMETHOD() GetTypeInfo(unsigned int iTInfo, LCID lcid, ITypeInfo **ppTInfo) override
STDMETHOD() DAdvise(FORMATETC *pFormatetc, DWORD advf, IAdviseSink *pAdvSink, DWORD *pdwConnection) override
STDMETHOD() EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppFormatetc) override
CComPtr< IStream > m_pExtStream
STDMETHOD() GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus) override
STDMETHOD() GetClipboardData(DWORD dwReserved, IDataObject **ppDataObject) override
STDMETHOD() SetExtent(DWORD dwDrawAspect, SIZEL *psizel) override
STDMETHOD() QueryGetData(FORMATETC *pFormatetc) override
STDMETHOD() UIDeactivate() override
css::uno::Sequence< css::beans::PropertyValue > fillArgsForLoading_Impl(css::uno::Reference< css::io::XInputStream > const &xStream, DWORD nStreamMode, LPCOLESTR pFilePath=nullptr)
CComPtr< IDataAdviseHolder > m_pDAdviseHolder
STDMETHOD() IsUpToDate() override
STDMETHOD() Close(DWORD dwSaveOption) override
STDMETHOD() SetColorScheme(LOGPALETTE *pLogpal) override
STDMETHOD() InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved) override
STDMETHOD() Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection) override
STDMETHOD() HandsOffStorage(void) override
css::uno::Reference< css::lang::XMultiServiceFactory > m_xFactory
CComPtr< IStorage > m_pMasterStorage
std::unordered_map< DWORD, IAdviseSink * > AdviseSinkHashMap
const wchar_t *typedef BOOL