windows-nt/Source/XPSP1/NT/inetsrv/iis/admin/snapin/mmmdlg.h
2020-09-26 16:20:57 +08:00

311 lines
5.7 KiB
C++

/*++
Copyright (c) 1994-1998 Microsoft Corporation
Module Name :
mmmdlg.h
Abstract:
Multi-multi-multi dialog editor definitions
Author:
Ronald Meijer (ronaldm)
Project:
Internet Services Manager
Revision History:
--*/
#ifndef __MMMDLG_H__
#define __MMMDLG_H__
//
// UINT DDX/DDV helper function that uses a blank string to denote 0
//
void AFXAPI DDXV_UINT(
IN CDataExchange * pDX,
IN UINT nID,
IN OUT UINT & uValue,
IN UINT uMin,
IN UINT uMax,
IN UINT nEmptyErrorMsg = 0
);
//
// Helper function to check to see if binding is unique
//
BOOL
IsBindingUnique(
IN CString & strBinding,
IN CStringList & strlBindings,
IN int iCurrent = -1
);
/*
//
// Helper function to build and verify binding strings.
//
BOOL
VerifyBindingInfo(
OUT CString & strBinding,
OUT CString & strSecureBinding,
IN CStringList & strlBindings,
IN CStringList & strlSecureBindings,
IN int iBindings,
IN int iSSLBindings,
IN CIPAddress & iaIpAddress,
IN UINT nTCPPort,
IN UINT nSSLPort,
IN CString & strDomainName
);
*/
class CMMMListBox : public CHeaderListBox
{
/*++
Class Description:
Multi-multi-multi listbox.
Public Interface:
CMMMListBox : Constructor
GetItem : Get item at specified position
in the listbox
AddItem : Add new item to the listbox
Initialize : Initialize the listbox
--*/
DECLARE_DYNAMIC(CMMMListBox);
public:
//
// Number of bitmaps
//
static const nBitmaps;
public:
CMMMListBox(
IN LPCTSTR lpszRegKey,
IN int cColumns,
IN const ODL_COLUMN_DEF * pColumns
);
public:
CString & GetItem(UINT nIndex);
int AddItem(CString & item);
virtual BOOL Initialize();
protected:
virtual void DrawItemEx(CRMCListBoxDrawStruct & ds);
protected:
int m_cColumns;
const ODL_COLUMN_DEF * m_pColumns;
CString m_strDefaultIP;
CString m_strNoPort;
};
class CMMMEditDlg : public CDialog
/*++
Class Description:
Multi-Multi-Multi edit entry dialog
Public Interface:
CMMMEditDlg : Constructor
--*/
{
//
// Construction
//
public:
CMMMEditDlg(
IN CString & strServerName,
IN OUT CStringList & strlBindings,
IN CStringList & strlOtherBindings,
IN OUT CString & strEntry,
IN BOOL fIPBinding = TRUE,
IN CWnd * pParent = NULL
);
//
// Dialog Data
//
protected:
//{{AFX_DATA(CMMMEditDlg)
enum { IDD = IDD_EDIT_MMM };
int m_nIpAddressSel;
UINT m_nPort;
CString m_strDomainName;
CStatic m_static_Port;
CComboBox m_combo_IpAddresses;
//}}AFX_DATA
CIPAddress m_iaIpAddress;
//
// Overrides
//
protected:
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMMMEditDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX);
//}}AFX_VIRTUAL
//
// Implementation
//
protected:
// Generated message map functions
//{{AFX_MSG(CMMMEditDlg)
virtual BOOL OnInitDialog();
virtual void OnOK();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
BOOL m_fIPBinding;
CString & m_strServerName;
CString & m_entry;
CObListPlus m_oblIpAddresses;
CStringList & m_strlBindings;
CStringList & m_strlOtherBindings;
};
class CMMMDlg : public CDialog
/*++
Class Description:
Mutlti-multi-multi dialog
Public Interface:
CMMMDlg : Constructor
--*/
{
//
// Construction
//
public:
CMMMDlg(
IN LPCTSTR lpServerName,
IN DWORD dwInstance,
IN CComAuthInfo * pAuthInfo,
IN LPCTSTR lpMetaPath,
IN CStringList & strlBindings,
IN CStringList & strlSecureBindings,
IN CWnd * pParent = NULL
);
//
// Access
//
public:
CStringList & GetBindings() { return m_strlBindings; }
CStringList & GetSecureBindings() { return m_strlSecureBindings; }
//
// Dialog Data
//
protected:
//{{AFX_DATA(CMMMDlg)
enum { IDD = IDD_MMM };
CButton m_button_Add;
CButton m_button_Remove;
CButton m_button_Edit;
CButton m_button_AddSSL;
CButton m_button_RemoveSSL;
CButton m_button_EditSSL;
CButton m_button_OK;
//}}AFX_DATA
CMMMListBox m_list_Bindings;
CMMMListBox m_list_SSLBindings;
CStringList m_strlBindings;
CStringList m_strlSecureBindings;
//
// Overrides
//
protected:
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMMMDlg)
protected:
virtual void DoDataExchange(CDataExchange * pDX);
//}}AFX_VIRTUAL
//
// Implementation
//
protected:
// Generated message map functions
//{{AFX_MSG(CMMMDlg)
afx_msg void OnButtonAdd();
afx_msg void OnButtonEdit();
afx_msg void OnButtonRemove();
afx_msg void OnButtonAddSsl();
afx_msg void OnButtonEditSsl();
afx_msg void OnButtonRemoveSsl();
afx_msg void OnDblclkListMmm();
afx_msg void OnDblclkListSslMmm();
afx_msg void OnSelchangeListMmm();
afx_msg void OnSelchangeListSslMmm();
virtual BOOL OnInitDialog();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
BOOL OnItemChanged();
BOOL SetControlStates();
void AddBindings(CMMMListBox & list, CStringList & strl);
private:
BOOL m_fDirty;
BOOL m_fCertInstalled;
CString m_strServerName;
CComAuthInfo * m_pAuthInfo;
CString m_strMetaPath;
CRMCListBoxResources m_ListBoxRes;
};
//
// Inline Expansion
//
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
inline CString & CMMMListBox::GetItem(UINT nIndex)
{
return *(CString *)GetItemDataPtr(nIndex);
}
inline int CMMMListBox::AddItem(CString & item)
{
return AddString((LPCTSTR)&item);
}
#endif // __MMMDLG_H__