Windows-Server-2003/net/wlbs/nlbmgr/exe2/vipspage.h

143 lines
3.5 KiB
C++

//***************************************************************************
//
// VIPSPAGE.H
//
// Module: NLB Manager EXE
//
// Purpose: Interface to the "Cluster IP Addresses" dialog.
//
// Copyright (c)2001 Microsoft Corporation, All Rights Reserved
//
// History:
//
// 09/23/01 JosephJ Created
//
//***************************************************************************
#pragma once
class VipsPage : public CPropertyPage
{
public:
enum
{
IDD = IDD_DIALOG_CLUSTER_IPS
};
VipsPage(
CPropertySheet *psh,
NLB_EXTENDED_CLUSTER_CONFIGURATION *pNlbCfg,
BOOL fClusterView,
CWnd* parent
);
virtual BOOL OnInitDialog();
virtual void OnOK();
virtual BOOL OnSetActive();
virtual BOOL OnKillActive();
// overrides CDialog -- see SDK documentation on DoDataExchange.
// Used to map controls in resources to corresponding objects in this class.
virtual void DoDataExchange( CDataExchange* pDX );
afx_msg BOOL OnHelpInfo (HELPINFO* helpInfo );
afx_msg void OnContextMenu( CWnd* pWnd, CPoint point );
afx_msg void OnButtonAdd();
afx_msg void OnButtonRemove();
afx_msg void OnButtonEdit();
afx_msg void OnSelchanged(NMHDR * pNotifyStruct, LRESULT * result );
afx_msg void OnDoubleClick(NMHDR * pNotifyStruct, LRESULT * result );
afx_msg void OnUpdateEditAddVip();
private:
BOOL m_fClusterView;
BOOL m_fModified; // If it's been modified since we've last saved stuff
// to m_pNlbCfg;
UINT m_uPrimaryClusterIp; // UINT version of cluster ip, in network order
CEdit editAddVip;
CListCtrl listAdditionalVips;
void
mfn_SaveToNlbCfg(void);
void
mfn_LoadFromNlbCfg(void);
void
mfn_InitializeListView(void);
void
mfn_InsertNetworkAddress(
LPCWSTR szIP,
LPCWSTR szSubnetMask,
UINT lParam,
int nItem
);
CPropertySheet *m_pshOwner;
NLB_EXTENDED_CLUSTER_CONFIGURATION *m_pNlbCfg;
static
DWORD
s_HelpIDs[];
DECLARE_MESSAGE_MAP()
};
#define MAXIPSTRLEN 15 /* xxx.xxx.xxx.xxx */
class CIPAddressDialog : public CDialog {
public:
enum { IDD = IDD_DIALOG_IP_ADDRESS };
CIPAddressDialog (LPWSTR szIPAddress, LPWSTR szSubnetMask);
~CIPAddressDialog ();
// overrides CDialog -- see SDK documentation on DoDataExchange.
// Used to map controls in resources to corresponding objects in this class.
virtual void DoDataExchange( CDataExchange* pDX );
public:
virtual BOOL OnInitDialog();
virtual void OnOK();
void OnEditSubnetMask();
afx_msg BOOL OnHelpInfo (HELPINFO* helpInfo );
afx_msg void OnContextMenu( CWnd* pWnd, CPoint point );
LPWSTR GetIPAddress() { return _wcsdup(address.IpAddress); }
LPWSTR GetSubnetMask() { return _wcsdup(address.SubnetMask); }
private:
DWORD WideStringToIPAddress (const WCHAR* wszIPAddress);
void IPAddressToWideString (DWORD dwIPAddress, LPWSTR wszIPAddress);
void GetIPAddressOctets (LPWSTR wszIPAddress, DWORD dwIPAddress[4]);
BOOL IsValid (LPWSTR szIPAddress, LPWSTR szSubnetMask);
BOOL IsContiguousSubnetMask (LPWSTR wszSubnetMask);
BOOL CIPAddressDialog::GenerateSubnetMask (LPWSTR wszIPAddress,
UINT cchSubnetMask,
LPWSTR wszSubnetMask
);
CIPAddressCtrl IPAddress;
CIPAddressCtrl SubnetMask;
NLB_IP_ADDRESS_INFO address;
static
DWORD
s_HelpIDs[];
DECLARE_MESSAGE_MAP()
};