|
|
//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2001 Microsoft Corporation
//
// Module Name:
// ResourceEntry.h
//
// Description:
// ResourceEntry implementation.
//
// Maintained By:
// Galen Barbee (GalenB) 14-JUN-2000
// Geoffrey Pease (GPease) 15-JUN-2000
//
//////////////////////////////////////////////////////////////////////////////
#pragma once
class CResourceEntry { private: // data
// Pointer to the callback interface.
IClusCfgCallback * m_pcccCallback;
// The locale id
LCID m_lcid;
// IResourceEntry
typedef struct _SDependencyEntry { CLSID clsidType; EDependencyFlags dfFlags; BOOL fDependencyMet;
} DependencyEntry;
typedef struct _SDependentEntry { ULONG idxResource; EDependencyFlags dfFlags;
} DependentEntry;
BOOL m_fConfigured:1; // Configured flag
BSTR m_bstrName; // Name of the resource
IClusCfgManagedResourceCfg * m_pccmrcResource; // Config interface to resource instance
CLSID m_clsidType; // Resource type
CLSID m_clsidClassType; // Resource class type
EDependencyFlags m_dfFlags; // Dependency flags set on resource
ULONG m_cAllocedDependencies; // Alloced dependencies
ULONG m_cDependencies; // Count of dependencies
DependencyEntry * m_rgDependencies; // Dependencies list
ULONG m_cAllocedDependents; // Alloced dependents
ULONG m_cDependents; // Count of dependents
DependentEntry * m_rgDependents; // Dependents list
CGroupHandle * m_groupHandle; // Group handle reference object
HRESOURCE m_hResource; // Resource handle
CClusPropList m_cplPrivProps; // Private Properties list
CClusPropList m_cplCommonProps; // Common Properties list
STDMETHOD( HrInit )( IClusCfgCallback * pcccCallback, LCID lcidIn );
public: // methods
CResourceEntry( void ); ~CResourceEntry( void );
// IUnknown
//STDMETHOD( QueryInterface )( REFIID riid, LPVOID *ppv );
//STDMETHOD_( ULONG, AddRef )( void );
//STDMETHOD_( ULONG, Release )( void );
static HRESULT S_HrCreateInstance( CResourceEntry ** ppcreOut, IClusCfgCallback * pcccCallback, LCID lcidIn);
STDMETHOD( SendStatusReport )( LPCWSTR pcszNodeNameIn , CLSID clsidTaskMajorIn , CLSID clsidTaskMinorIn , ULONG ulMinIn , ULONG ulMaxIn , ULONG ulCurrentIn , HRESULT hrStatusIn , LPCWSTR pcszDescriptionIn , FILETIME * pftTimeIn , LPCWSTR pcszReferenceIn );
// IResourceEntry
STDMETHOD( SetName )( BSTR bstrIn ); STDMETHOD( GetName )( BSTR * pbstrOut );
STDMETHOD( SetAssociatedResource )( IClusCfgManagedResourceCfg * pccmrcIn ); STDMETHOD( GetAssociatedResource )( IClusCfgManagedResourceCfg ** ppccmrcOut );
STDMETHOD( SetType )( const CLSID * pclsidIn ); STDMETHOD( GetType )( CLSID * pclsidOut ); STDMETHOD( GetTypePtr )( const CLSID ** ppclsidOut );
STDMETHOD( SetClassType )( const CLSID * pclsidIn ); STDMETHOD( GetClassType )( CLSID * pclsidOut ); STDMETHOD( GetClassTypePtr )( const CLSID ** ppclsidOut );
STDMETHOD( SetFlags )( EDependencyFlags dfIn ); STDMETHOD( GetFlags )( EDependencyFlags * pdfOut );
STDMETHOD( AddTypeDependency )( const CLSID * pclsidIn, EDependencyFlags dfIn ); STDMETHOD( GetCountOfTypeDependencies )( ULONG * pcOut ); STDMETHOD( GetTypeDependency )( ULONG idxIn, CLSID * pclsidOut, EDependencyFlags * dfOut ); STDMETHOD( GetTypeDependencyPtr )( ULONG idxIn, const CLSID ** ppclsidOut, EDependencyFlags * dfOut );
STDMETHOD( AddDependent )( ULONG idxIn, EDependencyFlags dfFlagsIn ); STDMETHOD( GetCountOfDependents )( ULONG * pcOut ); STDMETHOD( GetDependent )( ULONG idxIn, ULONG * pidxOut, EDependencyFlags * pdfOut ); STDMETHOD( ClearDependents )( void );
STDMETHOD( SetGroupHandle )( CGroupHandle * pghIn ); STDMETHOD( GetGroupHandle )( CGroupHandle ** ppghOut );
STDMETHOD( SetHResource )( HRESOURCE hResourceIn ); STDMETHOD( GetHResource )( HRESOURCE * phResourceOut );
STDMETHOD( SetConfigured )( BOOL fConfiguredIn ); STDMETHOD( IsConfigured )( void );
STDMETHOD( StoreClusterResourceControl )( DWORD dwClusCtlIn, CClusPropList & rcplIn ); STDMETHOD( Configure )( void );
}; // class CResourceEntry
|