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.
 
 
 
 
 
 

190 lines
4.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
//
// Notes:
//
//////////////////////////////////////////////////////////////////////////////
#pragma once
//////////////////////////////////////////////////////////////////////////////
// Include Files
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// Forward Declarations
//////////////////////////////////////////////////////////////////////////////
class CProvBase;
class CProvBaseAssociation;
//////////////////////////////////////////////////////////////////////////////
// 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 SCODE EnumInstance(
long lFlagsIn,
IWbemContext * pCtxIn,
IWbemObjectSink * pHandlerIn
) = 0;
virtual SCODE GetObject(
CObjPath & rObjPathIn,
long lFlagsIn,
IWbemContext * pCtxIn,
IWbemObjectSink * pHandlerIn
) = 0;
virtual SCODE ExecuteMethod(
CObjPath & rObjPathIn,
WCHAR * pwszMethodNameIn,
long lFlagIn,
IWbemClassObject * pParamsIn,
IWbemObjectSink * pHandlerIn
) = 0;
virtual SCODE PutInstance(
CWbemClassObject & rInstToPutIn,
long lFlagIn,
IWbemContext * pCtxIn,
IWbemObjectSink * pHandlerIn
)
{
return WBEM_E_NOT_SUPPORTED;
}
virtual SCODE DeleteInstance(
CObjPath & rObjPathIn,
long lFlagIn,
IWbemContext * pCtxIn,
IWbemObjectSink * pHandlerIn
)
{
return WBEM_E_NOT_SUPPORTED;
}
CProvBase(
LPCWSTR pwszNameIn,
CWbemServices * pNamespaceIn
);
virtual ~CProvBase( void );
protected:
CWbemServices * m_pNamespace;
IWbemClassObject * m_pClass;
_bstr_t m_bstrClassName;
}; //*** class CProvBase
//////////////////////////////////////////////////////////////////////////////
//++
//
// class CProvBaseAssociation
//
// Description:
// interface class defines all operations can be performed
//
//--
//////////////////////////////////////////////////////////////////////////////
class CProvBaseAssociation
: public CProvBase
{
public:
virtual SCODE EnumInstance(
long lFlagsIn,
IWbemContext * pCtxIn,
IWbemObjectSink * pHandlerIn
) = 0;
virtual SCODE GetObject(
CObjPath & rObjPathIn,
long lFlagsIn,
IWbemContext * pCtxIn,
IWbemObjectSink * pHandlerIn
)
{
return WBEM_E_NOT_SUPPORTED;
}
virtual SCODE ExecuteMethod(
CObjPath & rObjPathIn,
WCHAR * pwszMethodNameIn,
long lFlagIn,
IWbemClassObject * pParamsIn,
IWbemObjectSink * pHandlerIn
)
{
return WBEM_E_NOT_SUPPORTED;
}
virtual SCODE PutInstance(
CWbemClassObject & rInstToPutIn,
long lFlagIn,
IWbemContext * pCtxIn,
IWbemObjectSink * pHandlerIn
)
{
return WBEM_E_NOT_SUPPORTED;
}
virtual SCODE DeleteInstance(
CObjPath & rObjPathIn,
long lFlagIn,
IWbemContext * pCtxIn,
IWbemObjectSink * pHandlerIn
)
{
return WBEM_E_NOT_SUPPORTED;
}
CProvBaseAssociation(
LPCWSTR pwszNameIn,
CWbemServices * pNamespaceIn
)
: CProvBase( pwszNameIn, pNamespaceIn )
{
}
virtual ~CProvBaseAssociation( void )
{
}
protected:
void GetTypeName(
_bstr_t & bstrClassNameOut,
_bstr_t bstrProperty
);
}; //*** class CProvBaseAssociation