90 lines
2.6 KiB
C++
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;
|