From 47857e3fd1f3c8d8d91a57694491dd62df78bd2c Mon Sep 17 00:00:00 2001 From: MusicalProgrammer Date: Sat, 7 Mar 2020 12:57:30 -0500 Subject: [PATCH] ax.cpp has more functions now for us to play with --- ax.cpp | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- ax.h | 63 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 144 insertions(+), 6 deletions(-) diff --git a/ax.cpp b/ax.cpp index f636501..d602a04 100644 --- a/ax.cpp +++ b/ax.cpp @@ -26,6 +26,76 @@ AXClientSite :: ~AXClientSite() } +STDMETHODIMP AXClientSite :: ShowContextMenu(DWORD dwID, POINT *ppt, IUnknown *pcmdtReserved, IDispatch *pdispReserved) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite :: GetHostInfo(DOCHOSTUIINFO *pInfo) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite :: ShowUI( DWORD dwID, IOleInPlaceActiveObject *pActiveObject, IOleCommandTarget *pCommandTarget, IOleInPlaceFrame *pFrame, IOleInPlaceUIWindow *pDoc) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite :: HideUI( void) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite :: UpdateUI( void) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite :: OnDocWindowActivate(BOOL fActivate) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite :: OnFrameWindowActivate(BOOL fActivate) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite :: ResizeBorder( LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fRameWindow) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite :: TranslateAccelerator( LPMSG lpMsg, const GUID *pguidCmdGroup, DWORD nCmdID) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite :: GetOptionKeyPath( LPOLESTR *pchKey, DWORD dw) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite :: GetDropTarget( IDropTarget *pDropTarget, IDropTarget **ppDropTarget) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite :: GetExternal(IDispatch **ppDispatch) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite ::TranslateUrl( DWORD dwTranslate, OLECHAR *pchURLIn, OLECHAR **ppchURLOut) +{ + return E_NOTIMPL; +} + +STDMETHODIMP AXClientSite :: FilterDataObject( IDataObject *pDO, IDataObject **ppDORet) +{ + return E_NOTIMPL; +} + // IUnknown methods STDMETHODIMP AXClientSite :: QueryInterface(REFIID iid,void**ppvObject) { @@ -46,6 +116,8 @@ STDMETHODIMP AXClientSite :: QueryInterface(REFIID iid,void**ppvObject) *ppvObject = (IOleInPlaceFrame*)this; if (iid == IID_IOleInPlaceUIWindow) *ppvObject = (IOleInPlaceUIWindow*)this; + if (iid == IID_IDocHostUIHandler) + *ppvObject = (IDocHostUIHandler*)this; } //* Log Call @@ -229,9 +301,9 @@ STDMETHODIMP AXClientSite :: SetActiveObject(IOleInPlaceActiveObject*pV,LPCOLEST STDMETHODIMP AXClientSite :: SetStatusText(LPCOLESTR t) - { +{ return E_NOTIMPL; - } +} STDMETHODIMP AXClientSite :: EnableModeless(BOOL f) { @@ -251,14 +323,20 @@ HRESULT _stdcall AXClientSite :: GetTypeInfoCount( HRESULT _stdcall AXClientSite :: GetTypeInfo( unsigned int iTInfo, LCID lcid, - ITypeInfo FAR* FAR* ppTInfo) {return E_NOTIMPL;} + ITypeInfo FAR* FAR* ppTInfo) +{ + return E_NOTIMPL; +} HRESULT _stdcall AXClientSite :: GetIDsOfNames( REFIID riid, OLECHAR FAR* FAR*, unsigned int cNames, LCID lcid, - DISPID FAR* ) {return E_NOTIMPL;} + DISPID FAR* ) +{ + return E_NOTIMPL; +} // Other Methods @@ -277,6 +355,7 @@ void AX :: Init(char* cls) AdviseToken = 0; memset(DAdviseToken,0,sizeof(DAdviseToken)); Site.ax = this; + } AX :: AX(char* cls) diff --git a/ax.h b/ax.h index e935a9b..1884d5b 100644 --- a/ax.h +++ b/ax.h @@ -1,4 +1,5 @@ // AX.H +#include // messages #define AX_QUERYINTERFACE (WM_USER + 1) @@ -20,7 +21,8 @@ class AXClientSite : public IDispatch, public IAdviseSink, public IOleInPlaceSite, - public IOleInPlaceFrame + public IOleInPlaceFrame, + public IDocHostUIHandler { protected: @@ -55,7 +57,64 @@ class AXClientSite : STDMETHODIMP ShowObject(); STDMETHODIMP OnShowWindow(BOOL f); STDMETHODIMP RequestNewObjectLayout(); - + + // IDDocHandler methods + STDMETHODIMP ShowContextMenu( + /* [in] */ DWORD dwID, + /* [in] */ POINT *ppt, + /* [in] */ IUnknown *pcmdtReserved, + /* [in] */ IDispatch *pdispReserved); + + STDMETHODIMP GetHostInfo( + /* [out][in] */ DOCHOSTUIINFO *pInfo); + + STDMETHODIMP ShowUI( + /* [in] */ DWORD dwID, + /* [in] */ IOleInPlaceActiveObject *pActiveObject, + /* [in] */ IOleCommandTarget *pCommandTarget, + /* [in] */ IOleInPlaceFrame *pFrame, + /* [in] */ IOleInPlaceUIWindow *pDoc); + + STDMETHODIMP HideUI( void); + + STDMETHODIMP UpdateUI( void); + + STDMETHODIMP OnDocWindowActivate( + /* [in] */ BOOL fActivate); + + STDMETHODIMP OnFrameWindowActivate( + /* [in] */ BOOL fActivate); + + STDMETHODIMP ResizeBorder( + /* [in] */ LPCRECT prcBorder, + /* [in] */ IOleInPlaceUIWindow *pUIWindow, + /* [in] */ BOOL fRameWindow); + + STDMETHODIMP TranslateAccelerator( + /* [in] */ LPMSG lpMsg, + /* [in] */ const GUID *pguidCmdGroup, + /* [in] */ DWORD nCmdID); + + STDMETHODIMP GetOptionKeyPath( + /* [out] */ LPOLESTR *pchKey, + /* [in] */ DWORD dw); + + STDMETHODIMP GetDropTarget( + /* [in] */ IDropTarget *pDropTarget, + /* [out] */ IDropTarget **ppDropTarget); + + STDMETHODIMP GetExternal( + /* [out] */ IDispatch **ppDispatch); + + STDMETHODIMP TranslateUrl( + /* [in] */ DWORD dwTranslate, + /* [in] */ OLECHAR *pchURLIn, + /* [out] */ OLECHAR **ppchURLOut); + + STDMETHODIMP FilterDataObject( + /* [in] */ IDataObject *pDO, + /* [out] */ IDataObject **ppDORet); + // IAdviseSink methods STDMETHODIMP_(void) OnDataChange(FORMATETC *pFormatEtc,STGMEDIUM *pStgmed);