211 lines
6 KiB
C++
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___)
|