133 lines
4.6 KiB
C
133 lines
4.6 KiB
C
|
/******************************************************************************
|
||
|
|
||
|
Copyright (c) 2000 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
Options.h
|
||
|
|
||
|
Abstract:
|
||
|
This file contains the declaration of the class used to implement
|
||
|
the Options inside the Help Center Application.
|
||
|
|
||
|
Revision History:
|
||
|
Davide Massarenti (dmassare) 04/08/2001
|
||
|
created
|
||
|
|
||
|
******************************************************************************/
|
||
|
|
||
|
#if !defined(__INCLUDED___PCH___OPTIONS_H___)
|
||
|
#define __INCLUDED___PCH___OPTIONS_H___
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
//
|
||
|
// From HelpServiceTypeLib.idl
|
||
|
//
|
||
|
#include <HelpServiceTypeLib.h>
|
||
|
|
||
|
//
|
||
|
// From HelpCenterTypeLib.idl
|
||
|
//
|
||
|
#include <HelpCenterTypeLib.h>
|
||
|
|
||
|
|
||
|
#include <TaxonomyDatabase.h>
|
||
|
|
||
|
class ATL_NO_VTABLE CPCHOptions : // Hungarian: pcho
|
||
|
public CComObjectRootEx<CComSingleThreadModel>,
|
||
|
public IDispatchImpl<IPCHOptions, &IID_IPCHOptions, &LIBID_HelpCenterTypeLib>
|
||
|
{
|
||
|
typedef enum
|
||
|
{
|
||
|
c_Type_bool ,
|
||
|
c_Type_long ,
|
||
|
c_Type_DWORD ,
|
||
|
c_Type_VARIANT_BOOL,
|
||
|
c_Type_STRING ,
|
||
|
c_Type_FONTSIZE ,
|
||
|
c_Type_TEXTLABELS ,
|
||
|
} OptType;
|
||
|
|
||
|
struct OptionsDef
|
||
|
{
|
||
|
LPCWSTR szKey;
|
||
|
LPCWSTR szValue;
|
||
|
size_t iOffset;
|
||
|
size_t iOffsetFlag;
|
||
|
OptType iType;
|
||
|
bool fSaveAlways;
|
||
|
};
|
||
|
|
||
|
static const OptionsDef c_tbl [];
|
||
|
static const OptionsDef c_tbl_TS[];
|
||
|
|
||
|
bool m_fLoaded;
|
||
|
bool m_fDirty;
|
||
|
bool m_fNoSave;
|
||
|
|
||
|
Taxonomy::HelpSet m_ths;
|
||
|
Taxonomy::HelpSet m_ths_TS;
|
||
|
VARIANT_BOOL m_ShowFavorites; bool m_flag_ShowFavorites;
|
||
|
VARIANT_BOOL m_ShowHistory; bool m_flag_ShowHistory;
|
||
|
OPT_FONTSIZE m_FontSize; bool m_flag_FontSize;
|
||
|
TB_MODE m_TextLabels; bool m_flag_TextLabels;
|
||
|
|
||
|
DWORD m_DisableScriptDebugger; bool m_flag_DisableScriptDebugger;
|
||
|
|
||
|
void ReadTable ( /*[in]*/ const OptionsDef* tbl, /*[in]*/ int len, /*[in]*/ MPC::RegKey& rk );
|
||
|
void WriteTable( /*[in]*/ const OptionsDef* tbl, /*[in]*/ int len, /*[in]*/ MPC::RegKey& rk );
|
||
|
|
||
|
public:
|
||
|
BEGIN_COM_MAP(CPCHOptions)
|
||
|
COM_INTERFACE_ENTRY(IDispatch)
|
||
|
COM_INTERFACE_ENTRY(IPCHOptions)
|
||
|
END_COM_MAP()
|
||
|
|
||
|
CPCHOptions();
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
static CPCHOptions* s_GLOBAL;
|
||
|
|
||
|
static HRESULT InitializeSystem();
|
||
|
static void FinalizeSystem ();
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
HRESULT Load( /*[in]*/ bool fForce = false );
|
||
|
HRESULT Save( /*[in]*/ bool fForce = false );
|
||
|
|
||
|
void DontPersistSKU() { m_fNoSave = true; }
|
||
|
|
||
|
Taxonomy::HelpSet& CurrentHelpSet () { return m_ths ; }
|
||
|
Taxonomy::HelpSet& TerminalServerHelpSet() { return m_ths_TS ; }
|
||
|
VARIANT_BOOL ShowFavorites () { return m_ShowFavorites ; }
|
||
|
VARIANT_BOOL ShowHistory () { return m_ShowHistory ; }
|
||
|
OPT_FONTSIZE FontSize () { return m_FontSize ; }
|
||
|
TB_MODE TextLabels () { return m_TextLabels ; }
|
||
|
VARIANT_BOOL DisableScriptDebugger() { return m_DisableScriptDebugger ? VARIANT_TRUE : VARIANT_FALSE; }
|
||
|
|
||
|
HRESULT ApplySettings( /*[in]*/ CPCHHelpCenterExternal* ext, /*[in]*/ IUnknown* unk );
|
||
|
|
||
|
public:
|
||
|
// IPCHOptions
|
||
|
STDMETHOD(get_ShowFavorites )( /*[out, retval]*/ VARIANT_BOOL * pVal );
|
||
|
STDMETHOD(put_ShowFavorites )( /*[in ]*/ VARIANT_BOOL newVal );
|
||
|
STDMETHOD(get_ShowHistory )( /*[out, retval]*/ VARIANT_BOOL * pVal );
|
||
|
STDMETHOD(put_ShowHistory )( /*[in ]*/ VARIANT_BOOL newVal );
|
||
|
STDMETHOD(get_FontSize )( /*[out, retval]*/ OPT_FONTSIZE * pVal );
|
||
|
STDMETHOD(put_FontSize )( /*[in ]*/ OPT_FONTSIZE newVal );
|
||
|
STDMETHOD(get_TextLabels )( /*[out, retval]*/ TB_MODE * pVal );
|
||
|
STDMETHOD(put_TextLabels )( /*[in ]*/ TB_MODE newVal );
|
||
|
STDMETHOD(get_DisableScriptDebugger)( /*[out, retval]*/ VARIANT_BOOL * pVal );
|
||
|
STDMETHOD(put_DisableScriptDebugger)( /*[in ]*/ VARIANT_BOOL newVal );
|
||
|
|
||
|
STDMETHOD(Apply)();
|
||
|
|
||
|
HRESULT put_CurrentHelpSet( /*[in]*/ Taxonomy::HelpSet& ths ); // INTERNAL_METHOD
|
||
|
};
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#endif // !defined(__INCLUDED___PCH___OPTIONS_H___)
|