2025-04-27 07:49:33 -04:00

538 lines
9.7 KiB
C++

// (C) 1999 Microsoft Corporation
#define WBEM_CLASS_EXTENDEDSTATUS L"__ExtendedStatus"
#define WBEM_TASKSTATE_START 0x0
#define WBEM_TASKSTATE_ASYNCHRONOUSCOMPLETE 0x100000
#define WBEM_TASKSTATE_ASYNCHRONOUSABORT 0x100001
class WbemTaskObject : public ProvTaskObject
{
private:
LONG m_ReferenceCount ;
protected:
ULONG m_State ;
WbemProviderErrorObject m_ErrorObject ;
ULONG m_RequestHandle ;
ULONG m_OperationFlag ;
IWbemClassObject *m_ClassObject ;
IWbemObjectSink *m_NotificationHandler ;
IWbemContext *m_Ctx ;
CImpFrameworkProv *m_Provider ;
protected:
void SetRequestHandle ( ULONG a_RequestHandle ) ;
BOOL GetRequestHandle () ;
BOOL GetClassObject ( wchar_t *a_Class ) ;
BOOL GetExtendedNotifyStatusObject ( IWbemClassObject **a_NotifyObject ) ;
BOOL GetNotifyStatusObject ( IWbemClassObject **a_NotifyObject ) ;
protected:
virtual void ProcessComplete () = 0 ;
public:
WbemTaskObject (
CImpFrameworkProv *a_Provider ,
IWbemObjectSink *a_NotificationHandler ,
ULONG a_OperationFlag ,
IWbemContext *a_Ctx
) ;
~WbemTaskObject () ;
WbemProviderErrorObject &GetErrorObject () ;
ULONG AddRef () ;
ULONG Release () ;
} ;
class GetObjectEventObject : public WbemTaskObject
{
private:
wchar_t *m_ObjectPath ;
wchar_t *m_Class ;
ParsedObjectPath *m_ParsedObjectPath ;
CObjectPathParser m_ObjectPathParser ;
protected:
void ProcessComplete () ;
BOOL GetObject ( WbemProviderErrorObject &a_ErrorObject ) ;
public:
GetObjectEventObject (
CImpFrameworkProv *a_Provider ,
wchar_t *a_ObjectPath ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~GetObjectEventObject () ;
void Process () ;
} ;
class GetObjectAsyncEventObject : public GetObjectEventObject
{
private:
protected:
void ProcessComplete () ;
public:
GetObjectAsyncEventObject (
CImpFrameworkProv *a_Provider ,
wchar_t *a_ObjectPath ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~GetObjectAsyncEventObject () ;
} ;
class CreateInstanceEnumEventObject : public WbemTaskObject
{
private:
wchar_t *m_Class ;
protected:
void ProcessComplete () ;
BOOL CreateInstanceEnum ( WbemProviderErrorObject &a_ErrorObject ) ;
public:
CreateInstanceEnumEventObject (
CImpFrameworkProv *a_Provider ,
BSTR a_Class ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~CreateInstanceEnumEventObject () ;
void Process () ;
} ;
class CreateInstanceEnumAsyncEventObject : public CreateInstanceEnumEventObject
{
private:
protected:
void ProcessComplete () ;
public:
CreateInstanceEnumAsyncEventObject (
CImpFrameworkProv *a_Provider ,
BSTR a_Class ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~CreateInstanceEnumAsyncEventObject () ;
} ;
class ExecQueryEventObject : public WbemTaskObject
{
private:
wchar_t *m_QueryFormat ;
wchar_t *m_Query ;
wchar_t *m_Class ;
CTextLexSource m_QuerySource ;
SQL1_Parser m_SqlParser ;
SQL_LEVEL_1_RPN_EXPRESSION *m_RPNExpression ;
protected:
void ProcessComplete () ;
BOOL ExecQuery ( WbemProviderErrorObject &a_ErrorObject ) ;
public:
ExecQueryEventObject (
CImpFrameworkProv *a_Provider ,
BSTR a_QueryFormat ,
BSTR a_Query ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~ExecQueryEventObject () ;
void Process () ;
} ;
class ExecQueryAsyncEventObject : public ExecQueryEventObject
{
private:
protected:
void ProcessComplete () ;
public:
ExecQueryAsyncEventObject (
CImpFrameworkProv *a_Provider ,
BSTR a_QueryFormat ,
BSTR a_Query ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~ExecQueryAsyncEventObject () ;
} ;
class PutInstanceEventObject : public WbemTaskObject
{
private:
IWbemClassObject *m_Object ;
wchar_t *m_Class ;
protected:
void ProcessComplete () ;
BOOL PutInstance ( WbemProviderErrorObject &a_ErrorObject ) ;
public:
PutInstanceEventObject (
CImpFrameworkProv *a_Provider ,
IWbemClassObject *a_Object ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~PutInstanceEventObject () ;
void Process () ;
} ;
class PutInstanceAsyncEventObject : public PutInstanceEventObject
{
private:
protected:
void ProcessComplete () ;
public:
PutInstanceAsyncEventObject (
CImpFrameworkProv *a_Provider ,
IWbemClassObject *a_Object ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~PutInstanceAsyncEventObject () ;
} ;
class PutClassEventObject : public WbemTaskObject
{
private:
IWbemClassObject *m_Object ;
wchar_t *m_Class ;
protected:
void ProcessComplete () ;
BOOL PutClass ( WbemProviderErrorObject &a_ErrorObject ) ;
public:
PutClassEventObject (
CImpFrameworkProv *a_Provider ,
IWbemClassObject *a_Object ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~PutClassEventObject () ;
void Process () ;
} ;
class PutClassAsyncEventObject : public PutClassEventObject
{
private:
protected:
void ProcessComplete () ;
public:
PutClassAsyncEventObject (
CImpFrameworkProv *a_Provider ,
IWbemClassObject *a_Object ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~PutClassAsyncEventObject () ;
} ;
class CreateClassEnumEventObject : public WbemTaskObject
{
private:
wchar_t *m_SuperClass ;
protected:
void ProcessComplete () ;
BOOL CreateClassEnum ( WbemProviderErrorObject &a_ErrorObject ) ;
public:
CreateClassEnumEventObject (
CImpFrameworkProv *a_Provider ,
BSTR a_SuperClass ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~CreateClassEnumEventObject () ;
void Process () ;
} ;
class CreateClassEnumAsyncEventObject : public CreateClassEnumEventObject
{
private:
protected:
void ProcessComplete () ;
public:
CreateClassEnumAsyncEventObject (
CImpFrameworkProv *a_Provider ,
BSTR a_SuperClass ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~CreateClassEnumAsyncEventObject () ;
} ;
class DeleteInstanceEventObject : public WbemTaskObject
{
private:
wchar_t *m_ObjectPath ;
wchar_t *m_Class ;
ParsedObjectPath *m_ParsedObjectPath ;
CObjectPathParser m_ObjectPathParser ;
protected:
void ProcessComplete () ;
BOOL DeleteInstance ( WbemProviderErrorObject &a_ErrorObject ) ;
public:
DeleteInstanceEventObject (
CImpFrameworkProv *a_Provider ,
wchar_t *a_ObjectPath ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~DeleteInstanceEventObject () ;
void Process () ;
} ;
class DeleteInstanceAsyncEventObject : public DeleteInstanceEventObject
{
private:
protected:
void ProcessComplete () ;
public:
DeleteInstanceAsyncEventObject (
CImpFrameworkProv *a_Provider ,
wchar_t *a_ObjectPath ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~DeleteInstanceAsyncEventObject () ;
} ;
class DeleteClassEventObject : public WbemTaskObject
{
private:
wchar_t *m_Class ;
protected:
void ProcessComplete () ;
BOOL DeleteClass ( WbemProviderErrorObject &a_ErrorObject ) ;
public:
DeleteClassEventObject (
CImpFrameworkProv *a_Provider ,
BSTR a_Class ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~DeleteClassEventObject () ;
void Process () ;
} ;
class DeleteClassAsyncEventObject : public DeleteClassEventObject
{
private:
protected:
void ProcessComplete () ;
public:
DeleteClassAsyncEventObject (
CImpFrameworkProv *a_Provider ,
BSTR a_Class ,
ULONG a_Flag ,
IWbemObjectSink *a_NotificationHandler ,
IWbemContext *pCtx
) ;
~DeleteClassAsyncEventObject () ;
} ;
class ExecMethodEventObject : public WbemTaskObject
{
private:
wchar_t *m_ObjectPath ;
wchar_t *m_MethodName ;
IWbemClassObject *m_InParameters ;
ParsedObjectPath *m_ParsedObjectPath ;
CObjectPathParser m_ObjectPathParser ;
protected:
void ProcessComplete () ;
BOOL ExecMethod ( WbemProviderErrorObject &a_ErrorObject ) ;
public:
ExecMethodEventObject (
CImpFrameworkProv *a_Provider ,
BSTR a_ObjectPath,
BSTR a_MethodName,
ULONG a_OperationFlag,
IWbemContext FAR *a_Ctx,
IWbemClassObject FAR *a_InParameters,
IWbemObjectSink FAR *a_NotificationHandler
) ;
~ExecMethodEventObject () ;
void Process () ;
} ;
class ExecMethodAsyncEventObject : public ExecMethodEventObject
{
private:
protected:
void ProcessComplete () ;
public:
ExecMethodAsyncEventObject (
CImpFrameworkProv *a_Provider ,
BSTR a_ObjectPath,
BSTR a_MethodName,
ULONG a_OperationFlag,
IWbemContext FAR *a_Ctx,
IWbemClassObject FAR *a_InParameters,
IWbemObjectSink FAR *a_NotificationHandler
) ;
~ExecMethodAsyncEventObject () ;
} ;
class EventAsyncEventObject : public WbemTaskObject
{
private:
protected:
protected:
void ProcessComplete () ;
void Process () ;
BOOL ProcessEvent ( WbemProviderErrorObject &a_ErrorObject ) ;
public:
EventAsyncEventObject (
CImpFrameworkProv *a_Provider ,
IWbemObjectSink* pSink,
long lFlags
) ;
~EventAsyncEventObject () ;
} ;