/****************************************************************************** Copyright (c) 1999 Microsoft Corporation Module Name: HelpCenter.h Abstract: This file contains the declaration of the class used to implement the Help Center Application. Revision History: Sridhar Chandrashekar (SridharC) 07/21/99 created ******************************************************************************/ #if !defined(__INCLUDED___PCH___HELPCENTER_H___) #define __INCLUDED___PCH___HELPCENTER_H___ #include #include #include #include #include #include #include #include #include #include #include //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// class ATL_NO_VTABLE CPCHBootstrapper : // Hungarian: hcpbs public CComObjectRootEx, public CComCoClass, public IObjectWithSite, public IObjectSafety { CComPtr m_spUnkSite; CComPtr m_parent; //////////////////// static HRESULT ForwardQueryInterface( void* pv, REFIID iid, void** ppvObject, DWORD_PTR offset ); public: DECLARE_NO_REGISTRY() BEGIN_COM_MAP(CPCHBootstrapper) COM_INTERFACE_ENTRY(IObjectWithSite) COM_INTERFACE_ENTRY(IObjectSafety) COM_INTERFACE_ENTRY_FUNC_BLIND(0, ForwardQueryInterface) END_COM_MAP() // // IObjectWithSite // STDMETHOD(SetSite)(IUnknown *pUnkSite); STDMETHOD(GetSite)(REFIID riid, void **ppvSite); // // IObjectSafety // STDMETHOD(GetInterfaceSafetyOptions)( /*[in ]*/ REFIID riid , // Interface that we want options for /*[out]*/ DWORD *pdwSupportedOptions , // Options meaningful on this interface /*[out]*/ DWORD *pdwEnabledOptions ); // current option values on this interface STDMETHOD(SetInterfaceSafetyOptions)( /*[in]*/ REFIID riid , // Interface to set options for /*[in]*/ DWORD dwOptionSetMask , // Options to change /*[in]*/ DWORD dwEnabledOptions ); // New option values }; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// class ATL_NO_VTABLE CPCHMarsHost : // Hungarian: hcpmh public CComObjectRootEx, public IMarsHost { CPCHHelpCenterExternal* m_parent; MPC::wstring m_strTitle; MPC::wstring m_strCmdLine; MARSTHREADPARAM m_mtp; public: BEGIN_COM_MAP(CPCHMarsHost) COM_INTERFACE_ENTRY(IMarsHost) END_COM_MAP() CPCHMarsHost(); ////////////////////////////////////////////////////////////////////// HRESULT Init( /*[in]*/ CPCHHelpCenterExternal* parent, /*[in]*/ const MPC::wstring& szTitle, /*[out]*/ MARSTHREADPARAM*& pMTP ); // // IMarsHost // STDMETHOD(OnHostNotify)( /*[in]*/ MARSHOSTEVENT event, /*[in]*/ IUnknown *punk, /*[in]*/ LPARAM lParam ); STDMETHOD(PreTranslateMessage)( /*[in]*/ MSG* msg ); }; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// class ATL_NO_VTABLE CPCHScriptableStream : // Hungarian: pchss public MPC::FileStream, public IDispatchImpl { HRESULT ReadToHGLOBAL( /*[in]*/ long lCount, /*[out]*/ HGLOBAL& hg, /*[out]*/ ULONG& lReadTotal ); public: BEGIN_COM_MAP(CPCHScriptableStream) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(IPCHScriptableStream) COM_INTERFACE_ENTRY_CHAIN(MPC::FileStream) END_COM_MAP() ////////////////////////////////////////////////////////////////////// // IPCHScriptableStream STDMETHOD(get_Size)( /*[out, retval]*/ long *plSize ); STDMETHOD(Read )( /*[in]*/ long lCount , /*[out, retval]*/ VARIANT * pvData ); STDMETHOD(ReadHex )( /*[in]*/ long lCount , /*[out, retval]*/ BSTR *pbstrData ); STDMETHOD(Write )( /*[in]*/ long lCount , /*[in ]*/ VARIANT vData , /*[out, retval]*/ long *plWritten ); STDMETHOD(WriteHex)( /*[in]*/ long lCount , /*[in ]*/ BSTR bstrData , /*[out, retval]*/ long *plWritten ); STDMETHOD(Seek )( /*[in]*/ long lOffset, /*[in ]*/ BSTR bstrOrigin, /*[out, retval]*/ long *plNewPos ); STDMETHOD(Close )( ); }; ///////////////////////////////////////////////////////////////////////////// #endif // !defined(__INCLUDED___PCH___HELPCENTER_H___)