657 lines
19 KiB
C++
657 lines
19 KiB
C++
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1997.
|
|
//
|
|
// File: S M P S H . H
|
|
//
|
|
// Contents: The property sheets header
|
|
//
|
|
// Notes:
|
|
//
|
|
// Author: CWill 10/14/1997
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
//
|
|
// The Status Monitor's General Page
|
|
//
|
|
|
|
extern const WCHAR c_szNetCfgHelpFile[];
|
|
|
|
const UINT PWM_UPDATE_STATUS_DISPLAY = WM_USER + 1;
|
|
const UINT PWM_UPDATE_RAS_LINK_LIST = WM_USER + 2;
|
|
const UINT PWM_UPDATE_IPCFG_DISPLAY = WM_USER + 3;
|
|
|
|
enum StatTrans
|
|
{
|
|
Stat_Unknown,
|
|
Stat_Bytes,
|
|
Stat_Packets
|
|
};
|
|
|
|
//
|
|
// The Status Monitors General Page
|
|
//
|
|
class ATL_NO_VTABLE CPspStatusMonitorGen :
|
|
public CComObjectRootEx <CComObjectThreadModel>,
|
|
public CPropSheetPage,
|
|
public INetConnectionStatisticsNotifySink
|
|
{
|
|
public:
|
|
CPspStatusMonitorGen(VOID);
|
|
|
|
BEGIN_COM_MAP(CPspStatusMonitorGen)
|
|
COM_INTERFACE_ENTRY(INetConnectionStatisticsNotifySink)
|
|
END_COM_MAP()
|
|
|
|
BEGIN_MSG_MAP(CPspStatusMonitorGen)
|
|
|
|
// Windows Messages
|
|
//
|
|
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
|
MESSAGE_HANDLER(WM_CLOSE, OnClose)
|
|
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
|
|
|
|
MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu);
|
|
MESSAGE_HANDLER(WM_HELP, OnHelp);
|
|
|
|
MESSAGE_HANDLER(WM_SETCURSOR, OnSetCursor)
|
|
|
|
MESSAGE_HANDLER(WM_TIMER, OnTimer)
|
|
MESSAGE_HANDLER(PWM_UPDATE_STATUS_DISPLAY, OnUpdateStatusDisplay)
|
|
|
|
MESSAGE_HANDLER(WM_PAINT, OnPaint)
|
|
|
|
// Notifications
|
|
//
|
|
NOTIFY_CODE_HANDLER(PSN_SETACTIVE, OnSetActive)
|
|
NOTIFY_CODE_HANDLER(PSN_KILLACTIVE, OnKillActive)
|
|
|
|
// Command handlers
|
|
COMMAND_ID_HANDLER(IDC_PSB_DISCONNECT, OnDisconnect)
|
|
COMMAND_ID_HANDLER(IDC_PSB_PROPERTIES, OnRaiseProperties)
|
|
|
|
END_MSG_MAP()
|
|
|
|
// Message handlers
|
|
//
|
|
public:
|
|
|
|
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL & bHandled);
|
|
LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
LRESULT OnHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
|
|
LRESULT OnSetCursor(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnUpdateStatusDisplay(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnSetActive(INT idCtrl, LPNMHDR pnmh, BOOL & bHandled);
|
|
LRESULT OnKillActive(INT idCtrl, LPNMHDR pnmh, BOOL & bHandled);
|
|
|
|
LRESULT OnDisconnect(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
|
|
LRESULT OnRaiseProperties(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
|
|
|
|
friend class CPspStatusMonitorRas;
|
|
|
|
public:
|
|
STDMETHOD(OnStatisticsChanged)(DWORD dwChangeFlags);
|
|
VOID FinalRelease ();
|
|
|
|
// Helper functions
|
|
//
|
|
public:
|
|
HRESULT HrInitGenPage(CNetStatisticsEngine* pnseNew,
|
|
INetConnection* pncNew,
|
|
const DWORD * adwHelpIDs = NULL);
|
|
HRESULT HrCleanupGenPage(VOID);
|
|
|
|
HRESULT HrDisconnectConnection(BOOL fConfirmed = FALSE);
|
|
|
|
VOID SetAsFirstPage(BOOL fFirst = TRUE)
|
|
{
|
|
m_fIsFirstPage = fFirst;
|
|
}
|
|
|
|
// Utility Functions
|
|
//
|
|
protected:
|
|
VOID UpdatePage(
|
|
STATMON_ENGINEDATA* pseOldData,
|
|
const STATMON_ENGINEDATA* pseNewData);
|
|
|
|
virtual VOID UpdatePageSpeed(
|
|
const STATMON_ENGINEDATA* pseOldData,
|
|
const STATMON_ENGINEDATA* pseNewData);
|
|
|
|
VOID UpdatePageConnectionStatus(
|
|
const STATMON_ENGINEDATA* pseOldData,
|
|
const STATMON_ENGINEDATA* pseNewData);
|
|
|
|
virtual VOID UpdatePageIcon(DWORD dwChangeFlags);
|
|
|
|
VOID UpdateSignalStrengthIcon(INT iRSSI);
|
|
|
|
virtual VOID UpdatePageDuration(
|
|
const STATMON_ENGINEDATA* pseOldData,
|
|
const STATMON_ENGINEDATA* pseNewData);
|
|
|
|
virtual VOID UpdatePageBytesTransmitting(
|
|
const STATMON_ENGINEDATA* pseOldData,
|
|
const STATMON_ENGINEDATA* pseNewData,
|
|
StatTrans iStat);
|
|
|
|
virtual VOID UpdatePageBytesReceiving(
|
|
const STATMON_ENGINEDATA* pseOldData,
|
|
const STATMON_ENGINEDATA* pseNewData,
|
|
StatTrans iStat);
|
|
|
|
VOID UpdatePageCompTransmitting(
|
|
const STATMON_ENGINEDATA* pseOldData,
|
|
const STATMON_ENGINEDATA* pseNewData);
|
|
|
|
VOID UpdatePageCompReceiving(
|
|
const STATMON_ENGINEDATA* pseOldData,
|
|
const STATMON_ENGINEDATA* pseNewData);
|
|
|
|
VOID UpdatePageErrorsTransmitting(
|
|
const STATMON_ENGINEDATA* pseOldData,
|
|
const STATMON_ENGINEDATA* pseNewData);
|
|
|
|
VOID UpdatePageErrorsReceiving(
|
|
const STATMON_ENGINEDATA* pseOldData,
|
|
const STATMON_ENGINEDATA* pseNewData);
|
|
|
|
BOOL FIsShowLanErrorRegKeySet();
|
|
|
|
virtual BOOL ShouldShowPackets(const STATMON_ENGINEDATA* pseNewData);
|
|
|
|
protected:
|
|
STATMON_ENGINEDATA* m_psmEngineData;
|
|
|
|
CNetStatisticsEngine* m_pnseStat;
|
|
DWORD m_dwChangeFlags;
|
|
|
|
DWORD m_dwConPointCookie;
|
|
BOOL m_fStats;
|
|
NETCON_MEDIATYPE m_ncmType;
|
|
NETCON_SUBMEDIATYPE m_ncsmType;
|
|
DWORD m_dwCharacter;
|
|
|
|
DWORD m_dwLastUpdateStatusDisplayTick;
|
|
BOOL m_fProcessingTimerEvent;
|
|
|
|
int m_iStatTrans;
|
|
|
|
const DWORD * m_adwHelpIDs;
|
|
|
|
BOOL m_fIsFirstPage;
|
|
|
|
INT m_iLastSignalStrength;
|
|
};
|
|
|
|
//
|
|
// The Status Monitors Tools Page
|
|
//
|
|
class CPspStatusMonitorTool: public CPropSheetPage
|
|
{
|
|
public:
|
|
BEGIN_MSG_MAP(CPshStatusMonitorTools)
|
|
|
|
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
|
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
|
|
|
|
MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu);
|
|
MESSAGE_HANDLER(WM_HELP, OnHelp);
|
|
|
|
COMMAND_ID_HANDLER(IDC_BTN_SM_TOOLS_OPEN, OnToolOpen)
|
|
|
|
NOTIFY_CODE_HANDLER(LVN_ITEMACTIVATE, OnItemActivate)
|
|
NOTIFY_CODE_HANDLER(LVN_ITEMCHANGED, OnItemChanged)
|
|
|
|
END_MSG_MAP()
|
|
|
|
// Message handlers
|
|
//
|
|
public:
|
|
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL & bHandled);
|
|
LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
LRESULT OnHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
|
|
LRESULT OnToolOpen(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
|
|
|
|
LRESULT OnItemActivate(INT idCtrl, LPNMHDR pnmh, BOOL& bHandled);
|
|
LRESULT OnItemChanged(INT idCtrl, LPNMHDR pnmh, BOOL& bHandled);
|
|
|
|
CPspStatusMonitorTool(VOID);
|
|
~CPspStatusMonitorTool(VOID);
|
|
|
|
public:
|
|
HRESULT HrInitToolPage(INetConnection* pncInit, const DWORD * adwHelpIDs = NULL);
|
|
BOOL FToolListEmpty()
|
|
{
|
|
return (m_lstpsmte.size()==0);
|
|
}
|
|
|
|
private:
|
|
virtual HRESULT HrInitToolPageType(INetConnection* pncInit) PURE;
|
|
virtual HRESULT HrAddCommandLineFlags(tstring* pstrFlags,
|
|
CStatMonToolEntry* psmteSel) PURE;
|
|
|
|
virtual HRESULT HrGetDeviceType(INetConnection* pncInit) PURE;
|
|
virtual HRESULT HrGetComponentList(INetConnection* pncInit) PURE;
|
|
|
|
// Utility Functions
|
|
//
|
|
private:
|
|
HRESULT HrCreateToolList(INetConnection* pncInit);
|
|
BOOL FToolToAddToList(CStatMonToolEntry* psmteTest);
|
|
HRESULT HrFillToolList(VOID);
|
|
HRESULT HrAddOneEntryToToolList(
|
|
CStatMonToolEntry* psmteAdd, INT iItem);
|
|
HRESULT HrLaunchTool(VOID);
|
|
HRESULT HrAddAllCommandLineFlags(tstring* pstrFlags,
|
|
CStatMonToolEntry* psmteSel);
|
|
HRESULT HrAddCommonCommandLineFlags(tstring* pstrFlags,
|
|
CStatMonToolEntry* psmteSel);
|
|
|
|
// Internal data
|
|
//
|
|
protected:
|
|
HWND m_hwndToolList;
|
|
list<CStatMonToolEntry*> m_lstpsmte;
|
|
|
|
NETCON_MEDIATYPE m_ncmType;
|
|
NETCON_SUBMEDIATYPE m_ncsmType;
|
|
tstring m_strDeviceType;
|
|
list<tstring*> m_lstpstrCompIds;
|
|
|
|
GUID m_guidId;
|
|
DWORD m_dwCharacter;
|
|
|
|
const DWORD * m_adwHelpIDs;
|
|
};
|
|
|
|
//
|
|
// The Status Monitors RAS Page
|
|
//
|
|
|
|
//
|
|
// Data associated with each of the sub devices in a modem connection
|
|
//
|
|
class CRasDeviceInfo
|
|
{
|
|
public:
|
|
CRasDeviceInfo()
|
|
{
|
|
m_iSubEntry = -1;
|
|
}
|
|
|
|
VOID SetDeviceName(PCWSTR pszDeviceName)
|
|
{
|
|
m_strDeviceName = pszDeviceName;
|
|
}
|
|
|
|
VOID SetSubEntry(DWORD iSubEntry)
|
|
{
|
|
m_iSubEntry = iSubEntry;
|
|
}
|
|
|
|
PCWSTR PszGetDeviceName(VOID)
|
|
{
|
|
return m_strDeviceName.c_str();
|
|
}
|
|
|
|
DWORD DwGetSubEntry(VOID)
|
|
{
|
|
return m_iSubEntry;
|
|
}
|
|
|
|
private:
|
|
tstring m_strDeviceName;
|
|
DWORD m_iSubEntry;
|
|
};
|
|
|
|
//
|
|
// The RAS page
|
|
//
|
|
class CPspStatusMonitorRas: public CPropSheetPage
|
|
{
|
|
public:
|
|
BEGIN_MSG_MAP(CPshStatusMonitorRas)
|
|
|
|
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
|
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
|
|
|
|
MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu);
|
|
MESSAGE_HANDLER(WM_HELP, OnHelp);
|
|
MESSAGE_HANDLER(WM_SETCURSOR, OnSetCursor);
|
|
|
|
COMMAND_ID_HANDLER(IDC_BTN_SM_SUSPEND_DEVICE, OnSuspendDevice)
|
|
COMMAND_ID_HANDLER(IDC_CMB_SM_RAS_DEVICES, OnDeviceDropDown)
|
|
|
|
MESSAGE_HANDLER(PWM_UPDATE_RAS_LINK_LIST, OnUpdateRasLinkList)
|
|
|
|
END_MSG_MAP()
|
|
|
|
// Message handlers
|
|
//
|
|
public:
|
|
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL & bHandled);
|
|
LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
LRESULT OnHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
|
|
LRESULT OnSetCursor(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
|
|
LRESULT OnSuspendDevice(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
|
|
LRESULT OnDeviceDropDown(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
|
|
|
|
LRESULT OnUpdateRasLinkList(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
CPspStatusMonitorRas();
|
|
~CPspStatusMonitorRas(VOID);
|
|
|
|
public:
|
|
HRESULT HrInitRasPage(INetConnection* pncInit,
|
|
CPspStatusMonitorGen * pGenPage,
|
|
const DWORD * dwHelpIDs = NULL);
|
|
|
|
// Utility Functions
|
|
//
|
|
private:
|
|
VOID FillDeviceDropDown();
|
|
VOID FillPropertyList();
|
|
VOID FillRasClientProperty();
|
|
VOID FillRasServerProperty();
|
|
int InsertProperty(int * piItem, UINT unId, tstring& strValue);
|
|
NETCON_STATUS NcsGetDeviceStatus(CRasDeviceInfo* prdiStatus);
|
|
VOID SetButtonStatus(CRasDeviceInfo* prdiSelect);
|
|
UINT GetActiveDeviceCount();
|
|
|
|
// Internal data
|
|
//
|
|
protected:
|
|
HRASCONN m_hRasConn;
|
|
tstring m_strPbkFile;
|
|
tstring m_strEntryName;
|
|
|
|
tstring m_strConnectionName;
|
|
list<CRasDeviceInfo*> m_lstprdi;
|
|
|
|
CPspStatusMonitorGen * m_pGenPage;
|
|
|
|
// initialize
|
|
NETCON_MEDIATYPE m_ncmType;
|
|
DWORD m_dwCharacter;
|
|
|
|
const DWORD * m_adwHelpIDs;
|
|
};
|
|
|
|
//
|
|
// Implementation of the RAS pages
|
|
//
|
|
class CPspRasGen: public CPspStatusMonitorGen
|
|
{
|
|
public:
|
|
CPspRasGen(VOID);
|
|
VOID put_MediaType(NETCON_MEDIATYPE ncmType, NETCON_SUBMEDIATYPE ncsmType);
|
|
VOID put_Character(DWORD dwCharacter);
|
|
};
|
|
|
|
class CPspRasTool: public CPspStatusMonitorTool
|
|
{
|
|
public:
|
|
CPspRasTool(VOID);
|
|
|
|
VOID put_MediaType(NETCON_MEDIATYPE ncmType, NETCON_SUBMEDIATYPE ncsmType);
|
|
VOID put_Character(DWORD dwCharacter);
|
|
|
|
HRESULT HrInitToolPageType(INetConnection* pncInit);
|
|
HRESULT HrAddCommandLineFlags(tstring* pstrFlags,
|
|
CStatMonToolEntry* psmteSel);
|
|
|
|
HRESULT HrGetDeviceType(INetConnection* pncInit);
|
|
HRESULT HrGetComponentList(INetConnection* pncInit);
|
|
};
|
|
|
|
//
|
|
// Implementation of the LAN pages
|
|
//
|
|
class CPspLanGen: public CPspStatusMonitorGen
|
|
{
|
|
public:
|
|
CPspLanGen(VOID);
|
|
VOID put_MediaType(NETCON_MEDIATYPE ncmType, NETCON_SUBMEDIATYPE ncsmType);
|
|
};
|
|
|
|
class CPspLanTool: public CPspStatusMonitorTool
|
|
{
|
|
public:
|
|
CPspLanTool(VOID);
|
|
|
|
HRESULT HrInitToolPageType(INetConnection* pncInit);
|
|
HRESULT HrAddCommandLineFlags(tstring* pstrFlags,
|
|
CStatMonToolEntry* psmteSel);
|
|
|
|
HRESULT HrGetDeviceType(INetConnection* pncInit);
|
|
HRESULT HrGetComponentList(INetConnection* pncInit);
|
|
|
|
private:
|
|
tstring m_strDeviceName;
|
|
};
|
|
|
|
//
|
|
// Implementation of the Shared Access pages
|
|
//
|
|
class CPspSharedAccessGen: public CPspStatusMonitorGen
|
|
{
|
|
public:
|
|
CPspSharedAccessGen(VOID);
|
|
VOID put_MediaType(NETCON_MEDIATYPE ncmType, NETCON_SUBMEDIATYPE ncsmType);
|
|
protected:
|
|
VOID UpdatePageBytesReceiving(const STATMON_ENGINEDATA* pseOldData, const STATMON_ENGINEDATA* pseNewData, StatTrans iStat);
|
|
VOID UpdatePageBytesTransmitting(const STATMON_ENGINEDATA* pseOldData, const STATMON_ENGINEDATA* pseNewData, StatTrans iStat);
|
|
BOOL ShouldShowPackets(const STATMON_ENGINEDATA* pseNewData);
|
|
VOID UpdatePageIcon(DWORD dwChangeFlags);
|
|
VOID UpdatePageSpeed(const STATMON_ENGINEDATA* pseOldData, const STATMON_ENGINEDATA* pseNewData);
|
|
VOID UpdatePageDuration(const STATMON_ENGINEDATA* pseOldData, const STATMON_ENGINEDATA* pseNewData);
|
|
|
|
|
|
|
|
};
|
|
|
|
class CPspSharedAccessTool : public CPspStatusMonitorTool
|
|
{
|
|
public:
|
|
CPspSharedAccessTool();
|
|
HRESULT HrInitToolPageType(INetConnection* pncInit);
|
|
HRESULT HrAddCommandLineFlags(tstring* pstrFlags,
|
|
CStatMonToolEntry* psmteSel);
|
|
|
|
HRESULT HrGetDeviceType(INetConnection* pncInit);
|
|
HRESULT HrGetComponentList(INetConnection* pncInit);
|
|
|
|
|
|
};
|
|
|
|
class CAdvIpcfgDlg : public CDialogImpl<CAdvIpcfgDlg>
|
|
{
|
|
public:
|
|
|
|
enum { IDD = IDD_DIALOG_ADV_IPCFG };
|
|
|
|
BEGIN_MSG_MAP(CAdvIpcfgDlg)
|
|
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog);
|
|
MESSAGE_HANDLER(WM_CLOSE, OnClose);
|
|
|
|
MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu);
|
|
MESSAGE_HANDLER(WM_HELP, OnHelp);
|
|
|
|
MESSAGE_HANDLER(PWM_UPDATE_IPCFG_DISPLAY, OnUpdateDisplay)
|
|
|
|
COMMAND_ID_HANDLER(IDOK, OnOk);
|
|
COMMAND_ID_HANDLER(IDCANCEL, OnCancel);
|
|
|
|
NOTIFY_CODE_HANDLER(LVN_KEYDOWN, OnListKeyDown);
|
|
|
|
END_MSG_MAP()
|
|
//
|
|
public:
|
|
CAdvIpcfgDlg();
|
|
|
|
~CAdvIpcfgDlg() {}
|
|
|
|
VOID InitDialog(const GUID & guidConnection, const DWORD * dwHelpIDs = NULL)
|
|
{
|
|
m_guidConnection = guidConnection;
|
|
m_adwHelpIDs = dwHelpIDs;
|
|
}
|
|
|
|
// Dialog creation overides
|
|
public:
|
|
|
|
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
|
|
LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
LRESULT OnHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
|
|
LRESULT OnUpdateDisplay(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnOk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
|
|
LRESULT OnCancel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
|
|
|
|
LRESULT OnListKeyDown(int idCtrl, LPNMHDR pnmh, BOOL& fHandled);
|
|
|
|
private:
|
|
HRESULT PopulateListControl();
|
|
VOID AddToListControl(int iIndex, LPWSTR szFirst, LPWSTR szSecond);
|
|
int AddIPAddrToListControl(int iStartIndex,
|
|
PIP_ADDR_STRING pAddrList,
|
|
LPWSTR pszAddrDescription,
|
|
LPWSTR pszMaskDescription = NULL,
|
|
BOOL fShowDescriptionForMutliple = FALSE
|
|
);
|
|
int AddWinsServersToList(int iStartIndex);
|
|
|
|
VOID CopyListToClipboard();
|
|
|
|
int IPAddrToString(
|
|
PIP_ADDR_STRING pAddrList,
|
|
tstring * pstrAddr,
|
|
tstring * pstrMask = NULL
|
|
);
|
|
HRESULT FormatTime(time_t t,
|
|
tstring & str);
|
|
|
|
|
|
protected:
|
|
GUID m_guidConnection;
|
|
HWND m_hList;
|
|
const DWORD * m_adwHelpIDs;
|
|
};
|
|
|
|
//
|
|
// The State page
|
|
//
|
|
class CPspStatusMonitorIpcfg: public CPropSheetPage
|
|
{
|
|
protected:
|
|
|
|
public:
|
|
BEGIN_MSG_MAP(CPspStatusMonitorIpcfg)
|
|
|
|
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
|
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
|
|
MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu);
|
|
MESSAGE_HANDLER(WM_HELP, OnHelp);
|
|
MESSAGE_HANDLER(PWM_UPDATE_IPCFG_DISPLAY, OnUpdateDisplay)
|
|
COMMAND_ID_HANDLER(IDC_STATE_BTN_REPAIR, OnRepair);
|
|
COMMAND_ID_HANDLER(IDC_STATE_BTN_DETAIL, OnDetails);
|
|
|
|
NOTIFY_CODE_HANDLER(PSN_SETACTIVE, OnActive)
|
|
NOTIFY_CODE_HANDLER(PSN_KILLACTIVE, OnKillActive)
|
|
|
|
END_MSG_MAP()
|
|
|
|
// Message handlers
|
|
//
|
|
public:
|
|
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL & bHandled);
|
|
LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnRepair(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
|
|
LRESULT OnDetails(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled);
|
|
LRESULT OnActive(int idCtrl, LPNMHDR pnmh, BOOL& fHandled);
|
|
LRESULT OnKillActive(int idCtrl, LPNMHDR pnmh, BOOL& fHandled);
|
|
|
|
LRESULT OnUpdateDisplay(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
LRESULT OnHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled);
|
|
|
|
CPspStatusMonitorIpcfg();
|
|
~CPspStatusMonitorIpcfg();
|
|
|
|
public:
|
|
HRESULT HrInitPage(INetConnection * pnConnection,
|
|
const DWORD * adwHelpIDs = NULL);
|
|
|
|
VOID CleanupPage();
|
|
|
|
VOID SetAsFirstPage(BOOL fFirst = TRUE)
|
|
{
|
|
m_fIsFirstPage = fFirst;
|
|
}
|
|
|
|
static DWORD WINAPI IPAddrListenProc(LPVOID lpParameter);
|
|
static DWORD WINAPI AdvIpCfgProc(LPVOID lpParameter);
|
|
|
|
// Utility Functions
|
|
//
|
|
private:
|
|
HRESULT GetIPConfigInfo();
|
|
VOID InitializeData();
|
|
VOID RefreshUI();
|
|
VOID StopAddressListenThread();
|
|
|
|
// Internal data
|
|
//
|
|
protected:
|
|
|
|
CAdvIpcfgDlg m_dlgAdvanced;
|
|
GUID m_guidConnection;
|
|
tstring m_strConnectionName;
|
|
tstring m_strIPAddress;
|
|
tstring m_strSubnetMask;
|
|
tstring m_strGateway;
|
|
HANDLE m_hEventAddrListenThreadStopCommand;
|
|
HANDLE m_hEventAddrListenThreadStopNotify;
|
|
|
|
DHCP_ADDRESS_TYPE m_dhcpAddrType;
|
|
BOOL m_fDhcp;
|
|
|
|
|
|
// initialize
|
|
NETCON_MEDIATYPE m_ncmType;
|
|
|
|
const DWORD * m_adwHelpIDs;
|
|
|
|
INetConnection * m_pConn;
|
|
|
|
BOOL m_fListenAddrChange;
|
|
BOOL m_fEnableOpButtons;
|
|
|
|
BOOL m_fIsFirstPage;
|
|
|
|
|
|
};
|
|
|
|
|