//----------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1997. // // File: D L G A D D R . H // // Contents: CTcpAddrPage declaration // // Notes: CTcpAddrPage is the IP Address page // // Author: tongl 5 Nov 1997 //----------------------------------------------------------------------- #pragma once #include #include #include "ipctrl.h" #include "dlgbkup.h" class CTcpAddrPage : public CPropSheetPage { public: // Declare the message map BEGIN_MSG_MAP(CTcpAddrPage) // Initialize dialog MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu) MESSAGE_HANDLER(WM_HELP, OnHelp) // Property page notification message handlers NOTIFY_CODE_HANDLER(PSN_APPLY, OnApply) NOTIFY_CODE_HANDLER(PSN_KILLACTIVE, OnKillActive) NOTIFY_CODE_HANDLER(PSN_SETACTIVE, OnActive) NOTIFY_CODE_HANDLER(PSN_RESET, OnCancel) // Control message handlers // Mesg handler for the DHCP Radio button COMMAND_ID_HANDLER(IDC_IP_DHCP, OnDhcpButton) // Mesg handler for the "specify IP address" Radio button COMMAND_ID_HANDLER(IDC_IP_FIXED, OnFixedButton) // Mesg handler for the DHCP Radio button COMMAND_ID_HANDLER(IDC_DNS_DHCP, OnDnsDhcp) // Mesg handler for the "specify IP address" Radio button COMMAND_ID_HANDLER(IDC_DNS_FIXED, OnDnsFixed) // Mesg handler for the "Advanced" push button COMMAND_ID_HANDLER(IDC_IPADDR_ADVANCED, OnAdvancedButton) // Notification handlers for the IP address edit boxes COMMAND_ID_HANDLER(IDC_IPADDR_IP, OnIpAddrIp) COMMAND_ID_HANDLER(IDC_IPADDR_SUB, OnIpAddrSub) COMMAND_ID_HANDLER(IDC_IPADDR_GATE, OnIpAddrGateway) COMMAND_ID_HANDLER(IDC_DNS_PRIMARY, OnDnsPrimary) COMMAND_ID_HANDLER(IDC_DNS_SECONDARY, OnDnsSecondary) NOTIFY_CODE_HANDLER(IPN_FIELDCHANGED, OnIpFieldChange) END_MSG_MAP() // Constructors/Destructors CTcpAddrPage(CTcpipcfg * ptcpip, const DWORD * phelpIDs = NULL); ~CTcpAddrPage(); // Interface public: // message map functions LRESULT OnInitDialog(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); // notify handlers for the property page LRESULT OnApply(int idCtrl, LPNMHDR pnmh, BOOL& fHandled); LRESULT OnKillActive(int idCtrl, LPNMHDR pnmh, BOOL& fHandled); LRESULT OnActive(int idCtrl, LPNMHDR pnmh, BOOL& fHandled); LRESULT OnCancel(int idCtrl, LPNMHDR pnmh, BOOL& fHandled); LRESULT OnQueryCancel(int idCtrl, LPNMHDR pnmh, BOOL& fHandled); // command ID handlers LRESULT OnDhcpButton(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnFixedButton(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnDnsDhcp(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnDnsFixed(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnAdvancedButton(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); // notify code hanlders for the IP edit controls LRESULT OnIpAddrIp(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnIpAddrSub(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnIpAddrGateway(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnDnsPrimary(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnDnsSecondary(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& fHandled); LRESULT OnIpFieldChange(int idCtrl, LPNMHDR pnmh, BOOL& fHandled); friend class CIpSettingsPage; friend class CTcpDnsPage; friend class CTcpWinsPage; friend class CAtmArpcPage; friend class CTcpOptionsPage; friend class CTcpRasPage; // Implementation private: // initializes control state and values void SetInfo(); // update values in m_pAdapterInfo with what's in the controls void UpdateInfo(); void UpdateAddressList(VSTR * pvstrList,IpControl& ipPrimary,IpControl& ipSecondary); int DoPropertySheet(ADAPTER_INFO * pAdapterDlg, GLOBAL_INFO * pGlbDlg); HRESULT HrSetupPropPages(ADAPTER_INFO * pAdapterDlg, GLOBAL_INFO * pGlbDlg, HPROPSHEETPAGE ** pahpsp, INT * pcPages); void EnableGroup(BOOL fEnableDhcp); void EnableStaticDns(BOOL fUseStaticDns); void SetSubnetMask(); // Inlines BOOL IsModified() {return m_fModified;} void SetModifiedTo(BOOL bState) {m_fModified = bState;} void PageModified() { if (!m_fSetInitialValue) { m_fModified = TRUE; PropSheet_Changed(GetParent(), m_hWnd); } } BOOL FAlreadyWarned(tstring strIp) { BOOL fRet = FALSE; VSTR_ITER iterIpBegin = m_vstrWarnedDupIpList.begin(); VSTR_ITER iterIpEnd = m_vstrWarnedDupIpList.end(); VSTR_ITER iterIp = iterIpBegin; for( ; iterIp != iterIpEnd; iterIp++) { if (strIp == **iterIp) { fRet = TRUE; break; } } return fRet; } void ShowOrHideBackupPage(); // data members CTcpipcfg * m_ptcpip; ConnectionType m_ConnType; ADAPTER_INFO * m_pAdapterInfo; const DWORD* m_adwHelpIDs; BOOL m_fModified; BOOL m_fPropShtOk; BOOL m_fPropShtModified; BOOL m_fLmhostsFileReset; //IPSec is removed from connection UI // BOOL m_fIpsecPolicySet; BOOL m_fSetInitialValue; BOOL m_fRasNotAdmin; IpControl m_ipAddress; IpControl m_ipSubnetMask; IpControl m_ipDefGateway; IpControl m_ipDnsPrimary; IpControl m_ipDnsSecondary; VSTR m_vstrWarnedDupIpList; class CIpSettingsPage * m_pIpSettingsPage; class CTcpDnsPage * m_pTcpDnsPage; class CTcpWinsPage * m_pTcpWinsPage; class CAtmArpcPage * m_pAtmArpcPage; class CTcpOptionsPage * m_pTcpOptionsPage; class CTcpRasPage * m_pTcpRasPage; CIpBackUpDlg m_pageBackup; HPROPSHEETPAGE m_hBackupPage; };