146 lines
5 KiB
C
146 lines
5 KiB
C
|
/******************************************************************************
|
||
|
|
||
|
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 <atlcom.h>
|
||
|
#include <atlwin.h>
|
||
|
#include <atlhost.h>
|
||
|
#include <atlctl.h>
|
||
|
|
||
|
#include <exdisp.h>
|
||
|
#include <exdispid.h>
|
||
|
|
||
|
#include <HelpCenterExternal.h>
|
||
|
|
||
|
#include <shobjidl.h>
|
||
|
#include <marscore.h>
|
||
|
|
||
|
#include <ScriptingFrameworkDID.h>
|
||
|
|
||
|
#include <Perhist.h>
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
class ATL_NO_VTABLE CPCHBootstrapper : // Hungarian: hcpbs
|
||
|
public CComObjectRootEx<MPC::CComSafeMultiThreadModel>,
|
||
|
public CComCoClass<CPCHBootstrapper, &CLSID_PCHBootstrapper>,
|
||
|
public IObjectWithSite,
|
||
|
public IObjectSafety
|
||
|
{
|
||
|
CComPtr<IUnknown> m_spUnkSite;
|
||
|
CComPtr<IUnknown> 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<MPC::CComSafeMultiThreadModel>,
|
||
|
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<IPCHScriptableStream, &IID_IPCHScriptableStream, &LIBID_HelpCenterTypeLib>
|
||
|
{
|
||
|
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___)
|