58 lines
1.9 KiB
C
58 lines
1.9 KiB
C
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Copyright (c) 1999-2000 Microsoft Corporation
|
||
|
//
|
||
|
// Module Name:
|
||
|
// ServiceMgr.h
|
||
|
//
|
||
|
// Description:
|
||
|
// Service Manager implementation.
|
||
|
//
|
||
|
// Maintained By:
|
||
|
// Geoffrey Pease (GPease) 22-NOV-1999
|
||
|
//
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
// CServiceManager
|
||
|
class
|
||
|
CServiceManager:
|
||
|
public IServiceProvider
|
||
|
{
|
||
|
private:
|
||
|
// IUnknown
|
||
|
LONG m_cRef; // Reference counter
|
||
|
|
||
|
// IServiceProvider
|
||
|
DWORD m_dwObjectManagerCookie; // Cookie for Object Manager
|
||
|
DWORD m_dwTaskManagerCookie; // Cookie for Task Manager
|
||
|
DWORD m_dwNotificationManagerCookie; // Cookie for Notification Manager
|
||
|
DWORD m_dwConnectionManagerCookie; // Cookie for Connection Manager
|
||
|
DWORD m_dwLogManagerCookie; // Cookie for Log Manager
|
||
|
IGlobalInterfaceTable * m_pgit; // Global Interface Table
|
||
|
|
||
|
static CRITICAL_SECTION * sm_pcs; // Access control critical section
|
||
|
static BOOL sm_fShutDown; // TRUE if process shutting down.
|
||
|
|
||
|
private: // Methods
|
||
|
CServiceManager( );
|
||
|
~CServiceManager();
|
||
|
STDMETHOD(Init)( );
|
||
|
|
||
|
public: // Methods
|
||
|
static HRESULT
|
||
|
S_HrCreateInstance( IUnknown ** ppunkOut );
|
||
|
static HRESULT
|
||
|
S_HrGetManagerPointer( IServiceProvider ** pspOut );
|
||
|
|
||
|
// IUnknown
|
||
|
STDMETHOD(QueryInterface)( REFIID riid, LPVOID *ppv );
|
||
|
STDMETHOD_(ULONG, AddRef)(void);
|
||
|
STDMETHOD_(ULONG, Release)(void);
|
||
|
|
||
|
// IServiceProvider
|
||
|
STDMETHOD(QueryService)( REFCLSID rclsidIn, REFIID riidIn, void ** ppvOut );
|
||
|
|
||
|
}; // class CServiceManager
|