/*++ Copyright (C) 1996-2001 Microsoft Corporation Module Name: ProvResv.H Abstract: History: --*/ #ifndef _Server_Interceptor_IWbemServices_Stub_H #define _Server_Interceptor_IWbemServices_Stub_H #define ProxyIndex_Stub_IWbemServices 0 #define ProxyIndex_Stub_IWbemServicesEx 1 #define ProxyIndex_Stub_IWbemRefreshingServices 2 /****************************************************************************** * * Name: * * * Description: * * *****************************************************************************/ class CInterceptor_IWbemServices_Stub : public IWbemServices, public IWbemRefreshingServices , public IWbemShutdown { private: LONG m_ReferenceCount ; //Object reference count LONG m_GateClosed ; LONG m_InProgress ; CriticalSection m_CriticalSection ; WmiAllocator &m_Allocator ; IWbemServices *m_CoreService ; IWbemRefreshingServices *m_RefreshingService ; ProxyContainer m_ProxyContainer ; public: CInterceptor_IWbemServices_Stub ( WmiAllocator &a_Allocator , IWbemServices *a_Service ) ; ~CInterceptor_IWbemServices_Stub () ; public: //Non-delegating object IUnknown STDMETHODIMP QueryInterface ( REFIID , LPVOID FAR * ) ; STDMETHODIMP_( ULONG ) AddRef () ; STDMETHODIMP_( ULONG ) Release () ; /* IWbemServices methods */ HRESULT STDMETHODCALLTYPE OpenNamespace ( const BSTR a_Namespace , long a_Flags , IWbemContext *a_Context , IWbemServices **a_Service , IWbemCallResult **a_CallResult ) ; HRESULT STDMETHODCALLTYPE CancelAsyncCall ( IWbemObjectSink *a_Sink ) ; HRESULT STDMETHODCALLTYPE QueryObjectSink ( long a_Flags , IWbemObjectSink **a_Sink ) ; HRESULT STDMETHODCALLTYPE GetObject ( const BSTR a_ObjectPath , long a_Flags , IWbemContext *a_Context , IWbemClassObject **ppObject , IWbemCallResult **a_CallResult ) ; HRESULT STDMETHODCALLTYPE GetObjectAsync ( const BSTR a_ObjectPath , long a_Flags , IWbemContext *a_Context , IWbemObjectSink *a_Sink ) ; HRESULT STDMETHODCALLTYPE PutClass ( IWbemClassObject *a_Object , long a_Flags , IWbemContext *a_Context , IWbemCallResult **a_CallResult ) ; HRESULT STDMETHODCALLTYPE PutClassAsync ( IWbemClassObject *a_Object , long a_Flags , IWbemContext *a_Context , IWbemObjectSink *a_Sink ) ; HRESULT STDMETHODCALLTYPE DeleteClass ( const BSTR a_Class , long a_Flags , IWbemContext *a_Context , IWbemCallResult **a_CallResult ) ; HRESULT STDMETHODCALLTYPE DeleteClassAsync ( const BSTR a_Class , long a_Flags , IWbemContext *a_Context , IWbemObjectSink *a_Sink ) ; HRESULT STDMETHODCALLTYPE CreateClassEnum ( const BSTR a_Superclass , long a_Flags , IWbemContext *a_Context , IEnumWbemClassObject **a_Enum ) ; HRESULT STDMETHODCALLTYPE CreateClassEnumAsync ( const BSTR a_Superclass , long a_Flags , IWbemContext *a_Context , IWbemObjectSink *a_Sink ) ; HRESULT STDMETHODCALLTYPE PutInstance ( IWbemClassObject *a_Instance , long a_Flags , IWbemContext *a_Context , IWbemCallResult **a_CallResult ) ; HRESULT STDMETHODCALLTYPE PutInstanceAsync ( IWbemClassObject *a_Instance , long a_Flags , IWbemContext *a_Context , IWbemObjectSink *a_Sink ) ; HRESULT STDMETHODCALLTYPE DeleteInstance ( const BSTR a_ObjectPath , long a_Flags , IWbemContext *a_Context , IWbemCallResult **a_CallResult ) ; HRESULT STDMETHODCALLTYPE DeleteInstanceAsync ( const BSTR a_ObjectPath, long a_Flags, IWbemContext *a_Context , IWbemObjectSink *a_Sink ) ; HRESULT STDMETHODCALLTYPE CreateInstanceEnum ( const BSTR a_Class , long a_Flags , IWbemContext *a_Context , IEnumWbemClassObject **a_Enum ) ; HRESULT STDMETHODCALLTYPE CreateInstanceEnumAsync ( const BSTR a_Class , long a_Flags , IWbemContext *a_Context , IWbemObjectSink *a_Sink ) ; HRESULT STDMETHODCALLTYPE ExecQuery ( const BSTR a_QueryLanguage, const BSTR a_Query, long a_Flags , IWbemContext *a_Context , IEnumWbemClassObject **a_Enum ) ; HRESULT STDMETHODCALLTYPE ExecQueryAsync ( const BSTR a_QueryLanguage , const BSTR a_Query , long a_Flags , IWbemContext *a_Context , IWbemObjectSink *a_Sink ) ; HRESULT STDMETHODCALLTYPE ExecNotificationQuery ( const BSTR a_QueryLanguage , const BSTR a_Query , long a_Flags , IWbemContext *a_Context , IEnumWbemClassObject **a_Enum ) ; HRESULT STDMETHODCALLTYPE ExecNotificationQueryAsync ( const BSTR a_QueryLanguage , const BSTR a_Query , long a_Flags , IWbemContext *a_Context , IWbemObjectSink *a_Sink ) ; HRESULT STDMETHODCALLTYPE ExecMethod ( const BSTR a_ObjectPath , const BSTR a_MethodName , long a_Flags , IWbemContext *a_Context , IWbemClassObject *a_InParams , IWbemClassObject **a_OutParams , IWbemCallResult **a_CallResult ) ; HRESULT STDMETHODCALLTYPE ExecMethodAsync ( const BSTR a_ObjectPath , const BSTR a_MethodName , long a_Flags , IWbemContext *a_Context , IWbemClassObject *a_InParams , IWbemObjectSink *a_Sink ) ; HRESULT STDMETHODCALLTYPE AddObjectToRefresher ( WBEM_REFRESHER_ID *a_RefresherId , LPCWSTR a_Path, long a_Flags , IWbemContext *a_Context, DWORD a_ClientRefresherVersion , WBEM_REFRESH_INFO *a_Information , DWORD *a_ServerRefresherVersion ) ; HRESULT STDMETHODCALLTYPE AddObjectToRefresherByTemplate ( WBEM_REFRESHER_ID *a_RefresherId , IWbemClassObject *a_Template , long a_Flags , IWbemContext *a_Context , DWORD a_ClientRefresherVersion , WBEM_REFRESH_INFO *a_Information , DWORD *a_ServerRefresherVersion ) ; HRESULT STDMETHODCALLTYPE AddEnumToRefresher( WBEM_REFRESHER_ID *a_RefresherId , LPCWSTR a_Class , long a_Flags , IWbemContext *a_Context, DWORD a_ClientRefresherVersion , WBEM_REFRESH_INFO *a_Information , DWORD *a_ServerRefresherVersion ) ; HRESULT STDMETHODCALLTYPE RemoveObjectFromRefresher ( WBEM_REFRESHER_ID *a_RefresherId , long a_Id , long a_Flags , DWORD a_ClientRefresherVersion , DWORD *a_ServerRefresherVersion ) ; HRESULT STDMETHODCALLTYPE GetRemoteRefresher ( WBEM_REFRESHER_ID *a_RefresherId , long a_Flags , DWORD a_ClientRefresherVersion , IWbemRemoteRefresher **a_RemoteRefresher , GUID *a_Guid , DWORD *a_ServerRefresherVersion ) ; HRESULT STDMETHODCALLTYPE ReconnectRemoteRefresher ( WBEM_REFRESHER_ID *a_RefresherId, long a_Flags, long a_NumberOfObjects, DWORD a_ClientRefresherVersion , WBEM_RECONNECT_INFO *a_ReconnectInformation , WBEM_RECONNECT_RESULTS *a_ReconnectResults , DWORD *a_ServerRefresherVersion ) ; HRESULT STDMETHODCALLTYPE Initialize ( LPWSTR a_User , LONG a_Flags , LPWSTR a_Namespace , LPWSTR a_Locale , IWbemServices *a_Core , IWbemContext *a_Context , IWbemProviderInitSink *a_Sink ) ; HRESULT STDMETHODCALLTYPE Shutdown ( LONG a_Flags , ULONG a_MaxMilliSeconds , IWbemContext *a_Context ) ; } ; #endif // _Server_Interceptor_IWbemServices_Stub_H