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

90 lines
2.6 KiB
C++

#pragma once
#include "value.h"
class CParam
{
public:
CParam();
~CParam();
BOOL FInit(HKEY hkRoot, HKEY hkNdiParam, PWSTR pszSubKey);
BOOL Apply(); // Applies from Temp storage to In-Memory storage.
UINT Validate();
VOID GetDescription(WCHAR *sz, UINT cch);
VOID GetHelpFile(WCHAR *sz, UINT cch);
VOID AlertPrintfRange(HWND hDlg);
// Data accessors
VALUETYPE GetType() {return m_eType;}
BOOL FIsOptional() {return m_fOptional;};
BOOL FIsModified() {return m_fModified;}
BOOL FIsReadOnly() {return m_fReadOnly;}
BOOL FIsOEMText() {return m_fOEMText;}
BOOL FIsUppercase() {return m_fUppercase;}
CValue * GetInitial() {return &m_vInitial;}
CValue * GetValue() {return &m_vValue;}
CValue * GetMin() {return &m_vMin;}
CValue * GetMax() {return &m_vMax;}
CValue * GetStep() {return &m_vStep;}
HKEY GetEnumKey()
{
AssertH(VALUETYPE_ENUM == m_eType);
return m_hkEnum;
}
UINT GetLimitText()
{
AssertH((VALUETYPE_EDIT == m_eType) || (VALUETYPE_DWORD == m_eType)
|| (VALUETYPE_LONG == m_eType));
return m_uLimitText;
}
WCHAR * GetDesc()
{
return m_pszDesc;
}
PCWSTR SzGetKeyName()
{
return m_pszKeyName;
}
VOID SetModified(BOOL f) {m_fModified = f;}
// Values
CValue m_vValue; // current control value
CValue m_vInitial; // initial value read in
// Range info (type-specific)
CValue m_vMin; // numeric types - minimum value
CValue m_vMax; // numeric types - maximum value
CValue m_vStep; // numeric types - step value
private:
VOID InitParamType(PTSTR lpszType);
BOOL m_fInit;
// General info
VALUETYPE m_eType; // value type
HKEY m_hkRoot; // instance root
WCHAR * m_pszKeyName; // Name of subkey for this parameter.
WCHAR * m_pszDesc; // value description
WCHAR * m_pszHelpFile; // help file
DWORD m_dwHelpContext; // help context id
UINT m_uLimitText; // edit type - max chars
HKEY m_hkEnum; // enum type - registry param enum subkey
// Flags
BOOL m_fOptional; // optional paramter
BOOL m_fModified; // param has been modified
BOOL m_fReadOnly; // edit type - read-only
BOOL m_fOEMText; // edit type - oem convert
BOOL m_fUppercase; // edit type - uppercase
};
const DWORD c_cchMaxNumberSize = 16;