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