#pragma once #include "oaidl.h" class CExplorerBar; #include "ExplrBar.h" //custom disp id s from the hosted doc #define DISPID_CUSTOM_LOCAL_GETDOCUMENT 0 #define DISPID_CUSTOM_LOCAL_REQUESTDOM 1 #define DISPID_CUSTOM_LOCAL_RELEASEDOCUMENT 2 #define DISPID_CUSTOM_LOCAL_FINDTEXTS 3 #define DISPID_CUSTOM_LOCAL_MARKUPTEXTS 4 #define DISPID_CUSTOM_LOCAL_SETREGVALUE 5 #define DISPID_CUSTOM_LOCAL_GETREGVALUE 6 #define DISPID_CUSTOM_LOCAL_ANALYSECONTENT 7 #define DISPIDMAX 8 class CDocHostUIHandler : public IDispatch { public: //IUnknown methods STDMETHODIMP QueryInterface(REFIID, LPVOID*); STDMETHODIMP_(DWORD) AddRef(); STDMETHODIMP_(DWORD) Release(); //IDispatch STDMETHOD(GetTypeInfoCount) (UINT *pctinfo); STDMETHOD(GetTypeInfo) (UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo); STDMETHOD(GetIDsOfNames) (REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId); STDMETHOD(Invoke) (DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr); private: CExplorerBar *m_pCExplorerBar; int m_ObjRefCount; wchar_t *mNameDISPID[DISPIDMAX]; public: CDocHostUIHandler(CExplorerBar *pCExplorerBar); ~CDocHostUIHandler(void); };