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
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_
|