windows-nt/Source/XPSP1/NT/net/wlbs/nlbmgr/exe/portspage.h
2020-09-26 16:20:57 +08:00

198 lines
3.8 KiB
C++

#ifndef PORTSPAGE_H
#define PORTSPAGE_H
#include "stdafx.h"
#include "resource.h"
#include "MNLBUIData.h"
#include "CommonNLB.h"
class PortsPage : public CPropertyPage
{
public:
struct PortData
{
PortData();
DWORD key;
_bstr_t start_port;
_bstr_t end_port;
_bstr_t protocol;
_bstr_t mode;
_bstr_t priority;
_bstr_t load;
_bstr_t affinity;
};
enum
{
IDD = IDD_DIALOG_PORTS,
};
PortsPage( const _bstr_t& myMachineName,
ClusterData* p_clusterData,
UINT ID = PortsPage::IDD );
PortsPage( ClusterData* p_clusterData,
UINT ID = PortsPage::IDD );
~PortsPage();
void
getPresentPorts( vector<PortData>* ports );
// overrides of CPropertyPage
virtual void OnOK();
virtual BOOL OnKillActive();
virtual BOOL OnInitDialog();
virtual void DoDataExchange( CDataExchange* pDX );
afx_msg void OnButtonAdd();
afx_msg void OnButtonDel();
afx_msg void OnButtonModify();
afx_msg void OnDoubleClick( NMHDR * pNotifyStruct, LRESULT * result );
afx_msg void OnColumnClick( NMHDR * pNotifyStruct, LRESULT * result );
afx_msg void OnSelchanged( NMHDR * pNotifyStruct, LRESULT * result );
afx_msg BOOL OnHelpInfo (HELPINFO* helpInfo );
afx_msg void OnContextMenu( CWnd* pWnd, CPoint point );
// data members
CListCtrl m_portList;
CButton buttonAdd;
CButton buttonModify;
CButton buttonDel;
ClusterData* m_clusterData;
bool m_isClusterLevel;
_bstr_t machine;
private:
bool m_sort_ascending;
int m_sort_column;
void
SetControlData();
DECLARE_MESSAGE_MAP()
};
static DWORD g_aHelpIDs_IDD_DIALOG_PORTS [] = {
IDC_TEXT_PORT_RULE, IDC_LIST_PORT_RULE,
IDC_LIST_PORT_RULE, IDC_LIST_PORT_RULE,
IDC_BUTTON_ADD, IDC_BUTTON_ADD,
IDC_BUTTON_MODIFY, IDC_BUTTON_MODIFY,
IDC_BUTTON_DEL, IDC_BUTTON_DEL,
IDC_GROUP_PORT_RULE_DESCR, IDC_GROUP_PORT_RULE_DESCR,
IDC_TEXT_PORT_RULE_DESCR, IDC_GROUP_PORT_RULE_DESCR,
0, 0
};
class comp_start_port
{
public:
bool operator()( PortsPage::PortData x, PortsPage::PortData y )
{
return ( _wtoi( x.start_port ) < _wtoi( y.start_port ) );
}
};
class comp_end_port
{
public:
bool operator()( PortsPage::PortData x, PortsPage::PortData y )
{
return ( _wtoi( x.end_port ) < _wtoi( y.end_port ) );
}
};
class comp_protocol
{
public:
bool operator()( PortsPage::PortData x, PortsPage::PortData y )
{
return ( x.protocol < y.protocol );
}
};
class comp_mode
{
public:
bool operator()( PortsPage::PortData x, PortsPage::PortData y )
{
return ( x.mode < y.mode );
}
};
class comp_priority_string
{
public:
bool operator()( PortsPage::PortData x, PortsPage::PortData y )
{
return ( x.priority < y.priority );
}
};
class comp_priority_int
{
public:
bool operator()( PortsPage::PortData x, PortsPage::PortData y )
{
return ( _wtoi( x.priority ) < _wtoi( y.priority ) );
}
};
class comp_load_string
{
public:
bool operator()( PortsPage::PortData x, PortsPage::PortData y )
{
return ( x.load < y.load );
}
};
class comp_load_int
{
public:
bool operator()( PortsPage::PortData x, PortsPage::PortData y )
{
return ( _wtoi( x.load ) < _wtoi( y.load ) );
}
};
class comp_affinity
{
public:
bool operator()( PortsPage::PortData x, PortsPage::PortData y )
{
return ( x.affinity < y.affinity );
}
};
#endif