|
|
//////////////////////////////////////////////////////////////////////////////
//
// 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
// MSP Prabu (mprabu) 06-Jan-2001
// Jim Benton (jbenton) 15-Oct-2001
//
// Notes:
//
//////////////////////////////////////////////////////////////////////////////
#pragma once
//////////////////////////////////////////////////////////////////////////////
// Forward Declarations
//////////////////////////////////////////////////////////////////////////////
class CInstanceProv; 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: HRESULT SetExtendedStatus( CProvException & rpe , IWbemObjectSink ** ppHandler ); public: CInstanceProv( IN BSTR bstrObjectPath = NULL, IN BSTR bstrUser = NULL, IN BSTR bstrPassword = NULL, IN IWbemContext * pCtx = NULL ) { InterlockedIncrement( &g_cObj ); m_fInitialized = FALSE; }
virtual ~CInstanceProv( void ) { InterlockedDecrement( &g_cObj );
//#ifdef _DEBUG
#ifdef _DEBUG_NEVER
_CrtDumpMemoryLeaks(); #endif
}
HRESULT STDMETHODCALLTYPE DoGetObjectAsync( IN BSTR bstrObjectPath, IN long lFlags, IN IWbemContext * pCtx, IN IWbemObjectSink * pHandler );
HRESULT STDMETHODCALLTYPE DoPutInstanceAsync( IN IWbemClassObject * pInst, IN long lFlags, IN IWbemContext * pCtx, IN IWbemObjectSink * pHandler ) ;
HRESULT STDMETHODCALLTYPE DoDeleteInstanceAsync( IN BSTR bstrObjectPath, IN long lFlags, IN IWbemContext * pCtx, IN IWbemObjectSink * pHandler ) ;
HRESULT STDMETHODCALLTYPE DoCreateInstanceEnumAsync( IN BSTR bstrRefStr, IN long lFlags, IN IWbemContext * pCtx, IN IWbemObjectSink * pHandler );
HRESULT STDMETHODCALLTYPE DoExecQueryAsync( IN BSTR bstrQueryLanguage, IN BSTR bstrQuery, IN long lFlags, IN IWbemContext * pCtx, IN IWbemObjectSink * pHandler ) { return WBEM_E_NOT_SUPPORTED; }
HRESULT STDMETHODCALLTYPE DoExecMethodAsync( IN BSTR bstrObjectPath, IN BSTR bstrMethodName, IN long lFlags, IN IWbemContext * pCtx, IN IWbemClassObject * pInParams, IN IWbemObjectSink * pHandler );
STDMETHODIMP Initialize( IN LPWSTR pszUser, IN LONG lFlags, IN LPWSTR pszNamespace, IN LPWSTR pszLocale, IN IWbemServices * pNamespace, IN IWbemContext * pCtx, IN IWbemProviderInitSink * pInitSink );
static HRESULT S_HrCreateThis( IN IUnknown * pUnknownOuter, OUT VOID ** ppv );
private: BOOL m_fInitialized; }; //*** CInstanceProv
|