windows-nt/Source/XPSP1/NT/net/config/netcfg/srvrcfg/srvrobj.h
2020-09-26 16:20:57 +08:00

137 lines
4.5 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997.
//
// File: S R V R O B J . H
//
// Contents: Declaration of CSrvrcfg and helper functions.
//
// Notes:
//
// Author: danielwe 5 Mar 1997
//
//----------------------------------------------------------------------------
#pragma once
#include <ncxbase.h>
#include <ncatlps.h>
#include <nceh.h>
#include <notifval.h>
#include "ncmisc.h"
#include "resource.h"
struct SERVER_DLG_DATA
{
DWORD dwSize; // corresponds to Size value in registry
BOOL fAnnounce; // corresponds to Lmannounce value
BOOL fLargeCache; // LargeSystemCache in Control\SessionManager
// \MemoryManagement
};
/////////////////////////////////////////////////////////////////////////////
// Srvrcfg
class ATL_NO_VTABLE CSrvrcfg :
public CComObjectRoot,
public CComCoClass<CSrvrcfg, &CLSID_CSrvrcfg>,
public INetCfgComponentControl,
public INetCfgComponentSetup,
public INetCfgComponentPropertyUi
{
public:
CSrvrcfg();
~CSrvrcfg();
BEGIN_COM_MAP(CSrvrcfg)
COM_INTERFACE_ENTRY(INetCfgComponentControl)
COM_INTERFACE_ENTRY(INetCfgComponentPropertyUi)
COM_INTERFACE_ENTRY(INetCfgComponentSetup)
END_COM_MAP()
// DECLARE_NOT_AGGREGATABLE(CSrvrcfg)
// Remove the comment from the line above if you don't want your object to
// support aggregation. The default is to support it
DECLARE_REGISTRY_RESOURCEID(IDR_REG_SRVRCFG)
// INetCfgComponentControl
STDMETHOD (Initialize) (
IN INetCfgComponent* pIComp,
IN INetCfg* pINetCfg,
IN BOOL fInstalling);
STDMETHOD (ApplyRegistryChanges) ();
STDMETHOD (ApplyPnpChanges) (
IN INetCfgPnpReconfigCallback* pICallback) { return S_OK; }
STDMETHOD (CancelChanges) ();
STDMETHOD (Validate) ();
// INetCfgComponentSetup
STDMETHOD (Install) (DWORD dwSetupFlags);
STDMETHOD (Upgrade) (DWORD dwSetupFlags,
DWORD dwUpgradeFomBuildNo);
STDMETHOD (ReadAnswerFile) (PCWSTR pszAnswerFile,
PCWSTR pszAnswerSection);
STDMETHOD (Removing) ();
// INetCfgProperties
STDMETHOD (QueryPropertyUi) (
IN IUnknown* pUnk) { return S_OK; }
STDMETHOD (SetContext) (
IN IUnknown* pUnk) { return S_OK; }
STDMETHOD (MergePropPages) (
IN OUT DWORD* pdwDefPages,
OUT LPBYTE* pahpspPrivate,
OUT UINT* pcPrivate,
IN HWND hwndParent,
OUT PCWSTR* pszStartPage);
STDMETHOD (ValidateProperties) (
HWND hwndSheet);
STDMETHOD (CancelProperties) ();
STDMETHOD (ApplyProperties) ();
// Accessors for Server dialog data
const SERVER_DLG_DATA *DlgData() const
{return (const SERVER_DLG_DATA *)&m_sdd;};
SERVER_DLG_DATA *DlgDataRW() {return &m_sdd;};
VOID SetDirty() {m_fDirty = TRUE;};
SERVER_DLG_DATA m_sdd;
private:
HRESULT HrProcessAnswerFile(PCWSTR pszAnswerFile, PCWSTR pszAnswerSection);
HRESULT HrOpenRegKeys(INetCfg *);
HRESULT HrGetRegistryInfo(BOOL fInstalling);
HRESULT HrSetRegistryInfo(VOID);
HRESULT HrSetupPropSheets(HPROPSHEETPAGE **pahpsp, INT cPages);
VOID CleanupPropPages(VOID);
HRESULT HrRestoreRegistry(VOID);
INetCfgComponent *m_pncc; // Place to keep my component
// number of property sheet pages
enum PAGES
{
c_cPages = 1
};
// Generic dialog data
CPropSheetPage * m_apspObj[c_cPages];// pointer to each of the prop
// sheet page objects
BOOL m_fDirty;
HKEY m_hkeyMM; // Memory Management key
BOOL m_fOneTimeInstall; // TRUE if we're in install mode
BOOL m_fUpgrade; // TRUE if we are upgrading with
// an answer file
BOOL m_fUpgradeFromWks; // TRUE if we are upgrading from
// workstation product
BOOL m_fRestoredRegistry;// TRUE if registry has been
// restored on upgrade
PRODUCT_FLAVOR m_pf;
tstring m_strAutoTunedRestoreFile;
tstring m_strSharesRestoreFile;
tstring m_strParamsRestoreFile;
};