windows-nt/Source/XPSP1/NT/base/cluster/admin/cluadmex/ipaddr.h
2020-09-26 16:20:57 +08:00

160 lines
4 KiB
C++

/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1996-1999 Microsoft Corporation
//
// Module Name:
// IpAddr.h
//
// Abstract:
// Definition of the CIpAddrParamsPage class, which implements the
// Parameters page for IP Address resources.
//
// Implementation File:
// IpAddr.cpp
//
// Author:
// David Potter (davidp) June 28, 1996
//
// Revision History:
//
// Notes:
//
/////////////////////////////////////////////////////////////////////////////
#ifndef _IPADDR_H_
#define _IPADDR_H_
/////////////////////////////////////////////////////////////////////////////
// Include Files
/////////////////////////////////////////////////////////////////////////////
#ifndef __cluadmex_h__
#include <CluAdmEx.h>
#endif
#ifndef _BASEPAGE_H_
#include "BasePage.h" // for CBasePropertyPage
#endif
/////////////////////////////////////////////////////////////////////////////
// Forward Class Declarations
/////////////////////////////////////////////////////////////////////////////
struct CNetworkObject;
class CIpAddrEdit;
class CIpAddrParamsPage;
/////////////////////////////////////////////////////////////////////////////
// External Class Declarations
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// class CNetworkObject
/////////////////////////////////////////////////////////////////////////////
struct CNetworkObject
{
CString m_strName;
CLUSTER_NETWORK_ROLE m_nRole;
CString m_strAddress;
CString m_strAddressMask;
DWORD m_nAddress;
DWORD m_nAddressMask;
}; //*** struct CNetworkObject
typedef CList< CNetworkObject*, CNetworkObject* > CNetObjectList;
/////////////////////////////////////////////////////////////////////////////
// class CIpAddrParamsPage
/////////////////////////////////////////////////////////////////////////////
class CIpAddrParamsPage : public CBasePropertyPage
{
DECLARE_DYNCREATE(CIpAddrParamsPage)
// Construction
public:
CIpAddrParamsPage(void);
~CIpAddrParamsPage(void);
// Second phase construction.
virtual HRESULT HrInit(IN OUT CExtObject * peo);
// Dialog Data
//{{AFX_DATA(CIpAddrParamsPage)
enum { IDD = IDD_PP_IPADDR_PARAMETERS };
CButton m_chkEnableNetBIOS;
CComboBox m_cboxNetworks;
CEdit m_editSubnetMask;
CEdit m_editIPAddress;
CString m_strIPAddress;
CString m_strSubnetMask;
CString m_strNetwork;
BOOL m_bEnableNetBIOS;
//}}AFX_DATA
CString m_strPrevIPAddress;
CString m_strPrevSubnetMask;
CString m_strPrevNetwork;
BOOL m_bPrevEnableNetBIOS;
CNetObjectList m_lnetobjNetworks;
CNetworkObject * PnoNetworkFromIpAddress(IN LPCWSTR pszAddress);
void SelectNetwork(IN CNetworkObject * pno);
BOOL m_bIsSubnetUpdatedManually;
BOOL BIsSubnetUpdatedManually(void) const { return m_bIsSubnetUpdatedManually; }
BOOL m_bIsIPAddressModified;
BOOL BIsIPAddressModified(void) const { return m_bIsIPAddressModified; }
protected:
enum
{
epropNetwork,
epropAddress,
epropSubnetMask,
epropEnableNetBIOS,
epropMAX
};
CObjectProperty m_rgProps[epropMAX];
// Overrides
public:
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CIpAddrParamsPage)
public:
virtual BOOL OnSetActive();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
protected:
virtual const CObjectProperty * Pprops(void) const { return m_rgProps; }
virtual DWORD Cprops(void) const { return sizeof(m_rgProps) / sizeof(CObjectProperty); }
// Implementation
protected:
void CollectNetworks(void);
void ClearNetworkObjectList(void);
BOOL BIsNetNameProvider(void);
// Generated message map functions
//{{AFX_MSG(CIpAddrParamsPage)
virtual BOOL OnInitDialog();
afx_msg void OnChangeSubnetMask();
afx_msg void OnKillFocusIPAddress();
afx_msg void OnChangeRequiredFields();
afx_msg void OnChangeIPAddress();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}; //*** class CIpAddrParamsPage
/////////////////////////////////////////////////////////////////////////////
#endif // _IPADDR_H_