|
|
//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1999-2000 Microsoft Corporation
//
// Module Name:
// InstanceProv.h
//
// Implementation File:
// InstanceProv.cpp
//
// Description:
// Definition of the CInstanceProv class.
//
// Author:
// Henry Wang (HenryWa) 24-AUG-1999
//
// Notes:
//
//////////////////////////////////////////////////////////////////////////////
#pragma once
//////////////////////////////////////////////////////////////////////////////
// Include Files
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// Forward Declarations
//////////////////////////////////////////////////////////////////////////////
class CInstanceProv; class CClassProv;
//////////////////////////////////////////////////////////////////////////////
// External Declarations
//////////////////////////////////////////////////////////////////////////////
class CWbemClassObject; class CProvException;
//////////////////////////////////////////////////////////////////////////////
//++
//
// class CInstanceProv
//
// Description:
// Implement the Instance and method provider entry point class. WMI
// holds a pointer to this object, and invoking its member functions
// based client request
//
//--
//////////////////////////////////////////////////////////////////////////////
class CInstanceProv : public CImpersonatedProvider { protected: SCODE SetExtendedStatus( CProvException & rpeIn, CWbemClassObject & rwcoInstOut ); public: CInstanceProv( BSTR bstrObjectPathIn = NULL, BSTR bstrUserIn = NULL, BSTR bstrPasswordIn = NULL, IWbemContext * pCtxIn = NULL ); virtual ~CInstanceProv( void );
HRESULT STDMETHODCALLTYPE DoGetObjectAsync( BSTR bstrObjectPathIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemObjectSink * pHandlerIn );
HRESULT STDMETHODCALLTYPE DoPutInstanceAsync( IWbemClassObject * pInstIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemObjectSink * pHandlerIn ) ;
HRESULT STDMETHODCALLTYPE DoDeleteInstanceAsync( BSTR bstrObjectPathIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemObjectSink * pHandlerIn ) ;
HRESULT STDMETHODCALLTYPE DoCreateInstanceEnumAsync( BSTR bstrRefStrIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemObjectSink * pHandlerIn );
HRESULT STDMETHODCALLTYPE DoExecQueryAsync( BSTR bstrQueryLanguageIn, BSTR bstrQueryIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemObjectSink * pHandlerIn ) ;
HRESULT STDMETHODCALLTYPE DoExecMethodAsync( BSTR bstrObjectPathIn, BSTR bstrMethodNameIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemClassObject * pInParamsIn, IWbemObjectSink * pHandlerIn );
HRESULT STDMETHODCALLTYPE CreateClassEnumAsync( const BSTR bstrSuperclassIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemObjectSink * pResponseHandlerIn ) ;
STDMETHODIMP Initialize( LPWSTR pszUserIn, LONG lFlagsIn, LPWSTR pszNamespaceIn, LPWSTR pszLocaleIn, IWbemServices * pNamespaceIn, IWbemContext * pCtxIn, IWbemProviderInitSink * pInitSinkIn );
static HRESULT S_HrCreateThis( IUnknown * pUnknownOuterIn, VOID ** ppvOut );
}; //*** CInstanceProv
//////////////////////////////////////////////////////////////////////////////
//++
//
// class CClassProv
//
// Description:
// Implement the Class provider entry point class. WMI
// holds a pointer to this object, and invoking its member functions
// based client request
//
//--
//////////////////////////////////////////////////////////////////////////////
class CClassProv : public CImpersonatedProvider { public: CClassProv( void ); virtual ~CClassProv( void );
HRESULT STDMETHODCALLTYPE DoGetObjectAsync( BSTR bstrObjectPathIN, long lFlagsIn, IWbemContext * pCtxIn, IWbemObjectSink * pHandlerIn ) { return WBEM_E_NOT_SUPPORTED; }
HRESULT STDMETHODCALLTYPE DoPutInstanceAsync( IWbemClassObject * pInstIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemObjectSink * pHandlerIn ) { return WBEM_E_NOT_SUPPORTED; }
HRESULT STDMETHODCALLTYPE DoDeleteInstanceAsync( BSTR bstrObjectPathIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemObjectSink * pHandlerIn ) { return WBEM_E_NOT_SUPPORTED; }
HRESULT STDMETHODCALLTYPE DoCreateInstanceEnumAsync( BSTR bstrRefStrIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemObjectSink * pHandlerIn ) { return WBEM_E_NOT_SUPPORTED; }
HRESULT STDMETHODCALLTYPE DoExecQueryAsync( BSTR bstrQueryLanguageIn, BSTR bstrQueryIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemObjectSink * pHandlerIn ) { return WBEM_E_NOT_SUPPORTED; }
HRESULT STDMETHODCALLTYPE DoExecMethodAsync( BSTR bstrObjectPathIn, BSTR bstrMethodNameIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemClassObject * pInParamsIn, IWbemObjectSink * pHandlerIn ) { return WBEM_E_NOT_SUPPORTED; }
HRESULT STDMETHODCALLTYPE CreateClassEnumAsync( const BSTR bstrSuperclassIn, long lFlagsIn, IWbemContext * pCtxIn, IWbemObjectSink * pResponseHandlerIn ) { return WBEM_E_NOT_SUPPORTED; }
STDMETHODIMP Initialize( LPWSTR pszUserIn, LONG lFlagsIn, LPWSTR pszNamespaceIn, LPWSTR pszLocaleIn, IWbemServices * pNamespaceIn, IWbemContext * pCtxIn, IWbemProviderInitSink * pInitSinkIn );
static HRESULT S_HrCreateThis( IUnknown * pUnknownOuterIn, VOID ** ppvOut );
protected: void CreateMofClassFromResource( HRESOURCE hResourceIn, LPCWSTR pwszTypeNameIn, CWbemClassObject & pClassInout );
void CreateMofClassFromResType( HCLUSTER hCluster, LPCWSTR pwszTypeNameIn, CWbemClassObject & pClassInout );
}; //*** class CClassProv
|