326 lines
7.5 KiB
C++
326 lines
7.5 KiB
C++
//+---------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1993 - 1997.
|
|
//
|
|
// File: endpointDetails.h
|
|
//
|
|
// Contents: Defines the classes CEndpointDetails,
|
|
//
|
|
// Classes:
|
|
//
|
|
// Methods:
|
|
//
|
|
// History: 03-Dec-96 Ronans Created.
|
|
//
|
|
//----------------------------------------------------------------------
|
|
|
|
|
|
#ifndef __ENDPOINTDETAILS_H__
|
|
#define __ENDPOINTDETAILS_H__
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// ProtocolDesc structure
|
|
|
|
struct ProtocolDesc {
|
|
|
|
enum endpFormat {
|
|
ef_Integer255 = 1,
|
|
ef_IpPortNum = 2,
|
|
ef_NamedPipe = 4,
|
|
ef_Integer = 8,
|
|
ef_DecNetObject = 16,
|
|
ef_Char22 = 32,
|
|
ef_VinesSpPort = 64,
|
|
ef_sAppService = 128 };
|
|
|
|
LPCTSTR pszProtseq;
|
|
int nResidDesc;
|
|
int nEndpFmt;
|
|
int nAddrTip;
|
|
int nEndpointTip;
|
|
BOOL bAllowDynamic;
|
|
BOOL m_bSupportedInCOM;
|
|
};
|
|
|
|
int FindProtocol(LPCTSTR pszProtSeq);
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CEndpointData
|
|
|
|
class CEndpointData : public CObject
|
|
{
|
|
DECLARE_DYNAMIC(CEndpointData)
|
|
|
|
public:
|
|
BOOL AllowGlobalProperties();
|
|
BOOL GetDescription(CString&);
|
|
enum EndpointFlags { edUseStaticEP = 0, edUseInternetEP = 1, edUseIntranetEP = 2, edDisableEP = 3 };
|
|
|
|
CEndpointData();
|
|
CEndpointData(LPCTSTR szProtseq, EndpointFlags nDynamic = edUseStaticEP, LPCTSTR szEndpoint = NULL);
|
|
|
|
CString m_szProtseq;
|
|
EndpointFlags m_nDynamicFlags;
|
|
CString m_szEndpoint;
|
|
ProtocolDesc *m_pProtocol;
|
|
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CEndpointDetails dialog
|
|
|
|
class CEndpointDetails : public CDialog
|
|
{
|
|
// Construction
|
|
public:
|
|
void UpdateProtocolUI();
|
|
void SetEndpointData(CEndpointData* pData);
|
|
CEndpointData* GetEndpointData(CEndpointData *);
|
|
CEndpointDetails(CWnd* pParent = NULL); // standard constructor
|
|
|
|
|
|
enum operation { opAddProtocol, opUpdateProtocol };
|
|
|
|
void SetOperation ( operation opTask );
|
|
|
|
enum btnOrder { rbiDisable = 0, rbiDefault, rbiStatic, rbiIntranet, rbiInternet };
|
|
|
|
// Dialog Data
|
|
//{{AFX_DATA(CEndpointDetails)
|
|
enum { IDD = IDD_RPCEP_DETAILS };
|
|
CButton m_rbDisableEP;
|
|
CStatic m_stProtseq;
|
|
CStatic m_stInstructions;
|
|
CEdit m_edtEndpoint;
|
|
CButton m_rbStaticEP;
|
|
CComboBox m_cbProtseq;
|
|
CString m_szEndpoint;
|
|
int m_nDynamic;
|
|
//}}AFX_DATA
|
|
|
|
CButton m_rbDynamicInternet;
|
|
CButton m_rbDynamicIntranet;
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CEndpointDetails)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
CEndpointData::EndpointFlags m_nDynamicFlags;
|
|
int m_nProtocolIndex;
|
|
operation m_opTask;
|
|
CEndpointData *m_pCurrentEPData;
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(CEndpointDetails)
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnChooseProtocol();
|
|
afx_msg void OnEndpointAssignment();
|
|
afx_msg void OnEndpointAssignmentStatic();
|
|
afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
#endif
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CAddProtocolDlg dialog
|
|
|
|
const long MIN_PORT = 0;
|
|
const long MAX_PORT = 0xffff;
|
|
|
|
|
|
class CAddProtocolDlg : public CDialog
|
|
{
|
|
// Construction
|
|
public:
|
|
CAddProtocolDlg(CWnd* pParent = NULL); // standard constructor
|
|
CEndpointData* GetEndpointData(CEndpointData *);
|
|
|
|
// Dialog Data
|
|
//{{AFX_DATA(CAddProtocolDlg)
|
|
enum { IDD = IDD_ADDPROTOCOL };
|
|
CComboBox m_cbProtseq;
|
|
CStatic m_stInstructions;
|
|
//}}AFX_DATA
|
|
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CAddProtocolDlg)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(CAddProtocolDlg)
|
|
afx_msg void OnChooseProtocol();
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
private:
|
|
int m_nProtocolIndex;
|
|
CEndpointData *m_pCurrentEPData;
|
|
|
|
};
|
|
|
|
class CPortRange : public CObject
|
|
{
|
|
friend class CPortRangesDlg;
|
|
friend class CAddPortDlg;
|
|
public:
|
|
CPortRange(long start, long finish);
|
|
long Start();
|
|
long Finish();
|
|
BOOL operator<(CPortRange& rRange);
|
|
|
|
private:
|
|
long m_dwStart;
|
|
long m_dwFinish;
|
|
};
|
|
|
|
inline CPortRange::CPortRange(long start, long finish)
|
|
{
|
|
m_dwStart = start;
|
|
m_dwFinish = finish;
|
|
}
|
|
|
|
inline long CPortRange::Start()
|
|
{
|
|
return m_dwStart;
|
|
}
|
|
|
|
inline long CPortRange::Finish()
|
|
{
|
|
return m_dwFinish;
|
|
}
|
|
|
|
inline BOOL CPortRange::operator<(CPortRange& rRange)
|
|
{
|
|
return (m_dwStart < rRange.m_dwStart);
|
|
}
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CPortRangesDlg dialog
|
|
|
|
|
|
class CPortRangesDlg : public CDialog
|
|
{
|
|
// Construction
|
|
public:
|
|
CPortRangesDlg(CWnd* pParent = NULL); // standard constructor
|
|
~CPortRangesDlg();
|
|
|
|
void RemoveAllRanges(CObArray& rRanges);
|
|
void RefreshRanges(CPortRange *pModifiedRange, BOOL bAdded);
|
|
|
|
enum cprRangeAssignment { cprInternet = 0, cprIntranet = 1 };
|
|
enum cprDefaultRange { cprDefaultInternet = 0, cprDefaultIntranet = 1 };
|
|
|
|
// Dialog Data
|
|
//{{AFX_DATA(CPortRangesDlg)
|
|
enum { IDD = IDD_RPC_PORT_RANGES };
|
|
CButton m_rbRangeInternet;
|
|
CStatic m_stInstructions;
|
|
CListBox m_lbRanges;
|
|
CButton m_btnRemoveAll;
|
|
CButton m_btnRemove;
|
|
CButton m_btnAdd;
|
|
int m_nrbDefaultAssignment;
|
|
int m_nrbRangeAssignment; // 1 = intranet, 0 = internet
|
|
//}}AFX_DATA
|
|
CButton m_rbRangeIntranet;
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CPortRangesDlg)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
void CondenseRangeSet(CObArray &arrSrc);
|
|
void SortRangeSet(CObArray &arrSrc);
|
|
void CreateInverseRangeSet(CObArray& arrSrc, CObArray& arrDest);
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(CPortRangesDlg)
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnAddPortRange();
|
|
afx_msg void OnRemovePortRange();
|
|
afx_msg void OnRemoveAllRanges();
|
|
afx_msg void OnAssignRangeInternet();
|
|
afx_msg void OnAssignRangeIntranet();
|
|
afx_msg void OnSelChangeRanges();
|
|
virtual void OnOK();
|
|
afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
|
|
afx_msg void OnDefaultInternet();
|
|
afx_msg void OnDefaultIntranet();
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
private:
|
|
CObArray* m_pRanges;
|
|
int m_nSelection;
|
|
CObArray m_arrInternetRanges;
|
|
CObArray m_arrIntranetRanges;
|
|
|
|
int m_nInetPortsIdx;
|
|
int m_nInetPortsAvailableIdx;
|
|
int m_nInetDefaultPortsIdx;
|
|
|
|
BOOL m_bChanged;
|
|
|
|
};
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CAddPortDlg dialog
|
|
|
|
class CAddPortDlg : public CDialog
|
|
{
|
|
// Construction
|
|
public:
|
|
CPortRange* GetPortRange();
|
|
BOOL Validate();
|
|
CAddPortDlg(CWnd* pParent = NULL); // standard constructor
|
|
|
|
// Dialog Data
|
|
//{{AFX_DATA(CAddPortDlg)
|
|
enum { IDD = IDD_ADD_PORT_RANGE };
|
|
CEdit m_edtPortRange;
|
|
CButton m_btnOk;
|
|
CStatic m_stInstructions;
|
|
CString m_sRange;
|
|
//}}AFX_DATA
|
|
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CAddPortDlg)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(CAddPortDlg)
|
|
virtual BOOL OnInitDialog();
|
|
virtual void OnOK();
|
|
afx_msg void OnChangePortrange();
|
|
afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
private:
|
|
long m_dwEndPort;
|
|
long m_dwStartPort;
|
|
};
|