windows-nt/Source/XPSP1/NT/base/cluster/mgmt/cluscfg/middletier/objectmanager.h
2020-09-26 16:20:57 +08:00

84 lines
2.7 KiB
C++

//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1999-2001 Microsoft Corporation
//
// Module Name:
// ObjectManager.h
//
// Description:
// Data Manager implementation.
//
// Maintained By:
// Galen Barbee (GalenB) 22-NOV-1999
//
//////////////////////////////////////////////////////////////////////////////
#pragma once
class CStandardInfo;
// CObjectManager
class
CObjectManager:
public IObjectManager
{
private:
// IUnknown
LONG m_cRef;
// data
ULONG m_cAllocSize; // Size of the cookie array.
ULONG m_cCurrentUsed; // Current count used in the cookie array.
CStandardInfo ** m_pCookies; // Cookie array (note: zero-th element is not used)
private: // Methods
CObjectManager( void );
~CObjectManager( void );
STDMETHOD(Init)( void );
HRESULT
HrSearchForExistingCookie( REFCLSID rclsidTypeIn,
OBJECTCOOKIE cookieParentIn,
LPCWSTR pcszNameIn,
OBJECTCOOKIE * pcookieOut
);
HRESULT
HrDeleteCookie( OBJECTCOOKIE cookieIn );
HRESULT
HrDeleteInstanceAndChildren( OBJECTCOOKIE cookieIn );
HRESULT
HrCreateNewCookie( REFCLSID rclsidTypeIn,
OBJECTCOOKIE cookieParentIn,
LPCWSTR pcszNameIn,
OBJECTCOOKIE * pcookieOut
);
public: // Methods
static HRESULT
S_HrCreateInstance( IUnknown ** ppunkOut );
// IUnknown
STDMETHOD( QueryInterface )( REFIID riid, LPVOID *ppv );
STDMETHOD_( ULONG, AddRef )( void );
STDMETHOD_( ULONG, Release )( void );
// IObjectManager
STDMETHOD( FindObject )( REFCLSID rclsidTypeIn,
OBJECTCOOKIE cookieParent,
LPCWSTR pcszNameIn,
REFCLSID rclsidFormatIn,
OBJECTCOOKIE * pcookieOut,
LPUNKNOWN * ppunkOut
);
STDMETHOD( GetObject )( REFCLSID rclsidFormatIn,
OBJECTCOOKIE cookieIn,
LPUNKNOWN * ppunkOut
);
STDMETHOD( RemoveObject )( OBJECTCOOKIE cookieIn );
STDMETHOD( SetObjectStatus )( OBJECTCOOKIE cookieIn,
HRESULT hrIn
);
}; // class CObjectManager