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.
254 lines
5.5 KiB
254 lines
5.5 KiB
/*++
|
|
|
|
Copyright (C) 1996-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ProvFact.h
|
|
|
|
Abstract:
|
|
|
|
|
|
History:
|
|
|
|
--*/
|
|
|
|
#ifndef _Server_SimpleFactory_H
|
|
#define _Server_SimpleFactory_H
|
|
|
|
#include "ProvRegInfo.h"
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CServerObject_RawFactory : public _IWmiProviderFactory ,
|
|
public _IWmiProviderFactoryInitialize ,
|
|
public IWbemShutdown
|
|
{
|
|
private:
|
|
|
|
WmiAllocator &m_Allocator ;
|
|
|
|
long m_ReferenceCount ;
|
|
|
|
LONG m_Flags ;
|
|
IWbemContext *m_Context ;
|
|
LPWSTR m_Namespace ;
|
|
IWbemPath *m_NamespacePath ;
|
|
IWbemServices *m_Repository ;
|
|
IWbemServices *m_Service ;
|
|
|
|
public: /* Internal */
|
|
|
|
CServerObject_RawFactory ( WmiAllocator & a_Allocator ) ;
|
|
~CServerObject_RawFactory () ;
|
|
|
|
IWbemContext *Direct_GetContext () { return m_Context ; }
|
|
LPCWSTR Direct_GetNamespace () { return m_Namespace ; }
|
|
IWbemPath *Direct_GetNamespacePath () { return m_NamespacePath ; }
|
|
IWbemServices *Direct_GetRepository () { return m_Repository ; }
|
|
IWbemServices *Direct_GetService () { return m_Service ; }
|
|
|
|
HRESULT CreateSyncProvider (
|
|
|
|
IWbemServices *a_Stub ,
|
|
IUnknown *a_ServerSideProvider ,
|
|
wchar_t *a_NamespacePath ,
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
GUID *a_TransactionIdentifier ,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
LPCWSTR a_Scope ,
|
|
REFIID a_RIID ,
|
|
void **a_Interface ,
|
|
CServerObject_ProviderRegistrationV1 &a_Registration
|
|
) ;
|
|
|
|
HRESULT InitializeServerProvider (
|
|
|
|
IWbemServices *a_Stub ,
|
|
IUnknown *a_ProviderInterface ,
|
|
wchar_t *a_NamespacePath ,
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
GUID *a_TransactionIdentifier ,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
LPCWSTR a_Scope ,
|
|
REFIID a_RIID ,
|
|
void **a_Interface ,
|
|
CServerObject_ProviderRegistrationV1 &a_Registration
|
|
) ;
|
|
|
|
HRESULT InitializeNonApartmentProvider (
|
|
|
|
IWbemServices *a_Stub ,
|
|
IUnknown *a_ServerSideProviderInterface ,
|
|
wchar_t *a_NamespacePath ,
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
GUID *a_TransactionIdentifier ,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
LPCWSTR a_Scope ,
|
|
REFIID a_RIID ,
|
|
void **a_Interface ,
|
|
CServerObject_ProviderRegistrationV1 &a_Registration
|
|
) ;
|
|
|
|
HRESULT GetApartmentInstanceProvider (
|
|
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
GUID *a_TransactionIdentifier ,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
LPCWSTR a_Scope ,
|
|
REFIID a_RIID ,
|
|
void **a_Interface ,
|
|
CServerObject_ProviderRegistrationV1 &a_Registration
|
|
) ;
|
|
|
|
HRESULT GetNonApartmentProvider (
|
|
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
GUID *a_TransactionIdentifier ,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
LPCWSTR a_Scope ,
|
|
REFIID a_RIID ,
|
|
void **a_Interface ,
|
|
CServerObject_ProviderRegistrationV1 &a_Registration
|
|
) ;
|
|
|
|
HRESULT CheckInterfaceConformance (
|
|
|
|
CServerObject_ProviderRegistrationV1 &a_Registration ,
|
|
IUnknown *a_Unknown
|
|
) ;
|
|
|
|
public: /* Internal */
|
|
|
|
static HRESULT CreateInstance (
|
|
|
|
CServerObject_ProviderRegistrationV1 &a_Registration ,
|
|
const CLSID &a_ReferenceClsid ,
|
|
LPUNKNOWN a_OuterUnknown ,
|
|
const DWORD &a_ClassContext ,
|
|
const UUID &a_ReferenceInterfaceId ,
|
|
void **a_ObjectInterface
|
|
) ;
|
|
|
|
static HRESULT CreateServerSide (
|
|
|
|
CServerObject_ProviderRegistrationV1 &a_Registration ,
|
|
GUID *a_TransactionIdentifier ,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
wchar_t *a_NamespacePath ,
|
|
IUnknown **a_ProviderInterface
|
|
) ;
|
|
|
|
public: /* External */
|
|
|
|
|
|
//IUnknown members
|
|
|
|
STDMETHODIMP QueryInterface ( REFIID , LPVOID FAR * ) ;
|
|
STDMETHODIMP_( ULONG ) AddRef () ;
|
|
STDMETHODIMP_( ULONG ) Release () ;
|
|
|
|
// CServerObject_RawFactory members
|
|
|
|
HRESULT STDMETHODCALLTYPE GetHostedProvider (
|
|
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
GUID *a_TransactionIdentifier,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
LPCWSTR a_Scope ,
|
|
LPCWSTR a_Name ,
|
|
ULONG a_Host ,
|
|
LPCWSTR a_HostGroup ,
|
|
REFIID a_RIID ,
|
|
void **a_Interface
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetClassProvider (
|
|
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
LPCWSTR a_Scope ,
|
|
IWbemClassObject *a_SuperClass ,
|
|
REFIID a_RIID ,
|
|
void **a_Interface
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE GetDynamicPropertyResolver (
|
|
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
REFIID a_RIID ,
|
|
void **a_Interface
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetProvider (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
GUID *a_TransactionIdentifier,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
LPCWSTR a_Scope ,
|
|
LPCWSTR a_Name ,
|
|
REFIID a_RIID ,
|
|
void **a_Interface
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetDecoupledProvider (
|
|
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
LPCWSTR a_Scope,
|
|
LPCWSTR a_Name ,
|
|
REFIID a_RIID ,
|
|
void **a_Interface
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Initialize (
|
|
|
|
_IWmiProvSS *a_SubSys ,
|
|
_IWmiProviderFactory *a_Factory ,
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Namespace ,
|
|
IWbemServices *a_Repository ,
|
|
IWbemServices *a_Service
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Shutdown (
|
|
|
|
LONG a_Flags ,
|
|
ULONG a_MaxMilliSeconds ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
};
|
|
|
|
#endif // _Server_SimpleFactory_H
|