115 lines
3.7 KiB
C++
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();
|
|
};
|
|
|