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.
 
 
 
 
 
 

221 lines
8.2 KiB

/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1996-2000 Microsoft Corporation
//
// Module Name:
// Res.h
//
// Abstract:
// Definition of the CResource class.
//
// Author:
// David Potter (davidp) May 6, 1996
//
// Revision History:
//
// Notes:
//
/////////////////////////////////////////////////////////////////////////////
#ifndef _RESTYPE_H_
#define _RESTYPE_H_
/////////////////////////////////////////////////////////////////////////////
// Forward Class Declarations
/////////////////////////////////////////////////////////////////////////////
class CResourceType;
class CResourceTypeList;
/////////////////////////////////////////////////////////////////////////////
// External Class Declarations
/////////////////////////////////////////////////////////////////////////////
class CNodeList;
class CClusterNode;
/////////////////////////////////////////////////////////////////////////////
// Type Definitions
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Include Files
/////////////////////////////////////////////////////////////////////////////
#ifndef _TREEITEM_
#include "ClusItem.h" // for CClusterItem
#endif
#ifndef _PROPLIST_H_
#include "PropList.h" // for CObjectProperty, CClusPropList
#endif
/////////////////////////////////////////////////////////////////////////////
// CResourceType command target
/////////////////////////////////////////////////////////////////////////////
class CResourceType : public CClusterItem
{
DECLARE_DYNCREATE( CResourceType )
CResourceType( void ); // protected constructor used by dynamic creation
void Init( IN OUT CClusterDoc * pdoc, IN LPCTSTR lpszName );
// Attributes
protected:
CString m_strDisplayName;
CString m_strResDLLName;
CStringList m_lstrAdminExtensions;
DWORD m_nLooksAlive;
DWORD m_nIsAlive;
CLUS_RESOURCE_CLASS_INFO m_rciResClassInfo;
DWORD m_dwCharacteristics;
DWORD m_dwFlags;
BOOL m_bAvailable;
CNodeList * m_plpcinodePossibleOwners;
enum
{
epropDisplayName = 0,
epropDllName,
epropDescription,
epropLooksAlive,
epropIsAlive,
epropMAX
};
CObjectProperty m_rgProps[ epropMAX ];
public:
const CString & StrDisplayName( void ) const { return m_strDisplayName; }
const CString & StrResDLLName( void ) const { return m_strResDLLName; }
const CStringList & LstrAdminExtensions( void ) const { return m_lstrAdminExtensions; }
DWORD NLooksAlive( void ) const { return m_nLooksAlive; }
DWORD NIsAlive( void ) const { return m_nIsAlive; }
CLUSTER_RESOURCE_CLASS ResClass( void ) const { return m_rciResClassInfo.rc; }
PCLUS_RESOURCE_CLASS_INFO PrciResClassInfo( void ) { return &m_rciResClassInfo; }
DWORD DwCharacteristics( void ) const { return m_dwCharacteristics; }
DWORD DwFlags( void ) const { return m_dwFlags; }
BOOL BQuorumCapable( void ) const { return (m_dwCharacteristics & CLUS_CHAR_QUORUM) != 0; }
BOOL BAvailable( void ) const { return m_bAvailable; }
const CNodeList & LpcinodePossibleOwners( void ) const
{
ASSERT( m_plpcinodePossibleOwners != NULL );
return *m_plpcinodePossibleOwners;
} //*** LpcinodePossibleOwners()
// Operations
public:
void ReadExtensions( void );
void CollectPossibleOwners( void );
void AddAllNodesAsPossibleOwners( void );
// void RemoveNodeFromPossibleOwners( IN OUT CNodeList * plpci, IN const CClusterNode * pNode );
void SetCommonProperties(
IN const CString & rstrName,
IN const CString & rstrDesc,
IN DWORD nLooksAlive,
IN DWORD nIsAlive,
IN BOOL bValidateOnly
);
void SetCommonProperties(
IN const CString & rstrName,
IN const CString & rstrDesc,
IN DWORD nLooksAlive,
IN DWORD nIsAlive
)
{
SetCommonProperties( rstrName, rstrDesc, nLooksAlive, nIsAlive, FALSE /*bValidateOnly*/ );
}
void ValidateCommonProperties(
IN const CString & rstrName,
IN const CString & rstrDesc,
IN DWORD nLooksAlive,
IN DWORD nIsAlive
)
{
SetCommonProperties( rstrName, rstrDesc, nLooksAlive, nIsAlive, TRUE /*bValidateOnly*/ );
}
// Overrides
public:
virtual LPCTSTR PszTitle( void ) const { return m_strDisplayName; }
virtual void Cleanup( void );
virtual void ReadItem( void );
virtual void Rename( IN LPCTSTR pszName );
virtual BOOL BGetColumnData( IN COLID colid, OUT CString & rstrText );
virtual BOOL BCanBeEdited( void ) const;
virtual BOOL BDisplayProperties( IN BOOL bReadOnly = FALSE );
virtual const CStringList * PlstrExtensions( void ) const;
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CResourceType)
public:
virtual void OnFinalRelease();
//}}AFX_VIRTUAL
virtual LRESULT OnClusterNotify( IN OUT CClusterNotify * pnotify );
protected:
virtual const CObjectProperty * Pprops( void ) const { return m_rgProps; }
virtual DWORD Cprops( void ) const { return sizeof(m_rgProps) / sizeof(m_rgProps[0]); }
virtual DWORD DwSetCommonProperties( IN const CClusPropList & rcpl, IN BOOL bValidateOnly = FALSE );
// Implementation
protected:
CStringList m_lstrCombinedExtensions;
BOOL m_bPossibleOwnersAreFake;
const CStringList & LstrCombinedExtensions( void ) const { return m_lstrCombinedExtensions; }
public:
virtual ~CResourceType( void );
BOOL BPossibleOwnersAreFake( void ) const { return m_bPossibleOwnersAreFake; }
protected:
// Generated message map functions
//{{AFX_MSG(CResourceType)
afx_msg void OnUpdateProperties(CCmdUI* pCmdUI);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}; //*** class CResourceType
/////////////////////////////////////////////////////////////////////////////
// CResourceTypeList
/////////////////////////////////////////////////////////////////////////////
class CResourceTypeList : public CClusterItemList
{
public:
CResourceType * PciResTypeFromName(
IN LPCTSTR pszName,
OUT POSITION * ppos = NULL
)
{
return (CResourceType *) PciFromName( pszName, ppos );
}
}; //*** class CResourceTypeList
/////////////////////////////////////////////////////////////////////////////
// Global Functions
/////////////////////////////////////////////////////////////////////////////
//void DeleteAllItemData( IN OUT CResourceTypeList & rlp );
#ifdef _DEBUG
class CTraceTag;
extern CTraceTag g_tagResType;
extern CTraceTag g_tagResTypeNotify;
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // _RESTYPE_H_