windows-nt/Source/XPSP1/NT/admin/pchealth/helpctr/shell/include/context.h
2020-09-26 16:20:57 +08:00

211 lines
6 KiB
C++

/******************************************************************************
Copyright (c) 1999 Microsoft Corporation
Module Name:
Context.h
Abstract:
This file contains the declaration of the classes for the IHelpHost*.
Revision History:
Davide Massarenti (dmassare) 11/03/2000
modified
******************************************************************************/
#if !defined(__INCLUDED___PCH___CONTEXT_H___)
#define __INCLUDED___PCH___CONTEXT_H___
/////////////////////////////////////////////////////////////////////////////
#include <dispex.h>
#include <ocmm.h>
//
// Forward declarations.
//
class CPCHHelpCenterExternal;
namespace HelpHost
{
//
// Forward declarations.
//
class Main;
class Panes;
class Pane;
class Window;
////////////////////////////////////////////////////////////////////////////////
typedef enum
{
COMPID_NAVBAR = 0,
COMPID_MININAVBAR ,
COMPID_CONTEXT ,
COMPID_CONTENTS ,
COMPID_HHWINDOW ,
COMPID_FIRSTPAGE ,
COMPID_HOMEPAGE ,
COMPID_SUBSITE ,
COMPID_SEARCH ,
COMPID_INDEX ,
COMPID_FAVORITES ,
COMPID_HISTORY ,
COMPID_CHANNELS ,
COMPID_OPTIONS ,
COMPID_MAX ,
} CompId;
////////////////////////////////////////////////////////////////////////////////
class ATL_NO_VTABLE Main :
public CComObjectRootEx<MPC::CComSafeMultiThreadModel>,
public IDispatchImpl<IPCHHelpHost, &IID_IPCHHelpHost, &LIBID_HelpCenterTypeLib>
{
public:
CComPtr<IRunningObjectTable> m_rt;
CComPtr<IMoniker> m_moniker;
DWORD m_dwRegister;
CPCHHelpCenterExternal* m_External;
HANDLE m_hEvent;
bool m_comps[COMPID_MAX];
public:
BEGIN_COM_MAP(Main)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IPCHHelpHost)
END_COM_MAP()
Main();
virtual ~Main();
HRESULT Initialize( /*[in]*/ CPCHHelpCenterExternal* external );
void Passivate ( );
HRESULT Locate ( /*[in]*/ CLSID& clsid, /*[out]*/ CComPtr<IPCHHelpHost>& pVal );
HRESULT Register( /*[in]*/ CLSID& clsid );
////////////////////
void ChangeStatus ( /*[in]*/ LPCWSTR szComp, /*[in]*/ bool fStatus );
void ChangeStatus ( /*[in]*/ CompId idComp, /*[in]*/ bool fStatus );
bool GetStatus ( /*[in]*/ CompId idComp );
bool WaitUntilLoaded( /*[in]*/ CompId idComp, /*[in]*/ DWORD dwTimeout = 5000 ); // 5 seconds wait for page load.
////////////////////
STDMETHOD(DisplayTopicFromURL)( /*[in]*/ BSTR url, /*[in]*/ VARIANT options );
};
////////////////////////////////////////////////////////////////////////////////
class XMLConfig : public MPC::Config::TypeConstructor
{
DECLARE_CONFIG_MAP(XMLConfig);
public:
class Context : public MPC::Config::TypeConstructor
{
DECLARE_CONFIG_MAP(Context);
public:
CComBSTR m_bstrID;
CComBSTR m_bstrTaxonomyPath;
CComBSTR m_bstrNodeToHighlight;
CComBSTR m_bstrTopicToHighlight;
CComBSTR m_bstrQuery;
////////////////////////////////////////
//
// MPC::Config::TypeConstructor
//
DEFINE_CONFIG_DEFAULTTAG();
DECLARE_CONFIG_METHODS();
//
////////////////////////////////////////
Context();
};
class WindowSettings : public MPC::Config::TypeConstructor
{
DECLARE_CONFIG_MAP(WindowSettings);
public:
CComBSTR m_bstrLayout;
bool m_fNoResize ; bool m_fPresence_NoResize;
bool m_fMaximized; bool m_fPresence_Maximized;
CComBSTR m_bstrTitle ; bool m_fPresence_Title;
CComBSTR m_bstrLeft ; bool m_fPresence_Left;
CComBSTR m_bstrTop ; bool m_fPresence_Top;
CComBSTR m_bstrWidth ; bool m_fPresence_Width;
CComBSTR m_bstrHeight; bool m_fPresence_Height;
////////////////////////////////////////
//
// MPC::Config::TypeConstructor
//
DEFINE_CONFIG_DEFAULTTAG();
DECLARE_CONFIG_METHODS();
//
////////////////////////////////////////
WindowSettings();
};
class ApplyTo : public MPC::Config::TypeConstructor
{
DECLARE_CONFIG_MAP(ApplyTo);
public:
CComBSTR m_bstrSKU;
CComBSTR m_bstrLanguage;
CComBSTR m_bstrTopicToDisplay;
CComBSTR m_bstrApplication;
WindowSettings* m_WindowSettings;
Context* m_Context;
////////////////////////////////////////
//
// MPC::Config::TypeConstructor
//
DEFINE_CONFIG_DEFAULTTAG();
DECLARE_CONFIG_METHODS();
//
////////////////////////////////////////
ApplyTo();
~ApplyTo();
bool MatchSystem( /*[in]*/ CPCHHelpCenterExternal* external ,
/*[out]*/ Taxonomy::HelpSet& ths );
};
typedef std::list< ApplyTo > ApplyToList;
typedef ApplyToList::iterator ApplyToIter;
typedef ApplyToList::const_iterator ApplyToIterConst;
ApplyToList m_lstSessions;
////////////////////////////////////////
//
// MPC::Config::TypeConstructor
//
DEFINE_CONFIG_DEFAULTTAG();
DECLARE_CONFIG_METHODS();
//
////////////////////////////////////////
};
};
#endif // !defined(__INCLUDED___PCH___CONTEXT_H___)