Source code of Windows XP (NT5)
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.
|
|
//////////////////////////////////////////////////////////////////////////////
//
// 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
|