//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1997. // // File: A D V P A G E . H // // Contents: Advanced property page for Net Adapters // // Notes: // // Author: nabilr 11 Mar 1997 // // History: BillBe (24 June 1997) took over ownership // //---------------------------------------------------------------------------- #pragma once #include #include "advanced.h" #include "param.h" #include "listbox.h" #include "ncatlps.h" #include "resource.h" // WM_USER message to call OnValidate method static const UINT c_msgValidate = WM_USER; enum CTLTYPE // ctl { CTLTYPE_UNKNOWN, CTLTYPE_SPIN, CTLTYPE_DROP, CTLTYPE_EDIT, CTLTYPE_NONE // use the present radio buttons only.. }; class CAdvanced: public CPropSheetPage, public CAdvancedParams { public: BEGIN_MSG_MAP(CAdvanced) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_DESTROY, OnDestroy) MESSAGE_HANDLER(WM_HELP, OnHelp) MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu); COMMAND_ID_HANDLER(IDD_PARAMS_EDIT, OnEdit) COMMAND_ID_HANDLER(IDD_PARAMS_DROP, OnDrop) COMMAND_ID_HANDLER(IDD_PARAMS_PRESENT, OnPresent) COMMAND_ID_HANDLER(IDD_PARAMS_NOT_PRESENT, OnPresent) COMMAND_ID_HANDLER(IDD_PARAMS_LIST, OnList) NOTIFY_CODE_HANDLER(PSN_APPLY, OnApply) NOTIFY_CODE_HANDLER(PSN_KILLACTIVE, OnKillActive) END_MSG_MAP() CAdvanced (); ~CAdvanced(); VOID DestroyPageCallbackHandler() { delete this; } BOOL FValidateAllParams(BOOL fDisplayUI); VOID Apply(); HPROPSHEETPAGE CreatePage(HDEVINFO hdi, PSP_DEVINFO_DATA pdeid); // ATL message handlers LRESULT OnApply(int idCtrl, LPNMHDR pnmh, BOOL& fHandled); LRESULT OnKillActive(int idCtrl, LPNMHDR pnmh, BOOL& fHandled); LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled); LRESULT OnEdit(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnDrop(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnPresent(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnList(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled); LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled); LRESULT OnHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled); private: // UI controls CListBox * m_plbParams; // see listbox.h for class defn CEdit * m_pedtEdit; // see listbox.h for class defn CComboBox * m_pcbxDrop; // see listbox.h for class defn CButton * m_pbmPresent; // present radio button CButton * m_pbmNotPresent; // not present radio button HWND m_hwndSpin; // spin control HWND m_hwndPresentText; // Text for use with KeyOnly type HKEY m_hkRoot; // instance root int m_nCurSel; // current item CTLTYPE m_ctlControlType; // control type CValue m_vCurrent; // control param value BOOL m_fInitializing; // private methods VOID FillParamListbox(); VOID SelectParam(); VOID SetParamRange(); VOID UpdateParamDisplay(); VOID UpdateDisplay(); VOID GetParamValue(); int EnumvalToItem(const PWSTR psz); int ItemToEnumval(int iItem, PWSTR psz, UINT cb); VOID BeginEdit(); BOOL FValidateCurrParam(); };