Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      7 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      8 #endif
      9 
     10 #include "rpc.h"
     11 #include "rpcndr.h"
     12 
     13 #ifndef __RPCNDR_H_VERSION__
     14 #error This stub requires an updated version of <rpcndr.h>
     15 #endif
     16 
     17 #ifndef COM_NO_WINDOWS_H
     18 #include "windows.h"
     19 #include "ole2.h"
     20 #endif
     21 
     22 #ifndef __mstask_h__
     23 #define __mstask_h__
     24 
     25 #ifndef __ITaskTrigger_FWD_DEFINED__
     26 #define __ITaskTrigger_FWD_DEFINED__
     27 typedef struct ITaskTrigger ITaskTrigger;
     28 #endif
     29 
     30 #ifndef __IScheduledWorkItem_FWD_DEFINED__
     31 #define __IScheduledWorkItem_FWD_DEFINED__
     32 typedef struct IScheduledWorkItem IScheduledWorkItem;
     33 #endif
     34 
     35 #ifndef __ITask_FWD_DEFINED__
     36 #define __ITask_FWD_DEFINED__
     37 typedef struct ITask ITask;
     38 #endif
     39 
     40 #ifndef __IEnumWorkItems_FWD_DEFINED__
     41 #define __IEnumWorkItems_FWD_DEFINED__
     42 typedef struct IEnumWorkItems IEnumWorkItems;
     43 #endif
     44 
     45 #ifndef __ITaskScheduler_FWD_DEFINED__
     46 #define __ITaskScheduler_FWD_DEFINED__
     47 typedef struct ITaskScheduler ITaskScheduler;
     48 #endif
     49 
     50 #ifndef __IProvideTaskPage_FWD_DEFINED__
     51 #define __IProvideTaskPage_FWD_DEFINED__
     52 typedef struct IProvideTaskPage IProvideTaskPage;
     53 #endif
     54 
     55 #include "oaidl.h"
     56 #include "oleidl.h"
     57 
     58 #ifdef __cplusplus
     59 extern "C" {
     60 #endif
     61 
     62 #ifndef __MIDL_user_allocate_free_DEFINED__
     63 #define __MIDL_user_allocate_free_DEFINED__
     64   void *__RPC_API MIDL_user_allocate(size_t);
     65   void __RPC_API MIDL_user_free(void *);
     66 #endif
     67 
     68 #define TASK_SUNDAY (0x1)
     69 #define TASK_MONDAY (0x2)
     70 #define TASK_TUESDAY (0x4)
     71 #define TASK_WEDNESDAY (0x8)
     72 #define TASK_THURSDAY (0x10)
     73 #define TASK_FRIDAY (0x20)
     74 #define TASK_SATURDAY (0x40)
     75 #define TASK_FIRST_WEEK (1)
     76 #define TASK_SECOND_WEEK (2)
     77 #define TASK_THIRD_WEEK (3)
     78 #define TASK_FOURTH_WEEK (4)
     79 #define TASK_LAST_WEEK (5)
     80 #define TASK_JANUARY (0x1)
     81 #define TASK_FEBRUARY (0x2)
     82 #define TASK_MARCH (0x4)
     83 #define TASK_APRIL (0x8)
     84 #define TASK_MAY (0x10)
     85 #define TASK_JUNE (0x20)
     86 #define TASK_JULY (0x40)
     87 #define TASK_AUGUST (0x80)
     88 #define TASK_SEPTEMBER (0x100)
     89 #define TASK_OCTOBER (0x200)
     90 #define TASK_NOVEMBER (0x400)
     91 #define TASK_DECEMBER (0x800)
     92 #define TASK_FLAG_INTERACTIVE (0x1)
     93 #define TASK_FLAG_DELETE_WHEN_DONE (0x2)
     94 #define TASK_FLAG_DISABLED (0x4)
     95 #define TASK_FLAG_START_ONLY_IF_IDLE (0x10)
     96 #define TASK_FLAG_KILL_ON_IDLE_END (0x20)
     97 #define TASK_FLAG_DONT_START_IF_ON_BATTERIES (0x40)
     98 #define TASK_FLAG_KILL_IF_GOING_ON_BATTERIES (0x80)
     99 #define TASK_FLAG_RUN_ONLY_IF_DOCKED (0x100)
    100 #define TASK_FLAG_HIDDEN (0x200)
    101 #define TASK_FLAG_RUN_IF_CONNECTED_TO_INTERNET (0x400)
    102 #define TASK_FLAG_RESTART_ON_IDLE_RESUME (0x800)
    103 #define TASK_FLAG_SYSTEM_REQUIRED (0x1000)
    104 #define TASK_FLAG_RUN_ONLY_IF_LOGGED_ON (0x2000)
    105 #define TASK_TRIGGER_FLAG_HAS_END_DATE (0x1)
    106 #define TASK_TRIGGER_FLAG_KILL_AT_DURATION_END (0x2)
    107 #define TASK_TRIGGER_FLAG_DISABLED (0x4)
    108 #define TASK_MAX_RUN_TIMES (1440)
    109 
    110   typedef enum _TASK_TRIGGER_TYPE {
    111     TASK_TIME_TRIGGER_ONCE = 0,TASK_TIME_TRIGGER_DAILY = 1,TASK_TIME_TRIGGER_WEEKLY = 2,TASK_TIME_TRIGGER_MONTHLYDATE = 3,
    112     TASK_TIME_TRIGGER_MONTHLYDOW = 4,TASK_EVENT_TRIGGER_ON_IDLE = 5,TASK_EVENT_TRIGGER_AT_SYSTEMSTART = 6,TASK_EVENT_TRIGGER_AT_LOGON = 7
    113   } TASK_TRIGGER_TYPE;
    114 
    115   typedef enum _TASK_TRIGGER_TYPE *PTASK_TRIGGER_TYPE;
    116 
    117   typedef struct _DAILY {
    118     WORD DaysInterval;
    119   } DAILY;
    120 
    121   typedef struct _WEEKLY {
    122     WORD WeeksInterval;
    123     WORD rgfDaysOfTheWeek;
    124   } WEEKLY;
    125 
    126   typedef struct _MONTHLYDATE {
    127     DWORD rgfDays;
    128     WORD rgfMonths;
    129   } MONTHLYDATE;
    130 
    131   typedef struct _MONTHLYDOW {
    132     WORD wWhichWeek;
    133     WORD rgfDaysOfTheWeek;
    134     WORD rgfMonths;
    135   } MONTHLYDOW;
    136 
    137   typedef union _TRIGGER_TYPE_UNION {
    138     DAILY Daily;
    139     WEEKLY Weekly;
    140     MONTHLYDATE MonthlyDate;
    141     MONTHLYDOW MonthlyDOW;
    142   } TRIGGER_TYPE_UNION;
    143 
    144   typedef struct _TASK_TRIGGER {
    145     WORD cbTriggerSize;
    146     WORD Reserved1;
    147     WORD wBeginYear;
    148     WORD wBeginMonth;
    149     WORD wBeginDay;
    150     WORD wEndYear;
    151     WORD wEndMonth;
    152     WORD wEndDay;
    153     WORD wStartHour;
    154     WORD wStartMinute;
    155     DWORD MinutesDuration;
    156     DWORD MinutesInterval;
    157     DWORD rgFlags;
    158     TASK_TRIGGER_TYPE TriggerType;
    159     TRIGGER_TYPE_UNION Type;
    160     WORD Reserved2;
    161     WORD wRandomMinutesInterval;
    162   } TASK_TRIGGER;
    163 
    164   typedef struct _TASK_TRIGGER *PTASK_TRIGGER;
    165 
    166   DEFINE_GUID(IID_ITaskTrigger,0x148BD52B,0xA2AB,0x11CE,0xB1,0x1F,0x00,0xAA,0x00,0x53,0x05,0x03);
    167 
    168   extern RPC_IF_HANDLE __MIDL_itf_mstask_0000_v0_0_c_ifspec;
    169   extern RPC_IF_HANDLE __MIDL_itf_mstask_0000_v0_0_s_ifspec;
    170 
    171 #ifndef __ITaskTrigger_INTERFACE_DEFINED__
    172 #define __ITaskTrigger_INTERFACE_DEFINED__
    173   EXTERN_C const IID IID_ITaskTrigger;
    174 #if defined(__cplusplus) && !defined(CINTERFACE)
    175   struct ITaskTrigger : public IUnknown {
    176   public:
    177     virtual HRESULT WINAPI SetTrigger(const PTASK_TRIGGER pTrigger) = 0;
    178     virtual HRESULT WINAPI GetTrigger(PTASK_TRIGGER pTrigger) = 0;
    179     virtual HRESULT WINAPI GetTriggerString(LPWSTR *ppwszTrigger) = 0;
    180   };
    181 #else
    182   typedef struct ITaskTriggerVtbl {
    183     BEGIN_INTERFACE
    184       HRESULT (WINAPI *QueryInterface)(ITaskTrigger *This,REFIID riid,void **ppvObject);
    185       ULONG (WINAPI *AddRef)(ITaskTrigger *This);
    186       ULONG (WINAPI *Release)(ITaskTrigger *This);
    187       HRESULT (WINAPI *SetTrigger)(ITaskTrigger *This,const PTASK_TRIGGER pTrigger);
    188       HRESULT (WINAPI *GetTrigger)(ITaskTrigger *This,PTASK_TRIGGER pTrigger);
    189       HRESULT (WINAPI *GetTriggerString)(ITaskTrigger *This,LPWSTR *ppwszTrigger);
    190     END_INTERFACE
    191   } ITaskTriggerVtbl;
    192   struct ITaskTrigger {
    193     CONST_VTBL struct ITaskTriggerVtbl *lpVtbl;
    194   };
    195 #ifdef COBJMACROS
    196 #define ITaskTrigger_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    197 #define ITaskTrigger_AddRef(This) (This)->lpVtbl->AddRef(This)
    198 #define ITaskTrigger_Release(This) (This)->lpVtbl->Release(This)
    199 #define ITaskTrigger_SetTrigger(This,pTrigger) (This)->lpVtbl->SetTrigger(This,pTrigger)
    200 #define ITaskTrigger_GetTrigger(This,pTrigger) (This)->lpVtbl->GetTrigger(This,pTrigger)
    201 #define ITaskTrigger_GetTriggerString(This,ppwszTrigger) (This)->lpVtbl->GetTriggerString(This,ppwszTrigger)
    202 #endif
    203 #endif
    204   HRESULT WINAPI ITaskTrigger_SetTrigger_Proxy(ITaskTrigger *This,const PTASK_TRIGGER pTrigger);
    205   void __RPC_STUB ITaskTrigger_SetTrigger_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    206   HRESULT WINAPI ITaskTrigger_GetTrigger_Proxy(ITaskTrigger *This,PTASK_TRIGGER pTrigger);
    207   void __RPC_STUB ITaskTrigger_GetTrigger_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    208   HRESULT WINAPI ITaskTrigger_GetTriggerString_Proxy(ITaskTrigger *This,LPWSTR *ppwszTrigger);
    209   void __RPC_STUB ITaskTrigger_GetTriggerString_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    210 #endif
    211 
    212   DEFINE_GUID(IID_IScheduledWorkItem,0xa6b952f0,0xa4b1,0x11d0,0x99,0x7d,0x00,0xaa,0x00,0x68,0x87,0xec);
    213   extern RPC_IF_HANDLE __MIDL_itf_mstask_0140_v0_0_c_ifspec;
    214   extern RPC_IF_HANDLE __MIDL_itf_mstask_0140_v0_0_s_ifspec;
    215 #ifndef __IScheduledWorkItem_INTERFACE_DEFINED__
    216 #define __IScheduledWorkItem_INTERFACE_DEFINED__
    217   EXTERN_C const IID IID_IScheduledWorkItem;
    218 #if defined(__cplusplus) && !defined(CINTERFACE)
    219   struct IScheduledWorkItem : public IUnknown {
    220   public:
    221     virtual HRESULT WINAPI CreateTrigger(WORD *piNewTrigger,ITaskTrigger **ppTrigger) = 0;
    222     virtual HRESULT WINAPI DeleteTrigger(WORD iTrigger) = 0;
    223     virtual HRESULT WINAPI GetTriggerCount(WORD *pwCount) = 0;
    224     virtual HRESULT WINAPI GetTrigger(WORD iTrigger,ITaskTrigger **ppTrigger) = 0;
    225     virtual HRESULT WINAPI GetTriggerString(WORD iTrigger,LPWSTR *ppwszTrigger) = 0;
    226     virtual HRESULT WINAPI GetRunTimes(const LPSYSTEMTIME pstBegin,const LPSYSTEMTIME pstEnd,WORD *pCount,LPSYSTEMTIME *rgstTaskTimes) = 0;
    227     virtual HRESULT WINAPI GetNextRunTime(SYSTEMTIME *pstNextRun) = 0;
    228     virtual HRESULT WINAPI SetIdleWait(WORD wIdleMinutes,WORD wDeadlineMinutes) = 0;
    229     virtual HRESULT WINAPI GetIdleWait(WORD *pwIdleMinutes,WORD *pwDeadlineMinutes) = 0;
    230     virtual HRESULT WINAPI Run(void) = 0;
    231     virtual HRESULT WINAPI Terminate(void) = 0;
    232     virtual HRESULT WINAPI EditWorkItem(HWND hParent,DWORD dwReserved) = 0;
    233     virtual HRESULT WINAPI GetMostRecentRunTime(SYSTEMTIME *pstLastRun) = 0;
    234     virtual HRESULT WINAPI GetStatus(HRESULT *phrStatus) = 0;
    235     virtual HRESULT WINAPI GetExitCode(DWORD *pdwExitCode) = 0;
    236     virtual HRESULT WINAPI SetComment(LPCWSTR pwszComment) = 0;
    237     virtual HRESULT WINAPI GetComment(LPWSTR *ppwszComment) = 0;
    238     virtual HRESULT WINAPI SetCreator(LPCWSTR pwszCreator) = 0;
    239     virtual HRESULT WINAPI GetCreator(LPWSTR *ppwszCreator) = 0;
    240     virtual HRESULT WINAPI SetWorkItemData(WORD cbData,BYTE rgbData[]) = 0;
    241     virtual HRESULT WINAPI GetWorkItemData(WORD *pcbData,BYTE **prgbData) = 0;
    242     virtual HRESULT WINAPI SetErrorRetryCount(WORD wRetryCount) = 0;
    243     virtual HRESULT WINAPI GetErrorRetryCount(WORD *pwRetryCount) = 0;
    244     virtual HRESULT WINAPI SetErrorRetryInterval(WORD wRetryInterval) = 0;
    245     virtual HRESULT WINAPI GetErrorRetryInterval(WORD *pwRetryInterval) = 0;
    246     virtual HRESULT WINAPI SetFlags(DWORD dwFlags) = 0;
    247     virtual HRESULT WINAPI GetFlags(DWORD *pdwFlags) = 0;
    248     virtual HRESULT WINAPI SetAccountInformation(LPCWSTR pwszAccountName,LPCWSTR pwszPassword) = 0;
    249     virtual HRESULT WINAPI GetAccountInformation(LPWSTR *ppwszAccountName) = 0;
    250   };
    251 #else
    252   typedef struct IScheduledWorkItemVtbl {
    253     BEGIN_INTERFACE
    254       HRESULT (WINAPI *QueryInterface)(IScheduledWorkItem *This,REFIID riid,void **ppvObject);
    255       ULONG (WINAPI *AddRef)(IScheduledWorkItem *This);
    256       ULONG (WINAPI *Release)(IScheduledWorkItem *This);
    257       HRESULT (WINAPI *CreateTrigger)(IScheduledWorkItem *This,WORD *piNewTrigger,ITaskTrigger **ppTrigger);
    258       HRESULT (WINAPI *DeleteTrigger)(IScheduledWorkItem *This,WORD iTrigger);
    259       HRESULT (WINAPI *GetTriggerCount)(IScheduledWorkItem *This,WORD *pwCount);
    260       HRESULT (WINAPI *GetTrigger)(IScheduledWorkItem *This,WORD iTrigger,ITaskTrigger **ppTrigger);
    261       HRESULT (WINAPI *GetTriggerString)(IScheduledWorkItem *This,WORD iTrigger,LPWSTR *ppwszTrigger);
    262       HRESULT (WINAPI *GetRunTimes)(IScheduledWorkItem *This,const LPSYSTEMTIME pstBegin,const LPSYSTEMTIME pstEnd,WORD *pCount,LPSYSTEMTIME *rgstTaskTimes);
    263       HRESULT (WINAPI *GetNextRunTime)(IScheduledWorkItem *This,SYSTEMTIME *pstNextRun);
    264       HRESULT (WINAPI *SetIdleWait)(IScheduledWorkItem *This,WORD wIdleMinutes,WORD wDeadlineMinutes);
    265       HRESULT (WINAPI *GetIdleWait)(IScheduledWorkItem *This,WORD *pwIdleMinutes,WORD *pwDeadlineMinutes);
    266       HRESULT (WINAPI *Run)(IScheduledWorkItem *This);
    267       HRESULT (WINAPI *Terminate)(IScheduledWorkItem *This);
    268       HRESULT (WINAPI *EditWorkItem)(IScheduledWorkItem *This,HWND hParent,DWORD dwReserved);
    269       HRESULT (WINAPI *GetMostRecentRunTime)(IScheduledWorkItem *This,SYSTEMTIME *pstLastRun);
    270       HRESULT (WINAPI *GetStatus)(IScheduledWorkItem *This,HRESULT *phrStatus);
    271       HRESULT (WINAPI *GetExitCode)(IScheduledWorkItem *This,DWORD *pdwExitCode);
    272       HRESULT (WINAPI *SetComment)(IScheduledWorkItem *This,LPCWSTR pwszComment);
    273       HRESULT (WINAPI *GetComment)(IScheduledWorkItem *This,LPWSTR *ppwszComment);
    274       HRESULT (WINAPI *SetCreator)(IScheduledWorkItem *This,LPCWSTR pwszCreator);
    275       HRESULT (WINAPI *GetCreator)(IScheduledWorkItem *This,LPWSTR *ppwszCreator);
    276       HRESULT (WINAPI *SetWorkItemData)(IScheduledWorkItem *This,WORD cbData,BYTE rgbData[]);
    277       HRESULT (WINAPI *GetWorkItemData)(IScheduledWorkItem *This,WORD *pcbData,BYTE **prgbData);
    278       HRESULT (WINAPI *SetErrorRetryCount)(IScheduledWorkItem *This,WORD wRetryCount);
    279       HRESULT (WINAPI *GetErrorRetryCount)(IScheduledWorkItem *This,WORD *pwRetryCount);
    280       HRESULT (WINAPI *SetErrorRetryInterval)(IScheduledWorkItem *This,WORD wRetryInterval);
    281       HRESULT (WINAPI *GetErrorRetryInterval)(IScheduledWorkItem *This,WORD *pwRetryInterval);
    282       HRESULT (WINAPI *SetFlags)(IScheduledWorkItem *This,DWORD dwFlags);
    283       HRESULT (WINAPI *GetFlags)(IScheduledWorkItem *This,DWORD *pdwFlags);
    284       HRESULT (WINAPI *SetAccountInformation)(IScheduledWorkItem *This,LPCWSTR pwszAccountName,LPCWSTR pwszPassword);
    285       HRESULT (WINAPI *GetAccountInformation)(IScheduledWorkItem *This,LPWSTR *ppwszAccountName);
    286     END_INTERFACE
    287   } IScheduledWorkItemVtbl;
    288   struct IScheduledWorkItem {
    289     CONST_VTBL struct IScheduledWorkItemVtbl *lpVtbl;
    290   };
    291 #ifdef COBJMACROS
    292 #define IScheduledWorkItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    293 #define IScheduledWorkItem_AddRef(This) (This)->lpVtbl->AddRef(This)
    294 #define IScheduledWorkItem_Release(This) (This)->lpVtbl->Release(This)
    295 #define IScheduledWorkItem_CreateTrigger(This,piNewTrigger,ppTrigger) (This)->lpVtbl->CreateTrigger(This,piNewTrigger,ppTrigger)
    296 #define IScheduledWorkItem_DeleteTrigger(This,iTrigger) (This)->lpVtbl->DeleteTrigger(This,iTrigger)
    297 #define IScheduledWorkItem_GetTriggerCount(This,pwCount) (This)->lpVtbl->GetTriggerCount(This,pwCount)
    298 #define IScheduledWorkItem_GetTrigger(This,iTrigger,ppTrigger) (This)->lpVtbl->GetTrigger(This,iTrigger,ppTrigger)
    299 #define IScheduledWorkItem_GetTriggerString(This,iTrigger,ppwszTrigger) (This)->lpVtbl->GetTriggerString(This,iTrigger,ppwszTrigger)
    300 #define IScheduledWorkItem_GetRunTimes(This,pstBegin,pstEnd,pCount,rgstTaskTimes) (This)->lpVtbl->GetRunTimes(This,pstBegin,pstEnd,pCount,rgstTaskTimes)
    301 #define IScheduledWorkItem_GetNextRunTime(This,pstNextRun) (This)->lpVtbl->GetNextRunTime(This,pstNextRun)
    302 #define IScheduledWorkItem_SetIdleWait(This,wIdleMinutes,wDeadlineMinutes) (This)->lpVtbl->SetIdleWait(This,wIdleMinutes,wDeadlineMinutes)
    303 #define IScheduledWorkItem_GetIdleWait(This,pwIdleMinutes,pwDeadlineMinutes) (This)->lpVtbl->GetIdleWait(This,pwIdleMinutes,pwDeadlineMinutes)
    304 #define IScheduledWorkItem_Run(This) (This)->lpVtbl->Run(This)
    305 #define IScheduledWorkItem_Terminate(This) (This)->lpVtbl->Terminate(This)
    306 #define IScheduledWorkItem_EditWorkItem(This,hParent,dwReserved) (This)->lpVtbl->EditWorkItem(This,hParent,dwReserved)
    307 #define IScheduledWorkItem_GetMostRecentRunTime(This,pstLastRun) (This)->lpVtbl->GetMostRecentRunTime(This,pstLastRun)
    308 #define IScheduledWorkItem_GetStatus(This,phrStatus) (This)->lpVtbl->GetStatus(This,phrStatus)
    309 #define IScheduledWorkItem_GetExitCode(This,pdwExitCode) (This)->lpVtbl->GetExitCode(This,pdwExitCode)
    310 #define IScheduledWorkItem_SetComment(This,pwszComment) (This)->lpVtbl->SetComment(This,pwszComment)
    311 #define IScheduledWorkItem_GetComment(This,ppwszComment) (This)->lpVtbl->GetComment(This,ppwszComment)
    312 #define IScheduledWorkItem_SetCreator(This,pwszCreator) (This)->lpVtbl->SetCreator(This,pwszCreator)
    313 #define IScheduledWorkItem_GetCreator(This,ppwszCreator) (This)->lpVtbl->GetCreator(This,ppwszCreator)
    314 #define IScheduledWorkItem_SetWorkItemData(This,cbData,rgbData) (This)->lpVtbl->SetWorkItemData(This,cbData,rgbData)
    315 #define IScheduledWorkItem_GetWorkItemData(This,pcbData,prgbData) (This)->lpVtbl->GetWorkItemData(This,pcbData,prgbData)
    316 #define IScheduledWorkItem_SetErrorRetryCount(This,wRetryCount) (This)->lpVtbl->SetErrorRetryCount(This,wRetryCount)
    317 #define IScheduledWorkItem_GetErrorRetryCount(This,pwRetryCount) (This)->lpVtbl->GetErrorRetryCount(This,pwRetryCount)
    318 #define IScheduledWorkItem_SetErrorRetryInterval(This,wRetryInterval) (This)->lpVtbl->SetErrorRetryInterval(This,wRetryInterval)
    319 #define IScheduledWorkItem_GetErrorRetryInterval(This,pwRetryInterval) (This)->lpVtbl->GetErrorRetryInterval(This,pwRetryInterval)
    320 #define IScheduledWorkItem_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
    321 #define IScheduledWorkItem_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
    322 #define IScheduledWorkItem_SetAccountInformation(This,pwszAccountName,pwszPassword) (This)->lpVtbl->SetAccountInformation(This,pwszAccountName,pwszPassword)
    323 #define IScheduledWorkItem_GetAccountInformation(This,ppwszAccountName) (This)->lpVtbl->GetAccountInformation(This,ppwszAccountName)
    324 #endif
    325 #endif
    326   HRESULT WINAPI IScheduledWorkItem_CreateTrigger_Proxy(IScheduledWorkItem *This,WORD *piNewTrigger,ITaskTrigger **ppTrigger);
    327   void __RPC_STUB IScheduledWorkItem_CreateTrigger_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    328   HRESULT WINAPI IScheduledWorkItem_DeleteTrigger_Proxy(IScheduledWorkItem *This,WORD iTrigger);
    329   void __RPC_STUB IScheduledWorkItem_DeleteTrigger_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    330   HRESULT WINAPI IScheduledWorkItem_GetTriggerCount_Proxy(IScheduledWorkItem *This,WORD *pwCount);
    331   void __RPC_STUB IScheduledWorkItem_GetTriggerCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    332   HRESULT WINAPI IScheduledWorkItem_GetTrigger_Proxy(IScheduledWorkItem *This,WORD iTrigger,ITaskTrigger **ppTrigger);
    333   void __RPC_STUB IScheduledWorkItem_GetTrigger_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    334   HRESULT WINAPI IScheduledWorkItem_GetTriggerString_Proxy(IScheduledWorkItem *This,WORD iTrigger,LPWSTR *ppwszTrigger);
    335   void __RPC_STUB IScheduledWorkItem_GetTriggerString_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    336   HRESULT WINAPI IScheduledWorkItem_GetRunTimes_Proxy(IScheduledWorkItem *This,const LPSYSTEMTIME pstBegin,const LPSYSTEMTIME pstEnd,WORD *pCount,LPSYSTEMTIME *rgstTaskTimes);
    337   void __RPC_STUB IScheduledWorkItem_GetRunTimes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    338   HRESULT WINAPI IScheduledWorkItem_GetNextRunTime_Proxy(IScheduledWorkItem *This,SYSTEMTIME *pstNextRun);
    339   void __RPC_STUB IScheduledWorkItem_GetNextRunTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    340   HRESULT WINAPI IScheduledWorkItem_SetIdleWait_Proxy(IScheduledWorkItem *This,WORD wIdleMinutes,WORD wDeadlineMinutes);
    341   void __RPC_STUB IScheduledWorkItem_SetIdleWait_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    342   HRESULT WINAPI IScheduledWorkItem_GetIdleWait_Proxy(IScheduledWorkItem *This,WORD *pwIdleMinutes,WORD *pwDeadlineMinutes);
    343   void __RPC_STUB IScheduledWorkItem_GetIdleWait_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    344   HRESULT WINAPI IScheduledWorkItem_Run_Proxy(IScheduledWorkItem *This);
    345   void __RPC_STUB IScheduledWorkItem_Run_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    346   HRESULT WINAPI IScheduledWorkItem_Terminate_Proxy(IScheduledWorkItem *This);
    347   void __RPC_STUB IScheduledWorkItem_Terminate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    348   HRESULT WINAPI IScheduledWorkItem_EditWorkItem_Proxy(IScheduledWorkItem *This,HWND hParent,DWORD dwReserved);
    349   void __RPC_STUB IScheduledWorkItem_EditWorkItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    350   HRESULT WINAPI IScheduledWorkItem_GetMostRecentRunTime_Proxy(IScheduledWorkItem *This,SYSTEMTIME *pstLastRun);
    351   void __RPC_STUB IScheduledWorkItem_GetMostRecentRunTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    352   HRESULT WINAPI IScheduledWorkItem_GetStatus_Proxy(IScheduledWorkItem *This,HRESULT *phrStatus);
    353   void __RPC_STUB IScheduledWorkItem_GetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    354   HRESULT WINAPI IScheduledWorkItem_GetExitCode_Proxy(IScheduledWorkItem *This,DWORD *pdwExitCode);
    355   void __RPC_STUB IScheduledWorkItem_GetExitCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    356   HRESULT WINAPI IScheduledWorkItem_SetComment_Proxy(IScheduledWorkItem *This,LPCWSTR pwszComment);
    357   void __RPC_STUB IScheduledWorkItem_SetComment_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    358   HRESULT WINAPI IScheduledWorkItem_GetComment_Proxy(IScheduledWorkItem *This,LPWSTR *ppwszComment);
    359   void __RPC_STUB IScheduledWorkItem_GetComment_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    360   HRESULT WINAPI IScheduledWorkItem_SetCreator_Proxy(IScheduledWorkItem *This,LPCWSTR pwszCreator);
    361   void __RPC_STUB IScheduledWorkItem_SetCreator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    362   HRESULT WINAPI IScheduledWorkItem_GetCreator_Proxy(IScheduledWorkItem *This,LPWSTR *ppwszCreator);
    363   void __RPC_STUB IScheduledWorkItem_GetCreator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    364   HRESULT WINAPI IScheduledWorkItem_SetWorkItemData_Proxy(IScheduledWorkItem *This,WORD cbData,BYTE rgbData[]);
    365   void __RPC_STUB IScheduledWorkItem_SetWorkItemData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    366   HRESULT WINAPI IScheduledWorkItem_GetWorkItemData_Proxy(IScheduledWorkItem *This,WORD *pcbData,BYTE **prgbData);
    367   void __RPC_STUB IScheduledWorkItem_GetWorkItemData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    368   HRESULT WINAPI IScheduledWorkItem_SetErrorRetryCount_Proxy(IScheduledWorkItem *This,WORD wRetryCount);
    369   void __RPC_STUB IScheduledWorkItem_SetErrorRetryCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    370   HRESULT WINAPI IScheduledWorkItem_GetErrorRetryCount_Proxy(IScheduledWorkItem *This,WORD *pwRetryCount);
    371   void __RPC_STUB IScheduledWorkItem_GetErrorRetryCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    372   HRESULT WINAPI IScheduledWorkItem_SetErrorRetryInterval_Proxy(IScheduledWorkItem *This,WORD wRetryInterval);
    373   void __RPC_STUB IScheduledWorkItem_SetErrorRetryInterval_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    374   HRESULT WINAPI IScheduledWorkItem_GetErrorRetryInterval_Proxy(IScheduledWorkItem *This,WORD *pwRetryInterval);
    375   void __RPC_STUB IScheduledWorkItem_GetErrorRetryInterval_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    376   HRESULT WINAPI IScheduledWorkItem_SetFlags_Proxy(IScheduledWorkItem *This,DWORD dwFlags);
    377   void __RPC_STUB IScheduledWorkItem_SetFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    378   HRESULT WINAPI IScheduledWorkItem_GetFlags_Proxy(IScheduledWorkItem *This,DWORD *pdwFlags);
    379   void __RPC_STUB IScheduledWorkItem_GetFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    380   HRESULT WINAPI IScheduledWorkItem_SetAccountInformation_Proxy(IScheduledWorkItem *This,LPCWSTR pwszAccountName,LPCWSTR pwszPassword);
    381   void __RPC_STUB IScheduledWorkItem_SetAccountInformation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    382   HRESULT WINAPI IScheduledWorkItem_GetAccountInformation_Proxy(IScheduledWorkItem *This,LPWSTR *ppwszAccountName);
    383   void __RPC_STUB IScheduledWorkItem_GetAccountInformation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    384 #endif
    385 
    386   DEFINE_GUID(IID_ITask,0x148BD524,0xA2AB,0x11CE,0xB1,0x1F,0x00,0xAA,0x00,0x53,0x05,0x03);
    387 
    388   extern RPC_IF_HANDLE __MIDL_itf_mstask_0141_v0_0_c_ifspec;
    389   extern RPC_IF_HANDLE __MIDL_itf_mstask_0141_v0_0_s_ifspec;
    390 
    391 #ifndef __ITask_INTERFACE_DEFINED__
    392 #define __ITask_INTERFACE_DEFINED__
    393   EXTERN_C const IID IID_ITask;
    394 #if defined(__cplusplus) && !defined(CINTERFACE)
    395   struct ITask : public IScheduledWorkItem {
    396   public:
    397     virtual HRESULT WINAPI SetApplicationName(LPCWSTR pwszApplicationName) = 0;
    398     virtual HRESULT WINAPI GetApplicationName(LPWSTR *ppwszApplicationName) = 0;
    399     virtual HRESULT WINAPI SetParameters(LPCWSTR pwszParameters) = 0;
    400     virtual HRESULT WINAPI GetParameters(LPWSTR *ppwszParameters) = 0;
    401     virtual HRESULT WINAPI SetWorkingDirectory(LPCWSTR pwszWorkingDirectory) = 0;
    402     virtual HRESULT WINAPI GetWorkingDirectory(LPWSTR *ppwszWorkingDirectory) = 0;
    403     virtual HRESULT WINAPI SetPriority(DWORD dwPriority) = 0;
    404     virtual HRESULT WINAPI GetPriority(DWORD *pdwPriority) = 0;
    405     virtual HRESULT WINAPI SetTaskFlags(DWORD dwFlags) = 0;
    406     virtual HRESULT WINAPI GetTaskFlags(DWORD *pdwFlags) = 0;
    407     virtual HRESULT WINAPI SetMaxRunTime(DWORD dwMaxRunTimeMS) = 0;
    408     virtual HRESULT WINAPI GetMaxRunTime(DWORD *pdwMaxRunTimeMS) = 0;
    409   };
    410 #else
    411   typedef struct ITaskVtbl {
    412     BEGIN_INTERFACE
    413       HRESULT (WINAPI *QueryInterface)(ITask *This,REFIID riid,void **ppvObject);
    414       ULONG (WINAPI *AddRef)(ITask *This);
    415       ULONG (WINAPI *Release)(ITask *This);
    416       HRESULT (WINAPI *CreateTrigger)(ITask *This,WORD *piNewTrigger,ITaskTrigger **ppTrigger);
    417       HRESULT (WINAPI *DeleteTrigger)(ITask *This,WORD iTrigger);
    418       HRESULT (WINAPI *GetTriggerCount)(ITask *This,WORD *pwCount);
    419       HRESULT (WINAPI *GetTrigger)(ITask *This,WORD iTrigger,ITaskTrigger **ppTrigger);
    420       HRESULT (WINAPI *GetTriggerString)(ITask *This,WORD iTrigger,LPWSTR *ppwszTrigger);
    421       HRESULT (WINAPI *GetRunTimes)(ITask *This,const LPSYSTEMTIME pstBegin,const LPSYSTEMTIME pstEnd,WORD *pCount,LPSYSTEMTIME *rgstTaskTimes);
    422       HRESULT (WINAPI *GetNextRunTime)(ITask *This,SYSTEMTIME *pstNextRun);
    423       HRESULT (WINAPI *SetIdleWait)(ITask *This,WORD wIdleMinutes,WORD wDeadlineMinutes);
    424       HRESULT (WINAPI *GetIdleWait)(ITask *This,WORD *pwIdleMinutes,WORD *pwDeadlineMinutes);
    425       HRESULT (WINAPI *Run)(ITask *This);
    426       HRESULT (WINAPI *Terminate)(ITask *This);
    427       HRESULT (WINAPI *EditWorkItem)(ITask *This,HWND hParent,DWORD dwReserved);
    428       HRESULT (WINAPI *GetMostRecentRunTime)(ITask *This,SYSTEMTIME *pstLastRun);
    429       HRESULT (WINAPI *GetStatus)(ITask *This,HRESULT *phrStatus);
    430       HRESULT (WINAPI *GetExitCode)(ITask *This,DWORD *pdwExitCode);
    431       HRESULT (WINAPI *SetComment)(ITask *This,LPCWSTR pwszComment);
    432       HRESULT (WINAPI *GetComment)(ITask *This,LPWSTR *ppwszComment);
    433       HRESULT (WINAPI *SetCreator)(ITask *This,LPCWSTR pwszCreator);
    434       HRESULT (WINAPI *GetCreator)(ITask *This,LPWSTR *ppwszCreator);
    435       HRESULT (WINAPI *SetWorkItemData)(ITask *This,WORD cbData,BYTE rgbData[]);
    436       HRESULT (WINAPI *GetWorkItemData)(ITask *This,WORD *pcbData,BYTE **prgbData);
    437       HRESULT (WINAPI *SetErrorRetryCount)(ITask *This,WORD wRetryCount);
    438       HRESULT (WINAPI *GetErrorRetryCount)(ITask *This,WORD *pwRetryCount);
    439       HRESULT (WINAPI *SetErrorRetryInterval)(ITask *This,WORD wRetryInterval);
    440       HRESULT (WINAPI *GetErrorRetryInterval)(ITask *This,WORD *pwRetryInterval);
    441       HRESULT (WINAPI *SetFlags)(ITask *This,DWORD dwFlags);
    442       HRESULT (WINAPI *GetFlags)(ITask *This,DWORD *pdwFlags);
    443       HRESULT (WINAPI *SetAccountInformation)(ITask *This,LPCWSTR pwszAccountName,LPCWSTR pwszPassword);
    444       HRESULT (WINAPI *GetAccountInformation)(ITask *This,LPWSTR *ppwszAccountName);
    445       HRESULT (WINAPI *SetApplicationName)(ITask *This,LPCWSTR pwszApplicationName);
    446       HRESULT (WINAPI *GetApplicationName)(ITask *This,LPWSTR *ppwszApplicationName);
    447       HRESULT (WINAPI *SetParameters)(ITask *This,LPCWSTR pwszParameters);
    448       HRESULT (WINAPI *GetParameters)(ITask *This,LPWSTR *ppwszParameters);
    449       HRESULT (WINAPI *SetWorkingDirectory)(ITask *This,LPCWSTR pwszWorkingDirectory);
    450       HRESULT (WINAPI *GetWorkingDirectory)(ITask *This,LPWSTR *ppwszWorkingDirectory);
    451       HRESULT (WINAPI *SetPriority)(ITask *This,DWORD dwPriority);
    452       HRESULT (WINAPI *GetPriority)(ITask *This,DWORD *pdwPriority);
    453       HRESULT (WINAPI *SetTaskFlags)(ITask *This,DWORD dwFlags);
    454       HRESULT (WINAPI *GetTaskFlags)(ITask *This,DWORD *pdwFlags);
    455       HRESULT (WINAPI *SetMaxRunTime)(ITask *This,DWORD dwMaxRunTimeMS);
    456       HRESULT (WINAPI *GetMaxRunTime)(ITask *This,DWORD *pdwMaxRunTimeMS);
    457     END_INTERFACE
    458   } ITaskVtbl;
    459   struct ITask {
    460     CONST_VTBL struct ITaskVtbl *lpVtbl;
    461   };
    462 #ifdef COBJMACROS
    463 #define ITask_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    464 #define ITask_AddRef(This) (This)->lpVtbl->AddRef(This)
    465 #define ITask_Release(This) (This)->lpVtbl->Release(This)
    466 #define ITask_CreateTrigger(This,piNewTrigger,ppTrigger) (This)->lpVtbl->CreateTrigger(This,piNewTrigger,ppTrigger)
    467 #define ITask_DeleteTrigger(This,iTrigger) (This)->lpVtbl->DeleteTrigger(This,iTrigger)
    468 #define ITask_GetTriggerCount(This,pwCount) (This)->lpVtbl->GetTriggerCount(This,pwCount)
    469 #define ITask_GetTrigger(This,iTrigger,ppTrigger) (This)->lpVtbl->GetTrigger(This,iTrigger,ppTrigger)
    470 #define ITask_GetTriggerString(This,iTrigger,ppwszTrigger) (This)->lpVtbl->GetTriggerString(This,iTrigger,ppwszTrigger)
    471 #define ITask_GetRunTimes(This,pstBegin,pstEnd,pCount,rgstTaskTimes) (This)->lpVtbl->GetRunTimes(This,pstBegin,pstEnd,pCount,rgstTaskTimes)
    472 #define ITask_GetNextRunTime(This,pstNextRun) (This)->lpVtbl->GetNextRunTime(This,pstNextRun)
    473 #define ITask_SetIdleWait(This,wIdleMinutes,wDeadlineMinutes) (This)->lpVtbl->SetIdleWait(This,wIdleMinutes,wDeadlineMinutes)
    474 #define ITask_GetIdleWait(This,pwIdleMinutes,pwDeadlineMinutes) (This)->lpVtbl->GetIdleWait(This,pwIdleMinutes,pwDeadlineMinutes)
    475 #define ITask_Run(This) (This)->lpVtbl->Run(This)
    476 #define ITask_Terminate(This) (This)->lpVtbl->Terminate(This)
    477 #define ITask_EditWorkItem(This,hParent,dwReserved) (This)->lpVtbl->EditWorkItem(This,hParent,dwReserved)
    478 #define ITask_GetMostRecentRunTime(This,pstLastRun) (This)->lpVtbl->GetMostRecentRunTime(This,pstLastRun)
    479 #define ITask_GetStatus(This,phrStatus) (This)->lpVtbl->GetStatus(This,phrStatus)
    480 #define ITask_GetExitCode(This,pdwExitCode) (This)->lpVtbl->GetExitCode(This,pdwExitCode)
    481 #define ITask_SetComment(This,pwszComment) (This)->lpVtbl->SetComment(This,pwszComment)
    482 #define ITask_GetComment(This,ppwszComment) (This)->lpVtbl->GetComment(This,ppwszComment)
    483 #define ITask_SetCreator(This,pwszCreator) (This)->lpVtbl->SetCreator(This,pwszCreator)
    484 #define ITask_GetCreator(This,ppwszCreator) (This)->lpVtbl->GetCreator(This,ppwszCreator)
    485 #define ITask_SetWorkItemData(This,cbData,rgbData) (This)->lpVtbl->SetWorkItemData(This,cbData,rgbData)
    486 #define ITask_GetWorkItemData(This,pcbData,prgbData) (This)->lpVtbl->GetWorkItemData(This,pcbData,prgbData)
    487 #define ITask_SetErrorRetryCount(This,wRetryCount) (This)->lpVtbl->SetErrorRetryCount(This,wRetryCount)
    488 #define ITask_GetErrorRetryCount(This,pwRetryCount) (This)->lpVtbl->GetErrorRetryCount(This,pwRetryCount)
    489 #define ITask_SetErrorRetryInterval(This,wRetryInterval) (This)->lpVtbl->SetErrorRetryInterval(This,wRetryInterval)
    490 #define ITask_GetErrorRetryInterval(This,pwRetryInterval) (This)->lpVtbl->GetErrorRetryInterval(This,pwRetryInterval)
    491 #define ITask_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
    492 #define ITask_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
    493 #define ITask_SetAccountInformation(This,pwszAccountName,pwszPassword) (This)->lpVtbl->SetAccountInformation(This,pwszAccountName,pwszPassword)
    494 #define ITask_GetAccountInformation(This,ppwszAccountName) (This)->lpVtbl->GetAccountInformation(This,ppwszAccountName)
    495 #define ITask_SetApplicationName(This,pwszApplicationName) (This)->lpVtbl->SetApplicationName(This,pwszApplicationName)
    496 #define ITask_GetApplicationName(This,ppwszApplicationName) (This)->lpVtbl->GetApplicationName(This,ppwszApplicationName)
    497 #define ITask_SetParameters(This,pwszParameters) (This)->lpVtbl->SetParameters(This,pwszParameters)
    498 #define ITask_GetParameters(This,ppwszParameters) (This)->lpVtbl->GetParameters(This,ppwszParameters)
    499 #define ITask_SetWorkingDirectory(This,pwszWorkingDirectory) (This)->lpVtbl->SetWorkingDirectory(This,pwszWorkingDirectory)
    500 #define ITask_GetWorkingDirectory(This,ppwszWorkingDirectory) (This)->lpVtbl->GetWorkingDirectory(This,ppwszWorkingDirectory)
    501 #define ITask_SetPriority(This,dwPriority) (This)->lpVtbl->SetPriority(This,dwPriority)
    502 #define ITask_GetPriority(This,pdwPriority) (This)->lpVtbl->GetPriority(This,pdwPriority)
    503 #define ITask_SetTaskFlags(This,dwFlags) (This)->lpVtbl->SetTaskFlags(This,dwFlags)
    504 #define ITask_GetTaskFlags(This,pdwFlags) (This)->lpVtbl->GetTaskFlags(This,pdwFlags)
    505 #define ITask_SetMaxRunTime(This,dwMaxRunTimeMS) (This)->lpVtbl->SetMaxRunTime(This,dwMaxRunTimeMS)
    506 #define ITask_GetMaxRunTime(This,pdwMaxRunTimeMS) (This)->lpVtbl->GetMaxRunTime(This,pdwMaxRunTimeMS)
    507 #endif
    508 #endif
    509   HRESULT WINAPI ITask_SetApplicationName_Proxy(ITask *This,LPCWSTR pwszApplicationName);
    510   void __RPC_STUB ITask_SetApplicationName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    511   HRESULT WINAPI ITask_GetApplicationName_Proxy(ITask *This,LPWSTR *ppwszApplicationName);
    512   void __RPC_STUB ITask_GetApplicationName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    513   HRESULT WINAPI ITask_SetParameters_Proxy(ITask *This,LPCWSTR pwszParameters);
    514   void __RPC_STUB ITask_SetParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    515   HRESULT WINAPI ITask_GetParameters_Proxy(ITask *This,LPWSTR *ppwszParameters);
    516   void __RPC_STUB ITask_GetParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    517   HRESULT WINAPI ITask_SetWorkingDirectory_Proxy(ITask *This,LPCWSTR pwszWorkingDirectory);
    518   void __RPC_STUB ITask_SetWorkingDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    519   HRESULT WINAPI ITask_GetWorkingDirectory_Proxy(ITask *This,LPWSTR *ppwszWorkingDirectory);
    520   void __RPC_STUB ITask_GetWorkingDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    521   HRESULT WINAPI ITask_SetPriority_Proxy(ITask *This,DWORD dwPriority);
    522   void __RPC_STUB ITask_SetPriority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    523   HRESULT WINAPI ITask_GetPriority_Proxy(ITask *This,DWORD *pdwPriority);
    524   void __RPC_STUB ITask_GetPriority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    525   HRESULT WINAPI ITask_SetTaskFlags_Proxy(ITask *This,DWORD dwFlags);
    526   void __RPC_STUB ITask_SetTaskFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    527   HRESULT WINAPI ITask_GetTaskFlags_Proxy(ITask *This,DWORD *pdwFlags);
    528   void __RPC_STUB ITask_GetTaskFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    529   HRESULT WINAPI ITask_SetMaxRunTime_Proxy(ITask *This,DWORD dwMaxRunTimeMS);
    530   void __RPC_STUB ITask_SetMaxRunTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    531   HRESULT WINAPI ITask_GetMaxRunTime_Proxy(ITask *This,DWORD *pdwMaxRunTimeMS);
    532   void __RPC_STUB ITask_GetMaxRunTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    533 #endif
    534 
    535   DEFINE_GUID(IID_IEnumWorkItems,0x148BD528,0xA2AB,0x11CE,0xB1,0x1F,0x00,0xAA,0x00,0x53,0x05,0x03);
    536 
    537   extern RPC_IF_HANDLE __MIDL_itf_mstask_0142_v0_0_c_ifspec;
    538   extern RPC_IF_HANDLE __MIDL_itf_mstask_0142_v0_0_s_ifspec;
    539 
    540 #ifndef __IEnumWorkItems_INTERFACE_DEFINED__
    541 #define __IEnumWorkItems_INTERFACE_DEFINED__
    542   EXTERN_C const IID IID_IEnumWorkItems;
    543 #if defined(__cplusplus) && !defined(CINTERFACE)
    544   struct IEnumWorkItems : public IUnknown {
    545   public:
    546     virtual HRESULT WINAPI Next(ULONG celt,LPWSTR **rgpwszNames,ULONG *pceltFetched) = 0;
    547     virtual HRESULT WINAPI Skip(ULONG celt) = 0;
    548     virtual HRESULT WINAPI Reset(void) = 0;
    549     virtual HRESULT WINAPI Clone(IEnumWorkItems **ppEnumWorkItems) = 0;
    550   };
    551 #else
    552   typedef struct IEnumWorkItemsVtbl {
    553     BEGIN_INTERFACE
    554       HRESULT (WINAPI *QueryInterface)(IEnumWorkItems *This,REFIID riid,void **ppvObject);
    555       ULONG (WINAPI *AddRef)(IEnumWorkItems *This);
    556       ULONG (WINAPI *Release)(IEnumWorkItems *This);
    557       HRESULT (WINAPI *Next)(IEnumWorkItems *This,ULONG celt,LPWSTR **rgpwszNames,ULONG *pceltFetched);
    558       HRESULT (WINAPI *Skip)(IEnumWorkItems *This,ULONG celt);
    559       HRESULT (WINAPI *Reset)(IEnumWorkItems *This);
    560       HRESULT (WINAPI *Clone)(IEnumWorkItems *This,IEnumWorkItems **ppEnumWorkItems);
    561     END_INTERFACE
    562   } IEnumWorkItemsVtbl;
    563   struct IEnumWorkItems {
    564     CONST_VTBL struct IEnumWorkItemsVtbl *lpVtbl;
    565   };
    566 #ifdef COBJMACROS
    567 #define IEnumWorkItems_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    568 #define IEnumWorkItems_AddRef(This) (This)->lpVtbl->AddRef(This)
    569 #define IEnumWorkItems_Release(This) (This)->lpVtbl->Release(This)
    570 #define IEnumWorkItems_Next(This,celt,rgpwszNames,pceltFetched) (This)->lpVtbl->Next(This,celt,rgpwszNames,pceltFetched)
    571 #define IEnumWorkItems_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
    572 #define IEnumWorkItems_Reset(This) (This)->lpVtbl->Reset(This)
    573 #define IEnumWorkItems_Clone(This,ppEnumWorkItems) (This)->lpVtbl->Clone(This,ppEnumWorkItems)
    574 #endif
    575 #endif
    576   HRESULT WINAPI IEnumWorkItems_Next_Proxy(IEnumWorkItems *This,ULONG celt,LPWSTR **rgpwszNames,ULONG *pceltFetched);
    577   void __RPC_STUB IEnumWorkItems_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    578   HRESULT WINAPI IEnumWorkItems_Skip_Proxy(IEnumWorkItems *This,ULONG celt);
    579   void __RPC_STUB IEnumWorkItems_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    580   HRESULT WINAPI IEnumWorkItems_Reset_Proxy(IEnumWorkItems *This);
    581   void __RPC_STUB IEnumWorkItems_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    582   HRESULT WINAPI IEnumWorkItems_Clone_Proxy(IEnumWorkItems *This,IEnumWorkItems **ppEnumWorkItems);
    583   void __RPC_STUB IEnumWorkItems_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    584 #endif
    585 
    586   DEFINE_GUID(IID_ITaskScheduler,0x148BD527,0xA2AB,0x11CE,0xB1,0x1F,0x00,0xAA,0x00,0x53,0x05,0x03);
    587 
    588   extern RPC_IF_HANDLE __MIDL_itf_mstask_0143_v0_0_c_ifspec;
    589   extern RPC_IF_HANDLE __MIDL_itf_mstask_0143_v0_0_s_ifspec;
    590 
    591 #ifndef __ITaskScheduler_INTERFACE_DEFINED__
    592 #define __ITaskScheduler_INTERFACE_DEFINED__
    593   EXTERN_C const IID IID_ITaskScheduler;
    594 #if defined(__cplusplus) && !defined(CINTERFACE)
    595   struct ITaskScheduler : public IUnknown {
    596   public:
    597     virtual HRESULT WINAPI SetTargetComputer(LPCWSTR pwszComputer) = 0;
    598     virtual HRESULT WINAPI GetTargetComputer(LPWSTR *ppwszComputer) = 0;
    599     virtual HRESULT WINAPI Enum(IEnumWorkItems **ppEnumWorkItems) = 0;
    600     virtual HRESULT WINAPI Activate(LPCWSTR pwszName,REFIID riid,IUnknown **ppUnk) = 0;
    601     virtual HRESULT WINAPI Delete(LPCWSTR pwszName) = 0;
    602     virtual HRESULT WINAPI NewWorkItem(LPCWSTR pwszTaskName,REFCLSID rclsid,REFIID riid,IUnknown **ppUnk) = 0;
    603     virtual HRESULT WINAPI AddWorkItem(LPCWSTR pwszTaskName,IScheduledWorkItem *pWorkItem) = 0;
    604     virtual HRESULT WINAPI IsOfType(LPCWSTR pwszName,REFIID riid) = 0;
    605   };
    606 #else
    607   typedef struct ITaskSchedulerVtbl {
    608     BEGIN_INTERFACE
    609       HRESULT (WINAPI *QueryInterface)(ITaskScheduler *This,REFIID riid,void **ppvObject);
    610       ULONG (WINAPI *AddRef)(ITaskScheduler *This);
    611       ULONG (WINAPI *Release)(ITaskScheduler *This);
    612       HRESULT (WINAPI *SetTargetComputer)(ITaskScheduler *This,LPCWSTR pwszComputer);
    613       HRESULT (WINAPI *GetTargetComputer)(ITaskScheduler *This,LPWSTR *ppwszComputer);
    614       HRESULT (WINAPI *Enum)(ITaskScheduler *This,IEnumWorkItems **ppEnumWorkItems);
    615       HRESULT (WINAPI *Activate)(ITaskScheduler *This,LPCWSTR pwszName,REFIID riid,IUnknown **ppUnk);
    616       HRESULT (WINAPI *Delete)(ITaskScheduler *This,LPCWSTR pwszName);
    617       HRESULT (WINAPI *NewWorkItem)(ITaskScheduler *This,LPCWSTR pwszTaskName,REFCLSID rclsid,REFIID riid,IUnknown **ppUnk);
    618       HRESULT (WINAPI *AddWorkItem)(ITaskScheduler *This,LPCWSTR pwszTaskName,IScheduledWorkItem *pWorkItem);
    619       HRESULT (WINAPI *IsOfType)(ITaskScheduler *This,LPCWSTR pwszName,REFIID riid);
    620     END_INTERFACE
    621   } ITaskSchedulerVtbl;
    622   struct ITaskScheduler {
    623     CONST_VTBL struct ITaskSchedulerVtbl *lpVtbl;
    624   };
    625 #ifdef COBJMACROS
    626 #define ITaskScheduler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    627 #define ITaskScheduler_AddRef(This) (This)->lpVtbl->AddRef(This)
    628 #define ITaskScheduler_Release(This) (This)->lpVtbl->Release(This)
    629 #define ITaskScheduler_SetTargetComputer(This,pwszComputer) (This)->lpVtbl->SetTargetComputer(This,pwszComputer)
    630 #define ITaskScheduler_GetTargetComputer(This,ppwszComputer) (This)->lpVtbl->GetTargetComputer(This,ppwszComputer)
    631 #define ITaskScheduler_Enum(This,ppEnumWorkItems) (This)->lpVtbl->Enum(This,ppEnumWorkItems)
    632 #define ITaskScheduler_Activate(This,pwszName,riid,ppUnk) (This)->lpVtbl->Activate(This,pwszName,riid,ppUnk)
    633 #define ITaskScheduler_Delete(This,pwszName) (This)->lpVtbl->Delete(This,pwszName)
    634 #define ITaskScheduler_NewWorkItem(This,pwszTaskName,rclsid,riid,ppUnk) (This)->lpVtbl->NewWorkItem(This,pwszTaskName,rclsid,riid,ppUnk)
    635 #define ITaskScheduler_AddWorkItem(This,pwszTaskName,pWorkItem) (This)->lpVtbl->AddWorkItem(This,pwszTaskName,pWorkItem)
    636 #define ITaskScheduler_IsOfType(This,pwszName,riid) (This)->lpVtbl->IsOfType(This,pwszName,riid)
    637 #endif
    638 #endif
    639   HRESULT WINAPI ITaskScheduler_SetTargetComputer_Proxy(ITaskScheduler *This,LPCWSTR pwszComputer);
    640   void __RPC_STUB ITaskScheduler_SetTargetComputer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    641   HRESULT WINAPI ITaskScheduler_GetTargetComputer_Proxy(ITaskScheduler *This,LPWSTR *ppwszComputer);
    642   void __RPC_STUB ITaskScheduler_GetTargetComputer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    643   HRESULT WINAPI ITaskScheduler_Enum_Proxy(ITaskScheduler *This,IEnumWorkItems **ppEnumWorkItems);
    644   void __RPC_STUB ITaskScheduler_Enum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    645   HRESULT WINAPI ITaskScheduler_Activate_Proxy(ITaskScheduler *This,LPCWSTR pwszName,REFIID riid,IUnknown **ppUnk);
    646   void __RPC_STUB ITaskScheduler_Activate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    647   HRESULT WINAPI ITaskScheduler_Delete_Proxy(ITaskScheduler *This,LPCWSTR pwszName);
    648   void __RPC_STUB ITaskScheduler_Delete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    649   HRESULT WINAPI ITaskScheduler_NewWorkItem_Proxy(ITaskScheduler *This,LPCWSTR pwszTaskName,REFCLSID rclsid,REFIID riid,IUnknown **ppUnk);
    650   void __RPC_STUB ITaskScheduler_NewWorkItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    651   HRESULT WINAPI ITaskScheduler_AddWorkItem_Proxy(ITaskScheduler *This,LPCWSTR pwszTaskName,IScheduledWorkItem *pWorkItem);
    652   void __RPC_STUB ITaskScheduler_AddWorkItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    653   HRESULT WINAPI ITaskScheduler_IsOfType_Proxy(ITaskScheduler *This,LPCWSTR pwszName,REFIID riid);
    654   void __RPC_STUB ITaskScheduler_IsOfType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    655 #endif
    656 
    657   EXTERN_C const CLSID CLSID_CTask;
    658   EXTERN_C const CLSID CLSID_CTaskScheduler;
    659 
    660   DEFINE_GUID(CLSID_CTask,0x148BD520,0xA2AB,0x11CE,0xB1,0x1F,0x00,0xAA,0x00,0x53,0x05,0x03);
    661   DEFINE_GUID(CLSID_CTaskScheduler,0x148BD52A,0xA2AB,0x11CE,0xB1,0x1F,0x00,0xAA,0x00,0x53,0x05,0x03);
    662 
    663   typedef struct _PSP *HPROPSHEETPAGE;
    664 
    665   typedef enum _TASKPAGE {
    666     TASKPAGE_TASK = 0,TASKPAGE_SCHEDULE = 1,TASKPAGE_SETTINGS = 2
    667   } TASKPAGE;
    668 
    669   DEFINE_GUID(IID_IProvideTaskPage,0x4086658a,0xcbbb,0x11cf,0xb6,0x04,0x00,0xc0,0x4f,0xd8,0xd5,0x65);
    670 
    671   extern RPC_IF_HANDLE __MIDL_itf_mstask_0144_v0_0_c_ifspec;
    672   extern RPC_IF_HANDLE __MIDL_itf_mstask_0144_v0_0_s_ifspec;
    673 
    674 #ifndef __IProvideTaskPage_INTERFACE_DEFINED__
    675 #define __IProvideTaskPage_INTERFACE_DEFINED__
    676   EXTERN_C const IID IID_IProvideTaskPage;
    677 #if defined(__cplusplus) && !defined(CINTERFACE)
    678   struct IProvideTaskPage : public IUnknown {
    679   public:
    680     virtual HRESULT WINAPI GetPage(TASKPAGE tpType,WINBOOL fPersistChanges,HPROPSHEETPAGE *phPage) = 0;
    681   };
    682 #else
    683   typedef struct IProvideTaskPageVtbl {
    684     BEGIN_INTERFACE
    685       HRESULT (WINAPI *QueryInterface)(IProvideTaskPage *This,REFIID riid,void **ppvObject);
    686       ULONG (WINAPI *AddRef)(IProvideTaskPage *This);
    687       ULONG (WINAPI *Release)(IProvideTaskPage *This);
    688       HRESULT (WINAPI *GetPage)(IProvideTaskPage *This,TASKPAGE tpType,WINBOOL fPersistChanges,HPROPSHEETPAGE *phPage);
    689     END_INTERFACE
    690   } IProvideTaskPageVtbl;
    691   struct IProvideTaskPage {
    692     CONST_VTBL struct IProvideTaskPageVtbl *lpVtbl;
    693   };
    694 #ifdef COBJMACROS
    695 #define IProvideTaskPage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    696 #define IProvideTaskPage_AddRef(This) (This)->lpVtbl->AddRef(This)
    697 #define IProvideTaskPage_Release(This) (This)->lpVtbl->Release(This)
    698 #define IProvideTaskPage_GetPage(This,tpType,fPersistChanges,phPage) (This)->lpVtbl->GetPage(This,tpType,fPersistChanges,phPage)
    699 #endif
    700 #endif
    701   HRESULT WINAPI IProvideTaskPage_GetPage_Proxy(IProvideTaskPage *This,TASKPAGE tpType,WINBOOL fPersistChanges,HPROPSHEETPAGE *phPage);
    702   void __RPC_STUB IProvideTaskPage_GetPage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    703 #endif
    704 
    705 #define ISchedulingAgent ITaskScheduler
    706 #define IEnumTasks IEnumWorkItems
    707 #define IID_ISchedulingAgent IID_ITaskScheduler
    708 #define CLSID_CSchedulingAgent CLSID_CTaskScheduler
    709 
    710   extern RPC_IF_HANDLE __MIDL_itf_mstask_0145_v0_0_c_ifspec;
    711   extern RPC_IF_HANDLE __MIDL_itf_mstask_0145_v0_0_s_ifspec;
    712 
    713 #ifdef __cplusplus
    714 }
    715 #endif
    716 #endif
    717