/****************************************************************************** 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 #include // // 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, public IDispatchImpl { public: CComPtr m_rt; CComPtr 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& 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___)