245 lines
6.2 KiB
C
245 lines
6.2 KiB
C
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Copyright (c) 1999 Microsoft Corporation
|
||
|
//
|
||
|
// Module Name:
|
||
|
// ClusKeys.h
|
||
|
//
|
||
|
// Description:
|
||
|
// Definition of the registry and crypto key collection classes for
|
||
|
// the MSCLUS automation classes.
|
||
|
//
|
||
|
// Implementation File:
|
||
|
// ClusKeys.cpp
|
||
|
//
|
||
|
// Author:
|
||
|
// Galen Barbee (galenb) 12-Feb-1999
|
||
|
//
|
||
|
// Revision History:
|
||
|
//
|
||
|
// Notes:
|
||
|
//
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#ifndef _CLUSKEYS_H_
|
||
|
#define _CLUSKEYS_H_
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// Forward Class Declarations
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
class CKeys;
|
||
|
class CResourceKeys;
|
||
|
class CResTypeKeys;
|
||
|
class CClusResourceRegistryKeys;
|
||
|
class CClusResourceCryptoKeys;
|
||
|
class CClusResTypeRegistryKeys;
|
||
|
class CClusResTypeCryptoKeys;
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//++
|
||
|
//
|
||
|
// class CKeys
|
||
|
//
|
||
|
// Description:
|
||
|
// Cluster Keys Collection Implementation Class.
|
||
|
//
|
||
|
// Inheritance:
|
||
|
//
|
||
|
//--
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
class CKeys
|
||
|
{
|
||
|
public:
|
||
|
CKeys( void );
|
||
|
~CKeys( void );
|
||
|
|
||
|
protected:
|
||
|
typedef std::vector< CComBSTR * > KeyList;
|
||
|
|
||
|
ISClusRefObject * m_pClusRefObject;
|
||
|
KeyList m_klKeys;
|
||
|
|
||
|
HRESULT HrCreate( ISClusRefObject * pClusRefObject );
|
||
|
|
||
|
void Clear( void );
|
||
|
|
||
|
HRESULT FindItem( IN LPWSTR lpszNodeName, OUT ULONG * pnIndex );
|
||
|
|
||
|
HRESULT HrGetIndex( IN VARIANT varIndex, OUT ULONG * pnIndex );
|
||
|
|
||
|
HRESULT HrGetItem( IN VARIANT varIndex, OUT BSTR * ppKey );
|
||
|
|
||
|
HRESULT HrRemoveAt( IN size_t pos );
|
||
|
|
||
|
HRESULT HrFindItem( IN BSTR bstrKey, OUT ULONG * pnIndex );
|
||
|
|
||
|
HRESULT HrGetCount( OUT long * plCount );
|
||
|
|
||
|
virtual HRESULT HrRemoveItem( IN VARIANT varIndex );
|
||
|
|
||
|
virtual HRESULT HrAddItem( IN BSTR bstrKey );
|
||
|
|
||
|
}; //*** Class CKeys
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//++
|
||
|
//
|
||
|
// class CResourceKeys
|
||
|
//
|
||
|
// Description:
|
||
|
// Cluster Resource Keys Collection Implementation Class.
|
||
|
//
|
||
|
// Inheritance:
|
||
|
// CKeys
|
||
|
//
|
||
|
//--
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
class CResourceKeys: public CKeys
|
||
|
{
|
||
|
protected:
|
||
|
HRESOURCE m_hResource;
|
||
|
|
||
|
HRESULT HrRefresh( DWORD dwControlCode );
|
||
|
|
||
|
virtual HRESULT HrRemoveItem( IN VARIANT varIndex, IN DWORD dwControlCode );
|
||
|
|
||
|
virtual HRESULT HrAddItem( IN BSTR bstrKey, IN DWORD dwControlCode );
|
||
|
|
||
|
}; //*** Class CResourceKeys
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//++
|
||
|
//
|
||
|
// class CResTypeKeys
|
||
|
//
|
||
|
// Description:
|
||
|
// Cluster Resource Keys Collection Implementation Class.
|
||
|
//
|
||
|
// Inheritance:
|
||
|
// CKeys
|
||
|
//
|
||
|
//--
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
class CResTypeKeys: public CKeys
|
||
|
{
|
||
|
protected:
|
||
|
CComBSTR m_bstrResourceTypeName;
|
||
|
|
||
|
HRESULT HrRefresh( DWORD dwControlCode );
|
||
|
|
||
|
}; //*** Class CResTypeKeys
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//++
|
||
|
//
|
||
|
// class CClusResourceRegistryKeys
|
||
|
//
|
||
|
// Description:
|
||
|
// Cluster Registry Keys Collection Automation Class.
|
||
|
//
|
||
|
// Inheritance:
|
||
|
// CResourceKeys
|
||
|
// IDispatchImpl< ISClusRegistryKeys, &IID_ISClusRegistryKeys, &LIBID_MSClusterLib, MAJORINTERFACEVER, MINORINTERFACEVER >,
|
||
|
// CSupportErrorInfo
|
||
|
// CComObjectRootEx< CComSingleThreadModel >
|
||
|
// CComCoClass< ClusRegistryKeys, &CLSID_ClusRegistryKeys >
|
||
|
//
|
||
|
//--
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
class ATL_NO_VTABLE CClusResourceRegistryKeys :
|
||
|
public CResourceKeys,
|
||
|
public IDispatchImpl< ISClusRegistryKeys, &IID_ISClusRegistryKeys, &LIBID_MSClusterLib, MAJORINTERFACEVER, MINORINTERFACEVER >,
|
||
|
public CSupportErrorInfo,
|
||
|
public CComObjectRootEx< CComSingleThreadModel >,
|
||
|
public CComCoClass< ClusRegistryKeys, &CLSID_ClusRegistryKeys >
|
||
|
{
|
||
|
typedef CComObjectRootEx< CComSingleThreadModel > BaseComClass;
|
||
|
|
||
|
public:
|
||
|
CClusResourceRegistryKeys( void );
|
||
|
|
||
|
BEGIN_COM_MAP(CClusResourceRegistryKeys)
|
||
|
COM_INTERFACE_ENTRY(IDispatch)
|
||
|
COM_INTERFACE_ENTRY(ISClusRegistryKeys)
|
||
|
COM_INTERFACE_ENTRY(ISupportErrorInfo)
|
||
|
END_COM_MAP()
|
||
|
|
||
|
DECLARE_NOT_AGGREGATABLE(CClusResourceRegistryKeys)
|
||
|
DECLARE_NO_REGISTRY()
|
||
|
|
||
|
HRESULT Create( HRESOURCE hResource );
|
||
|
|
||
|
STDMETHODIMP get_Count( OUT long * plCount );
|
||
|
|
||
|
STDMETHODIMP get_Item( IN VARIANT varIndex, OUT BSTR * ppbstrRegistryKey );
|
||
|
|
||
|
STDMETHODIMP get__NewEnum( OUT IUnknown ** ppunk );
|
||
|
|
||
|
STDMETHODIMP AddItem( IN BSTR bstrRegistryKey );
|
||
|
|
||
|
STDMETHODIMP RemoveItem( IN VARIANT varIndex );
|
||
|
|
||
|
STDMETHODIMP Refresh( void );
|
||
|
|
||
|
}; //*** Class CClusResourceRegistryKeys
|
||
|
|
||
|
#if CLUSAPI_VERSION >= 0x0500
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
//++
|
||
|
//
|
||
|
// class CClusResourceCryptoKeys
|
||
|
//
|
||
|
// Description:
|
||
|
// Cluster Crypto Keys Collection Automation Class.
|
||
|
//
|
||
|
// Inheritance:
|
||
|
// CResourceKeys
|
||
|
// IDispatchImpl< ISClusCryptoKeys, &IID_ISClusCryptoKeys, &LIBID_MSClusterLib, MAJORINTERFACEVER, MINORINTERFACEVER >,
|
||
|
// CSupportErrorInfo
|
||
|
// CComObjectRootEx< CComSingleThreadModel >
|
||
|
// CComCoClass< ClusCryptoKeys, &CLSID_ClusCryptoKeys >
|
||
|
//
|
||
|
//--
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
class ATL_NO_VTABLE CClusResourceCryptoKeys :
|
||
|
public CResourceKeys,
|
||
|
public IDispatchImpl< ISClusCryptoKeys, &IID_ISClusCryptoKeys, &LIBID_MSClusterLib, MAJORINTERFACEVER, MINORINTERFACEVER >,
|
||
|
public CSupportErrorInfo,
|
||
|
public CComObjectRootEx< CComSingleThreadModel >,
|
||
|
public CComCoClass< ClusCryptoKeys, &CLSID_ClusCryptoKeys >
|
||
|
{
|
||
|
typedef CComObjectRootEx< CComSingleThreadModel > BaseComClass;
|
||
|
|
||
|
public:
|
||
|
CClusResourceCryptoKeys( void );
|
||
|
|
||
|
BEGIN_COM_MAP(CClusResourceCryptoKeys)
|
||
|
COM_INTERFACE_ENTRY(IDispatch)
|
||
|
COM_INTERFACE_ENTRY(ISClusCryptoKeys)
|
||
|
COM_INTERFACE_ENTRY(ISupportErrorInfo)
|
||
|
END_COM_MAP()
|
||
|
|
||
|
DECLARE_NOT_AGGREGATABLE(CClusResourceCryptoKeys)
|
||
|
DECLARE_NO_REGISTRY()
|
||
|
|
||
|
HRESULT Create( HRESOURCE hResource );
|
||
|
|
||
|
STDMETHODIMP get_Count( OUT long * plCount );
|
||
|
|
||
|
STDMETHODIMP get_Item( IN VARIANT varIndex, OUT BSTR * ppbstrCryptoKey );
|
||
|
|
||
|
STDMETHODIMP get__NewEnum( OUT IUnknown ** ppunk );
|
||
|
|
||
|
STDMETHODIMP AddItem( IN BSTR bstrCryptoKey );
|
||
|
|
||
|
STDMETHODIMP RemoveItem( IN VARIANT varIndex );
|
||
|
|
||
|
STDMETHODIMP Refresh( void );
|
||
|
|
||
|
}; //*** Class CClusResourceCryptoKeys
|
||
|
|
||
|
#endif // CLUSAPI_VERSION >= 0x0500
|
||
|
|
||
|
#endif // _CLUSKEYS_H_
|