21#include <osl/diagnose.h>
23#include <com/sun/star/beans/PropertyValue.hpp>
48 m_pDocHolder->setTitle(OUString(o3tl::toU(szContainerObj)));
49 m_pDocHolder->setContainerName(OUString(o3tl::toU(szContainerApp)));
70 return OLE_E_PROMPTSAVECANCELLED;
73 if ( dwSaveOption != 1 )
93 for (
auto const& advise : aAHM)
96 advise.second->OnClose();
131 IOleClientSite *pActiveSite,
138 return OLEOBJ_S_CANNOT_DOVERB_NOW;
142 return OLE_E_CANT_BINDTOSOURCE;
147 if ( iVerb == OLEIVERB_PRIMARY )
152 iVerb = OLEIVERB_OPEN;
155 iVerb = OLEIVERB_SHOW;
161 case OLEIVERB_DISCARDUNDOSTATE:
164 case OLEIVERB_INPLACEACTIVATE:
165 OSL_ENSURE(
m_pDocHolder,
"no document for inplace activation");
168 case OLEIVERB_UIACTIVATE:
169 OSL_ENSURE(
m_pDocHolder,
"no document for inplace activation");
172 case OLEIVERB_PRIMARY:
174 OSL_ENSURE(
m_pDocHolder,
"no document for inplace activation");
227 catch(
const uno::Exception& )
229 return OLEOBJ_S_CANNOT_DOVERB_NOW;
291 return E_OUTOFMEMORY;
305 iAdvise->second->Release();
309 return OLE_E_NOCONNECTION;
335 return m_pDocHolder->GetIDispatch()->GetTypeInfoCount( pctinfo );
344 return m_pDocHolder->GetIDispatch()->GetTypeInfo( iTInfo, lcid, ppTInfo );
346 return DISP_E_BADINDEX;
356 return m_pDocHolder->GetIDispatch()->GetIDsOfNames( riid, rgszNames, cNames, lcid, rgDispId );
358 for (
unsigned int ind = 0; ind < cNames; ind++ )
359 rgDispId[ind] = DISPID_UNKNOWN;
361 return DISP_E_UNKNOWNNAME;
368 DISPPARAMS* pDispParams,
370 EXCEPINFO* pExcepInfo,
371 unsigned int* puArgErr )
374 return m_pDocHolder->GetIDispatch()->Invoke( dispIdMember,
383 return DISP_E_MEMBERNOTFOUND;
410 advise.second->OnSave();
417 hr =
Save(
static_cast<LPCOLESTR
>(
nullptr),
FALSE );
442 advise.second->OnViewChange( DVASPECT_CONTENT, -1 );
445 m_pDAdviseHolder->SendOnDataChange(
static_cast<IDataObject*
>(
this), 0, 0 );
HRESULT OLENotifyClosing()
STDMETHOD() GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType) override
CComPtr< IStream > m_pOwnStream
STDMETHOD() GetClassID(CLSID *pClassID) override
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() EnumVerbs(IEnumOLEVERB **ppEnumOleVerb) override
STDMETHOD() GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk) override
STDMETHOD() EnumAdvise(IEnumSTATDATA **ppenumAdvise) override
STDMETHOD() SetClientSite(IOleClientSite *pSite) override
STDMETHOD() IsDirty() override
void notify(bool bDataChanged=true)
STDMETHOD() SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj) 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() GetExtent(DWORD dwDrawAspect, SIZEL *psizel) override
STDMETHOD() GetTypeInfoCount(unsigned int *pctinfo) override
virtual DWORD STDMETHODCALLTYPE AddConnection(DWORD extconn, DWORD reserved) 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
STDMETHOD() SaveCompleted(IStorage *pStgNew) override
STDMETHOD() SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk) override
STDMETHOD() Update() override
STDMETHOD() GetTypeInfo(unsigned int iTInfo, LCID lcid, ITypeInfo **ppTInfo) override
STDMETHOD() GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus) override
STDMETHOD() GetClipboardData(DWORD dwReserved, IDataObject **ppDataObject) override
STDMETHOD() SetExtent(DWORD dwDrawAspect, SIZEL *psizel) override
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
CComPtr< IStorage > m_pMasterStorage
std::unordered_map< DWORD, IAdviseSink * > AdviseSinkHashMap
const wchar_t *typedef BOOL