217 lines
6.8 KiB
C++
217 lines
6.8 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) 1996-2000 Microsoft Corporation
|
|
//
|
|
// Module Name:
|
|
// ClusDoc.h
|
|
//
|
|
// Abstract:
|
|
// Definition of the CClusterDoc class.
|
|
//
|
|
// Implementation File:
|
|
// ClusDoc.cpp
|
|
//
|
|
// Author:
|
|
// David Potter (davidp) May 1, 1996
|
|
//
|
|
// Revision History:
|
|
//
|
|
// Notes:
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _CLUSDOC_H_
|
|
#define _CLUSDOC_H_
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Include Files
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _NODE_H_
|
|
#include "Node.h" // for CNodeList
|
|
#endif
|
|
|
|
#ifndef _GROUP_H_
|
|
#include "Group.h" // for CGroupList
|
|
#endif
|
|
|
|
#ifndef _RES_H_
|
|
#include "Res.h" // for CResourceList
|
|
#endif
|
|
|
|
#ifndef _RESTYPE_H_
|
|
#include "ResType.h" // for CResourceTypeList
|
|
#endif
|
|
|
|
#ifndef _NETWORK_H_
|
|
#include "Network.h" // for CNetworkList
|
|
#endif
|
|
|
|
#ifndef _NETIFACE_H_
|
|
#include "NetIFace.h" // for CNetInterfaceList
|
|
#endif
|
|
|
|
#ifndef _TREEITEM_H_
|
|
#include "TreeItem.h" // for CTreeItem
|
|
#endif
|
|
|
|
#ifndef _NOTIFY_H_
|
|
#include "Notify.h" // for CClusterNotifyKeyList
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Forward Class Declarations
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CClusterDoc;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// External Class Declarations
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CClusterNotify;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Type Definitions
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// class CClusterDoc
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CClusterDoc : public CDocument
|
|
{
|
|
friend class CCluster;
|
|
friend class CClusterTreeView;
|
|
friend class CClusterListView;
|
|
friend class CCreateResourceWizard;
|
|
|
|
protected: // create from serialization only
|
|
CClusterDoc(void);
|
|
DECLARE_DYNCREATE(CClusterDoc)
|
|
|
|
// Attributes
|
|
protected:
|
|
CString m_strName;
|
|
CString m_strNode;
|
|
HCLUSTER m_hcluster;
|
|
HKEY m_hkeyCluster;
|
|
CCluster * m_pciCluster;
|
|
CTreeItem * m_ptiCluster;
|
|
|
|
CNodeList m_lpciNodes;
|
|
CGroupList m_lpciGroups;
|
|
CResourceList m_lpciResources;
|
|
CResourceTypeList m_lpciResourceTypes;
|
|
CNetworkList m_lpciNetworks;
|
|
CNetInterfaceList m_lpciNetInterfaces;
|
|
|
|
CClusterItemList m_lpciToBeDeleted;
|
|
|
|
BOOL m_bClusterAvailable;
|
|
|
|
public:
|
|
const CString & StrName(void) const { return m_strName; }
|
|
const CString & StrNode(void) const { return m_strNode; }
|
|
HCLUSTER Hcluster(void) const { return m_hcluster; }
|
|
HKEY HkeyCluster(void) const { return m_hkeyCluster; }
|
|
CCluster * PciCluster(void) const { return m_pciCluster; }
|
|
CTreeItem * PtiCluster(void) const { return m_ptiCluster; }
|
|
|
|
CNodeList & LpciNodes(void) { return m_lpciNodes; }
|
|
CGroupList & LpciGroups(void) { return m_lpciGroups; }
|
|
CResourceTypeList & LpciResourceTypes(void) { return m_lpciResourceTypes; }
|
|
CResourceList & LpciResources(void) { return m_lpciResources; }
|
|
CNetworkList & LpciNetworks(void) { return m_lpciNetworks; }
|
|
CNetInterfaceList & LpciNetInterfaces(void) { return m_lpciNetInterfaces; }
|
|
|
|
CClusterItemList & LpciToBeDeleted(void) { return m_lpciToBeDeleted; }
|
|
|
|
BOOL BClusterAvailable(void) const { return m_bClusterAvailable; }
|
|
|
|
// Operations
|
|
public:
|
|
void UpdateTitle(void);
|
|
void Refresh(void) { OnCmdRefresh(); }
|
|
|
|
// Overrides
|
|
public:
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CClusterDoc)
|
|
public:
|
|
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
|
|
virtual void SetPathName(LPCTSTR lpszPathName, BOOL bAddToMRU = TRUE);
|
|
virtual void DeleteContents();
|
|
virtual void OnCloseDocument();
|
|
virtual void OnChangedViewList();
|
|
//}}AFX_VIRTUAL
|
|
|
|
void OnSelChanged(IN CClusterItem * pciSelected);
|
|
LRESULT OnClusterNotify(IN OUT CClusterNotify * pnotify);
|
|
void SaveSettings(void);
|
|
|
|
// Implementation
|
|
public:
|
|
virtual ~CClusterDoc(void);
|
|
#ifdef _DEBUG
|
|
virtual void AssertValid(void) const;
|
|
virtual void Dump(CDumpContext& dc) const;
|
|
#endif
|
|
|
|
protected:
|
|
void OnOpenDocumentWorker(LPCTSTR lpszPathName);
|
|
void BuildBaseHierarchy(void);
|
|
void CollectClusterItems(void) ;
|
|
ID IdProcessNewObjectError(IN OUT CException * pe);
|
|
void AddDefaultColumns(IN OUT CTreeItem * pti);
|
|
|
|
CClusterNode * PciAddNewNode(IN LPCTSTR pszName);
|
|
CGroup * PciAddNewGroup(IN LPCTSTR pszName);
|
|
CResource * PciAddNewResource(IN LPCTSTR pszName);
|
|
CResourceType * PciAddNewResourceType(IN LPCTSTR pszName);
|
|
CNetwork * PciAddNewNetwork(IN LPCTSTR pszName);
|
|
CNetInterface * PciAddNewNetInterface(IN LPCTSTR pszName);
|
|
|
|
void InitNodes(void);
|
|
void InitGroups(void);
|
|
void InitResources(void);
|
|
void InitResourceTypes(void);
|
|
void InitNetworks(void);
|
|
void InitNetInterfaces(void);
|
|
|
|
BOOL m_bUpdateFrameNumber;
|
|
BOOL m_bInitializing;
|
|
BOOL m_bIgnoreErrors;
|
|
|
|
// This menu stuff allows the menu to change depending on what
|
|
// kind of object is currently selected.
|
|
HMENU m_hmenuCluster;
|
|
HMENU m_hmenuNode;
|
|
HMENU m_hmenuGroup;
|
|
HMENU m_hmenuResource;
|
|
HMENU m_hmenuResType;
|
|
HMENU m_hmenuNetwork;
|
|
HMENU m_hmenuNetIFace;
|
|
HMENU m_hmenuCurrent;
|
|
IDM m_idmCurrentMenu;
|
|
virtual HMENU GetDefaultMenu(void);
|
|
|
|
void ProcessRegNotification(IN const CClusterNotify * pnotify);
|
|
|
|
// Generated message map functions
|
|
protected:
|
|
//{{AFX_MSG(CClusterDoc)
|
|
afx_msg void OnCmdNewGroup();
|
|
afx_msg void OnCmdNewResource();
|
|
afx_msg void OnCmdNewNode();
|
|
afx_msg void OnCmdConfigApp();
|
|
afx_msg void OnCmdRefresh();
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
}; //*** class CClusterDoc
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endif // _CLUSDOC_H_
|