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

417 lines
9.1 KiB
C++

/*++
Copyright (C) 1996-2001 Microsoft Corporation
Module Name:
ProvResv.H
Abstract:
History:
--*/
#ifndef _Task_IWbemServices_H
#define _Task_IWbemServices_H
#include <mstask.h>
#include <msterr.h>
class CTask_IWbemServices : public IWbemServices , public IWbemProviderInit , public IWbemShutdown
{
private:
LONG m_ReferenceCount ; //Object reference count
WmiAllocator &m_Allocator ;
CRITICAL_SECTION m_CriticalSection ;
IWbemServices *m_CoreService ;
BSTR m_Namespace ;
BSTR m_Locale ;
BSTR m_User ;
IWbemClassObject *m_Win32_Task_Object ;
IWbemClassObject *m_Win32_TimeBasedTrigger_Object ;
IWbemClassObject *m_Win32_Once_Object ;
IWbemClassObject *m_Win32_WeeklyTrigger_Object ;
IWbemClassObject *m_Win32_DailyTrigger_Object ;
IWbemClassObject *m_Win32_MonthlyDateTrigger_Object ;
IWbemClassObject *m_Win32_MonthlyDayOfWeekTrigger_Object ;
IWbemClassObject *m_Win32_OnIdle_Object ;
IWbemClassObject *m_Win32_AtSystemStart_Object ;
IWbemClassObject *m_Win32_AtLogon_Object ;
IWbemClassObject *m_Win32_ScheduledWorkItemTrigger_Object ;
private:
HRESULT PutInstanceAsync_Win32_Task (
IWbemClassObject *a_Instance,
IWbemClassObject *a_ClassObject ,
long a_Flags ,
IWbemContext *a_Context,
IWbemObjectSink *a_Sink
) ;
HRESULT PutInstanceAsync_Win32_Trigger (
IWbemClassObject *a_Instance,
IWbemClassObject *a_ClassObject ,
long a_Flags ,
IWbemContext *a_Context,
IWbemObjectSink *a_Sink ,
TASK_TRIGGER_TYPE a_TriggerType
) ;
HRESULT ExecMethodAsync_Win32_Task (
IWbemClassObject *a_ClassObject ,
long a_Flags ,
IWbemContext *a_Context,
IWbemObjectSink FAR *a_Sink ,
IWbemPath *a_Path ,
BSTR a_MethodName
) ;
HRESULT GetObjectAsync_Win32_Trigger_Load (
IWbemClassObject *a_ClassObject ,
IWbemObjectSink *a_Sink ,
ITaskScheduler *a_TaskScheduler ,
wchar_t *a_TaskName ,
WORD a_TriggerIndex ,
TASK_TRIGGER_TYPE a_TriggerType
);
HRESULT GetObjectAsync_Win32_Task (
IWbemClassObject *a_ClassObject ,
long a_Flags ,
IWbemContext *a_Context,
IWbemObjectSink FAR *a_Sink ,
IWbemPath *a_Path
) ;
HRESULT DeleteInstanceAsync_Win32_Task (
IWbemClassObject *a_ClassObject ,
long a_Flags ,
IWbemContext *a_Context,
IWbemObjectSink FAR *a_Sink ,
IWbemPath *a_Path
) ;
HRESULT GetObjectAsync_Win32_Trigger (
IWbemClassObject *a_ClassObject ,
long a_Flags ,
IWbemContext *a_Context,
IWbemObjectSink FAR *a_Sink ,
IWbemPath *a_Path ,
TASK_TRIGGER_TYPE a_TriggerType
) ;
HRESULT DeleteInstanceAsync_Win32_Trigger (
IWbemClassObject *a_ClassObject ,
long a_Flags ,
IWbemContext *a_Context,
IWbemObjectSink FAR *a_Sink ,
IWbemPath *a_Path ,
TASK_TRIGGER_TYPE a_TriggerType
) ;
HRESULT CommonAsync_Win32_Task_Load (
ITaskScheduler *a_TaskScheduler ,
wchar_t *a_TaskName ,
IWbemClassObject *a_Instance
) ;
HRESULT CreateInstanceEnumAsync_Win32_Task (
IWbemClassObject *a_ClassObject ,
long a_Flags ,
IWbemContext *a_Context,
IWbemObjectSink FAR *a_Sink
) ;
HRESULT CreateInstanceEnumAsync_Win32_Trigger_Enumerate (
IWbemClassObject *a_ClassObject ,
IWbemObjectSink *a_Sink ,
ITaskScheduler *a_TaskScheduler ,
wchar_t *a_TaskName ,
TASK_TRIGGER_TYPE a_TriggerType
) ;
HRESULT CreateInstanceEnumAsync_Win32_Trigger (
IWbemClassObject *a_ClassObject ,
long a_Flags ,
IWbemContext *a_Context,
IWbemObjectSink FAR *a_Sink ,
TASK_TRIGGER_TYPE a_TriggerType
) ;
HRESULT CreateInstanceEnumAsync_Win32_ScheduledWorkItemTrigger_Enumerate (
IWbemClassObject *a_ClassObject ,
IWbemObjectSink *a_Sink ,
ITaskScheduler *a_TaskScheduler ,
wchar_t *a_TaskName
) ;
HRESULT CreateInstanceEnumAsync_Win32_ScheduledWorkItemTrigger (
IWbemClassObject *a_ClassObject ,
long a_Flags ,
IWbemContext *a_Context,
IWbemObjectSink FAR *a_Sink
) ;
HRESULT GetScheduledWorkItem (
ITaskScheduler *a_TaskScheduler ,
wchar_t *a_Name ,
IScheduledWorkItem *&a_ScheduledWorkItem
) ;
public:
CTask_IWbemServices ( WmiAllocator &a_Allocator ) ;
~CTask_IWbemServices () ;
public:
//Non-delegating object IUnknown
STDMETHODIMP QueryInterface ( REFIID , LPVOID FAR * ) ;
STDMETHODIMP_( ULONG ) AddRef () ;
STDMETHODIMP_( ULONG ) Release () ;
/* IWbemServices methods */
HRESULT STDMETHODCALLTYPE OpenNamespace (
const BSTR a_Namespace ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemServices **a_Service ,
IWbemCallResult **a_CallResult
) ;
HRESULT STDMETHODCALLTYPE CancelAsyncCall (
IWbemObjectSink *a_Sink
) ;
HRESULT STDMETHODCALLTYPE QueryObjectSink (
long a_Flags ,
IWbemObjectSink **a_Sink
) ;
HRESULT STDMETHODCALLTYPE GetObject (
const BSTR a_ObjectPath ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemClassObject **ppObject ,
IWbemCallResult **a_CallResult
) ;
HRESULT STDMETHODCALLTYPE GetObjectAsync (
const BSTR a_ObjectPath ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemObjectSink *a_Sink
) ;
HRESULT STDMETHODCALLTYPE PutClass (
IWbemClassObject *a_Object ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemCallResult **a_CallResult
) ;
HRESULT STDMETHODCALLTYPE PutClassAsync (
IWbemClassObject *a_Object ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemObjectSink *a_Sink
) ;
HRESULT STDMETHODCALLTYPE DeleteClass (
const BSTR a_Class ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemCallResult **a_CallResult
) ;
HRESULT STDMETHODCALLTYPE DeleteClassAsync (
const BSTR a_Class ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemObjectSink *a_Sink
) ;
HRESULT STDMETHODCALLTYPE CreateClassEnum (
const BSTR a_Superclass ,
long a_Flags ,
IWbemContext *a_Context ,
IEnumWbemClassObject **a_Enum
) ;
HRESULT STDMETHODCALLTYPE CreateClassEnumAsync (
const BSTR a_Superclass ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemObjectSink *a_Sink
) ;
HRESULT STDMETHODCALLTYPE PutInstance (
IWbemClassObject *a_Instance ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemCallResult **a_CallResult
) ;
HRESULT STDMETHODCALLTYPE PutInstanceAsync (
IWbemClassObject *a_Instance ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemObjectSink *a_Sink
) ;
HRESULT STDMETHODCALLTYPE DeleteInstance (
const BSTR a_ObjectPath ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemCallResult **a_CallResult
) ;
HRESULT STDMETHODCALLTYPE DeleteInstanceAsync (
const BSTR a_ObjectPath,
long a_Flags,
IWbemContext *a_Context ,
IWbemObjectSink *a_Sink
) ;
HRESULT STDMETHODCALLTYPE CreateInstanceEnum (
const BSTR a_Class ,
long a_Flags ,
IWbemContext *a_Context ,
IEnumWbemClassObject **a_Enum
) ;
HRESULT STDMETHODCALLTYPE CreateInstanceEnumAsync (
const BSTR a_Class ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemObjectSink *a_Sink
) ;
HRESULT STDMETHODCALLTYPE ExecQuery (
const BSTR a_QueryLanguage,
const BSTR a_Query,
long a_Flags ,
IWbemContext *a_Context ,
IEnumWbemClassObject **a_Enum
) ;
HRESULT STDMETHODCALLTYPE ExecQueryAsync (
const BSTR a_QueryLanguage ,
const BSTR a_Query ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemObjectSink *a_Sink
) ;
HRESULT STDMETHODCALLTYPE ExecNotificationQuery (
const BSTR a_QueryLanguage ,
const BSTR a_Query ,
long a_Flags ,
IWbemContext *a_Context ,
IEnumWbemClassObject **a_Enum
) ;
HRESULT STDMETHODCALLTYPE ExecNotificationQueryAsync (
const BSTR a_QueryLanguage ,
const BSTR a_Query ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemObjectSink *a_Sink
) ;
HRESULT STDMETHODCALLTYPE ExecMethod (
const BSTR a_ObjectPath ,
const BSTR a_MethodName ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemClassObject *a_InParams ,
IWbemClassObject **a_OutParams ,
IWbemCallResult **a_CallResult
) ;
HRESULT STDMETHODCALLTYPE ExecMethodAsync (
const BSTR a_ObjectPath ,
const BSTR a_MethodName ,
long a_Flags ,
IWbemContext *a_Context ,
IWbemClassObject *a_InParams ,
IWbemObjectSink *a_Sink
) ;
/* IWbemProviderInit methods */
HRESULT STDMETHODCALLTYPE Initialize (
LPWSTR a_User ,
LONG a_Flags ,
LPWSTR a_Namespace ,
LPWSTR a_Locale ,
IWbemServices *a_Core ,
IWbemContext *a_Context ,
IWbemProviderInitSink *a_Sink
) ;
// IWmi_UnInitialize members
HRESULT STDMETHODCALLTYPE Shutdown (
LONG a_Flags ,
ULONG a_MaxMilliSeconds ,
IWbemContext *a_Context
) ;
} ;
#endif // _Task_IWbemServices_H