#pragma once #include "netcfgx.h" #include "global.h" #include "param.h" class CAdvancedParams { public: CAdvancedParams (); ~CAdvancedParams (); HRESULT HrInit(HDEVINFO hdi, PSP_DEVINFO_DATA pdeid); BOOL FValidateAllParams(BOOL fDisplayUI, HWND hwndParent); BOOL FSave(); VOID UseAnswerFile(const WCHAR *, const WCHAR *); protected: HKEY m_hkRoot; // instance root CParam * m_pparam; // current param int m_nCurSel; // current item CValue m_vCurrent; // control param value BOOL m_fInit; HDEVINFO m_hdi; PSP_DEVINFO_DATA m_pdeid; vector m_listpParam; // protected methods BOOL FList(WORD codeNotify); VOID FillParamList(HKEY hkRoot, HKEY hk); VOID SetParamRange(); int EnumvalToItem(const PWSTR psz); int ItemToEnumval(int iItem, PWSTR psz, UINT cb); VOID BeginEdit(); BOOL FValidateCurrParam(); BOOL FValidateSingleParam(CParam * pparam, BOOL fDisplayUI, HWND hwndParent); BOOL FSetParamValue(const WCHAR * szName, const WCHAR * const szValue); };