Leaked source code of windows server 2003
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.
 
 
 
 
 
 

111 lines
2.9 KiB

//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1999-2000 Microsoft Corporation
//
// Module Name:
// ProvBase.h
//
// Implementation File:
// ProvBase.cpp
//
// Description:
// Definition of the CProvBase class.
//
// Author:
// Henry Wang (HenryWa) 24-AUG-1999
// MSP Prabu (mprabu) 06-Jan-2001
//
// Notes:
//
//////////////////////////////////////////////////////////////////////////////
#pragma once
//////////////////////////////////////////////////////////////////////////////
// Include Files
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// Forward Declarations
//////////////////////////////////////////////////////////////////////////////
class CProvBase;
//////////////////////////////////////////////////////////////////////////////
// External Declarations
//////////////////////////////////////////////////////////////////////////////
/* main interface class, this class defines all operations can be performed
on this provider
*/
//class CSqlEval;
//////////////////////////////////////////////////////////////////////////////
//++
//
// class CProvBase
//
// Description:
// interface class defines all operations can be performed
//
//--
//////////////////////////////////////////////////////////////////////////////
class CProvBase
{
public:
virtual HRESULT EnumInstance(
long lFlagsIn,
IWbemContext * pCtxIn,
IWbemObjectSink * pHandlerIn
) = 0;
virtual HRESULT GetObject(
CObjPath & rObjPathIn,
long lFlagsIn,
IWbemContext * pCtxIn,
IWbemObjectSink * pHandlerIn
) = 0;
virtual HRESULT ExecuteMethod(
BSTR bstrObjPathIn,
WCHAR * pwszMethodNameIn,
long lFlagIn,
IWbemClassObject * pParamsIn,
IWbemObjectSink * pHandlerIn
) = 0;
virtual HRESULT PutInstance(
CWbemClassObject & rInstToPutIn,
long lFlagIn,
IWbemContext * pCtxIn,
IWbemObjectSink * pHandlerIn
) = 0;
virtual HRESULT DeleteInstance(
CObjPath & rObjPathIn,
long lFlagIn,
IWbemContext * pCtxIn,
IWbemObjectSink * pHandlerIn
) = 0;
CProvBase(
LPCWSTR pwszNameIn,
CWbemServices * pNamespaceIn
);
virtual ~CProvBase()
{
if ( m_pClass != NULL )
{
m_pClass->Release();
}
}
protected:
CWbemServices * m_pNamespace;
IWbemClassObject * m_pClass;
_bstr_t m_bstrClassName;
}; //*** class CProvBase