/*++ 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