//+--------------------------------------------------------------------- // // 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; };