Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

326 lines
9.9 KiB

/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1996-2000 Microsoft Corporation
//
// Module Name:
// ClusProp.cpp
//
// Abstract:
// Definition of the cluster property sheet and pages.
//
// Author:
// David Potter (davidp) May 13, 1996
//
// Revision History:
//
// Notes:
//
/////////////////////////////////////////////////////////////////////////////
#ifndef _CLUSPROP_H_
#define _CLUSPROP_H_
/////////////////////////////////////////////////////////////////////////////
// Include Files
/////////////////////////////////////////////////////////////////////////////
#ifndef _BASEPAGE_H_
#include "BasePPag.h" // for CBasePropertyPage
#endif
#ifndef _BASESHT_H_
#include "BasePSht.h" // for CBasePropertySheet
#endif
#ifndef _NETWORK_H_
#include "Network.h" // for CNetworkList
#endif
/////////////////////////////////////////////////////////////////////////////
// Forward Class Declarations
/////////////////////////////////////////////////////////////////////////////
class CClusterGeneralPage;
class CClusterQuorumPage;
class CClusterNetPriorityPage;
class CClusterPropSheet;
/////////////////////////////////////////////////////////////////////////////
// External Class Declarations
/////////////////////////////////////////////////////////////////////////////
class CCluster;
class CResource;
/////////////////////////////////////////////////////////////////////////////
// CClusterGeneralPage dialog
/////////////////////////////////////////////////////////////////////////////
class CClusterGeneralPage : public CBasePropertyPage
{
DECLARE_DYNCREATE(CClusterGeneralPage)
// Construction
public:
CClusterGeneralPage(void);
~CClusterGeneralPage(void);
virtual BOOL BInit(IN OUT CBaseSheet * psht);
// Dialog Data
//{{AFX_DATA(CClusterGeneralPage)
enum { IDD = IDD_PP_CLUSTER_GENERAL };
CEdit m_editName;
CEdit m_editDesc;
CString m_strName;
CString m_strDesc;
CString m_strVendorID;
CString m_strVersion;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CClusterGeneralPage)
public:
virtual BOOL OnSetActive();
virtual BOOL OnKillActive();
virtual BOOL OnApply();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// BOOL m_bSecurityChanged;
CClusterPropSheet * PshtCluster(void) { return (CClusterPropSheet *) Psht(); }
CCluster * PciCluster(void) { return (CCluster *) Pci(); }
// BOOL BSecurityChanged(void) const { return m_bSecurityChanged; }
// Generated message map functions
//{{AFX_MSG(CClusterGeneralPage)
virtual BOOL OnInitDialog();
// afx_msg void OnBnClickedPermissions();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}; //*** class CClusterGeneralPage
/////////////////////////////////////////////////////////////////////////////
// CClusterQuorumPage dialog
/////////////////////////////////////////////////////////////////////////////
class CClusterQuorumPage : public CBasePropertyPage
{
DECLARE_DYNCREATE(CClusterQuorumPage)
// Construction
public:
CClusterQuorumPage(void);
~CClusterQuorumPage(void);
virtual BOOL BInit(IN OUT CBaseSheet * psht);
// Dialog Data
//{{AFX_DATA(CClusterQuorumPage)
enum { IDD = IDD_PP_CLUSTER_QUORUM };
CEdit m_editRootPath;
CEdit m_editMaxLogSize;
CComboBox m_cboxPartition;
CComboBox m_cboxQuorumResource;
CString m_strQuorumResource;
CString m_strPartition;
DWORD m_nMaxLogSize;
CString m_strRootPath;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CClusterQuorumPage)
public:
virtual BOOL OnApply();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//
// This struct will be stored as the data item in the resource drop down.
// We use the pciRes to get info about the resource and nIndex is the
// index of the last selected partition for that resource so that we can
// remember what the user wanted (rather than default to the first entry
// every time we select a new resource).
//
struct SResourceItemData
{
CResource * pciRes;
int nIndex;
};
BOOL m_bControlsInitialized;
PBYTE m_pbDiskInfo;
DWORD m_cbDiskInfo;
//
// Last saved values to compare against to determine whether to apply chagnes or not.
//
CString m_strSavedResource;
CString m_strSavedPartition;
CString m_strSavedRootPath;
DWORD m_nSavedLogSize;
BOOL BControlsInitialized(void) const { return m_bControlsInitialized; }
CClusterPropSheet * PshtCluster(void) const { return (CClusterPropSheet *) Psht(); }
CCluster * PciCluster(void) const { return (CCluster *) Pci(); }
void ClearResourceList(void);
void ClearPartitionList(void);
void FillResourceList(void);
void FillPartitionList(IN OUT CResource * pciRes);
BOOL BGetDiskInfo(IN OUT CResource & rpciRes);
void
SplitRootPath(
CResource * pciRes,
LPTSTR pszPartitionNameOut,
DWORD cchPartition,
LPTSTR pszRootPathOut,
DWORD cchRootPath
);
// Generated message map functions
//{{AFX_MSG(CClusterQuorumPage)
virtual BOOL OnInitDialog();
afx_msg void OnDblClkQuorumResource();
afx_msg void OnChangeQuorumResource();
afx_msg void OnChangePartition();
afx_msg void OnDestroy();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}; //*** class CClusterQuorumPage
/////////////////////////////////////////////////////////////////////////////
// CClusterNetPriorityPage dialog
/////////////////////////////////////////////////////////////////////////////
class CClusterNetPriorityPage : public CBasePropertyPage
{
DECLARE_DYNCREATE(CClusterNetPriorityPage)
// Construction
public:
CClusterNetPriorityPage(void);
// Dialog Data
//{{AFX_DATA(CClusterNetPriorityPage)
enum { IDD = IDD_PP_CLUSTER_NET_PRIORITY };
CButton m_pbProperties;
CButton m_pbDown;
CButton m_pbUp;
CListBox m_lbList;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CClusterNetPriorityPage)
public:
virtual BOOL OnApply();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
BOOL m_bControlsInitialized;
CNetworkList m_lpciNetworkPriority;
BOOL BControlsInitialized(void) const { return m_bControlsInitialized; }
CClusterPropSheet * PshtCluster(void) const { return (CClusterPropSheet *) Psht(); }
CCluster * PciCluster(void) const { return (CCluster *) Pci(); }
CNetworkList & LpciNetworkPriority(void) { return m_lpciNetworkPriority; }
void FillList(void);
void ClearNetworkList(void);
void DisplayProperties(void);
// Generated message map functions
//{{AFX_MSG(CClusterNetPriorityPage)
afx_msg void OnSelChangeList();
virtual BOOL OnInitDialog();
afx_msg void OnUp();
afx_msg void OnDown();
afx_msg void OnProperties();
afx_msg void OnDestroy();
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnDblClkList();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}; //*** class CClusterNetPriorityPage
/////////////////////////////////////////////////////////////////////////////
// CClusterPropSheet
/////////////////////////////////////////////////////////////////////////////
class CClusterPropSheet : public CBasePropertySheet
{
DECLARE_DYNAMIC(CClusterPropSheet)
// Construction
public:
CClusterPropSheet(
IN OUT CWnd * pParentWnd = NULL,
IN UINT iSelectPage = 0
);
virtual BOOL BInit(
IN OUT CClusterItem * pciCluster,
IN IIMG iimgIcon
);
// Attributes
protected:
CBasePropertyPage * m_rgpages[3];
// Pages
CClusterGeneralPage m_pageGeneral;
CClusterQuorumPage m_pageQuorum;
CClusterNetPriorityPage m_pageNetPriority;
CClusterGeneralPage & PageGeneral(void) { return m_pageGeneral; }
CClusterQuorumPage & PageQuorum(void) { return m_pageQuorum; }
CClusterNetPriorityPage & PageNetPriority(void) { return m_pageNetPriority; }
public:
CCluster * PciCluster(void) { return (CCluster *) Pci(); }
// Operations
// Overrides
protected:
virtual CBasePropertyPage** Ppages(void);
virtual int Cpages(void);
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CClusterPropSheet)
//}}AFX_VIRTUAL
// Implementation
public:
// Generated message map functions
protected:
//{{AFX_MSG(CClusterPropSheet)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}; //*** class CClusterPropSheet
/////////////////////////////////////////////////////////////////////////////
#endif // _CLUSPROP_H_