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

115 lines
3.7 KiB
C++

//+---------------------------------------------------------------------------
//
// 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 <ncxbase.h>
#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();
};