Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenmstask.idl
Go to the documentation of this file.
00001 /* 00002 * Task Scheduler Service interface 00003 * 00004 * Copyright (C) 2008 Google (Roy Shea) 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00019 * 00020 */ 00021 00022 import "oaidl.idl"; 00023 import "oleidl.idl"; 00024 00025 #ifndef __WIDL__ 00026 #define threading(model) 00027 #define progid(str) 00028 #define vi_progid(str) 00029 #endif 00030 00031 cpp_quote("#define TASK_SUNDAY 0x1") 00032 cpp_quote("#define TASK_MONDAY 0x2") 00033 cpp_quote("#define TASK_TUESDAY 0x4") 00034 cpp_quote("#define TASK_WEDNESDAY 0x8") 00035 cpp_quote("#define TASK_THURSDAY 0x10") 00036 cpp_quote("#define TASK_FRIDAY 0x20") 00037 cpp_quote("#define TASK_SATURDAY 0x40") 00038 00039 cpp_quote("#define TASK_FIRST_WEEK 1") 00040 cpp_quote("#define TASK_SECOND_WEEK 2") 00041 cpp_quote("#define TASK_THIRD_WEEK 3") 00042 cpp_quote("#define TASK_FOURTH_WEEK 4") 00043 cpp_quote("#define TASK_LAST_WEEK 5") 00044 00045 cpp_quote("#define TASK_JANUARY 0x1") 00046 cpp_quote("#define TASK_FEBRUARY 0x2") 00047 cpp_quote("#define TASK_MARCH 0x4") 00048 cpp_quote("#define TASK_APRIL 0x8") 00049 cpp_quote("#define TASK_MAY 0x10") 00050 cpp_quote("#define TASK_JUNE 0x20") 00051 cpp_quote("#define TASK_JULY 0x40") 00052 cpp_quote("#define TASK_AUGUST 0x80") 00053 cpp_quote("#define TASK_SEPTEMBER 0x100") 00054 cpp_quote("#define TASK_OCTOBER 0x200") 00055 cpp_quote("#define TASK_NOVEMBER 0x400") 00056 cpp_quote("#define TASK_DECEMBER 0x800") 00057 00058 cpp_quote("#define TASK_TRIGGER_FLAG_HAS_END_DATE 0x1") 00059 cpp_quote("#define TASK_TRIGGER_FLAG_KILL_AT_DURATION_END 0x2") 00060 cpp_quote("#define TASK_TRIGGER_FLAG_DISABLED 0x4") 00061 00062 #ifdef _MSC_VER 00063 cpp_quote("DEFINE_GUID(CLSID_CTaskScheduler, 0x148bd52a, 0xa2ab, 0x11ce, 0xb1,0x1f, 0x00,0xaa,0x00,0x53,0x05,0x03);") 00064 cpp_quote("DEFINE_GUID(CLSID_CTask, 0x148bd520, 0xa2ab, 0x11ce, 0xb1,0x1f, 0x00,0xaa,0x00,0x53,0x05,0x03);") 00065 #endif 00066 00067 [ 00068 local, 00069 object, 00070 uuid(148BD528-A2AB-11CE-B11F-00AA00530503), 00071 pointer_default(unique) 00072 ] 00073 interface IEnumWorkItems : IUnknown 00074 { 00075 HRESULT Next( 00076 [in] ULONG celt, 00077 [out] LPWSTR **rgpwszNames, 00078 [out] ULONG *pceltFetched); 00079 00080 HRESULT Skip( 00081 [in] ULONG celt); 00082 00083 HRESULT Reset(); 00084 00085 HRESULT Clone( 00086 [out] IEnumWorkItems **ppEnumWorkItems); 00087 } 00088 00089 cpp_quote("#ifndef _HPROPSHEETPAGE_DEFINED") 00090 typedef struct _PSP *HPROPSHEETPAGE; 00091 cpp_quote("#define _HPROPSHEETPAGE_DEFINED") 00092 cpp_quote("#endif") 00093 00094 [ 00095 local, 00096 object, 00097 uuid(4086658a-cbbb-11cf-b604-00c04fd8d565), 00098 pointer_default(unique) 00099 ] 00100 interface IProvideTaskPage : IUnknown 00101 { 00102 typedef enum _TASKPAGE { 00103 TASKPAGE_TASK = 0, 00104 TASKPAGE_SCHEDULE = 1, 00105 TASKPAGE_SETTINGS = 2 00106 } TASKPAGE; 00107 00108 HRESULT GetPage( 00109 [in] TASKPAGE tpType, 00110 [in] BOOL fPersistChanges, 00111 [out] HPROPSHEETPAGE *phPage); 00112 } 00113 00114 [ 00115 local, 00116 object, 00117 uuid(148BD52B-A2AB-11CE-B11F-00AA00530503), 00118 pointer_default(unique) 00119 ] 00120 interface ITaskTrigger : IUnknown 00121 { 00122 typedef enum _TASK_TRIGGER_TYPE { 00123 TASK_TIME_TRIGGER_ONCE = 0, 00124 TASK_TIME_TRIGGER_DAILY = 1, 00125 TASK_TIME_TRIGGER_WEEKLY = 2, 00126 TASK_TIME_TRIGGER_MONTHLYDATE = 3, 00127 TASK_TIME_TRIGGER_MONTHLYDOW = 4, 00128 TASK_EVENT_TRIGGER_ON_IDLE = 5, 00129 TASK_EVENT_TRIGGER_AT_SYSTEMSTART = 6, 00130 TASK_EVENT_TRIGGER_AT_LOGON = 7 00131 } TASK_TRIGGER_TYPE, *PTASK_TRIGGER_TYPE; 00132 00133 typedef struct _DAILY { 00134 WORD DaysInterval; 00135 } DAILY; 00136 00137 typedef struct _WEEKLY { 00138 WORD WeeksInterval; 00139 WORD rgfDaysOfTheWeek; 00140 } WEEKLY; 00141 00142 typedef struct _MONTHLYDATE { 00143 DWORD rgfDays; 00144 WORD rgfMonths; 00145 } MONTHLYDATE; 00146 00147 typedef struct _MONTHLYDOW { 00148 WORD wWhichWeek; 00149 WORD rgfDaysOfTheWeek; 00150 WORD rgfMonths; 00151 } MONTHLYDOW; 00152 00153 typedef union _TRIGGER_TYPE_UNION { 00154 DAILY Daily; 00155 WEEKLY Weekly; 00156 MONTHLYDATE MonthlyDate; 00157 MONTHLYDOW MonthlyDOW; 00158 } TRIGGER_TYPE_UNION; 00159 00160 typedef struct _TASK_TRIGGER { 00161 WORD cbTriggerSize; 00162 WORD Reserved1; 00163 WORD wBeginYear; 00164 WORD wBeginMonth; 00165 WORD wBeginDay; 00166 WORD wEndYear; 00167 WORD wEndMonth; 00168 WORD wEndDay; 00169 WORD wStartHour; 00170 WORD wStartMinute; 00171 DWORD MinutesDuration; 00172 DWORD MinutesInterval; 00173 DWORD rgFlags; 00174 TASK_TRIGGER_TYPE TriggerType; 00175 TRIGGER_TYPE_UNION Type; 00176 WORD Reserved2; 00177 WORD wRandomMinutesInterval; 00178 } TASK_TRIGGER, *PTASK_TRIGGER; 00179 00180 HRESULT SetTrigger( 00181 [in] const PTASK_TRIGGER pTrigger); 00182 00183 HRESULT GetTrigger( 00184 [out] PTASK_TRIGGER pTrigger); 00185 00186 HRESULT GetTriggerString( 00187 [out] LPWSTR *ppwszTrigger); 00188 } 00189 00190 [ 00191 local, 00192 object, 00193 uuid(a6b952f0-a4b1-11d0-997d-00aa006887ec), 00194 pointer_default(unique) 00195 ] 00196 interface IScheduledWorkItem : IUnknown 00197 { 00198 HRESULT CreateTrigger( 00199 [out] WORD *piNewTrigger, 00200 [out] ITaskTrigger **ppTrigger); 00201 00202 HRESULT DeleteTrigger( 00203 [in] WORD iTrigger); 00204 00205 HRESULT GetTriggerCount( 00206 [out] WORD *plCount); 00207 00208 HRESULT GetTrigger( 00209 [in] WORD iTrigger, 00210 [out] ITaskTrigger **ppTrigger); 00211 00212 HRESULT GetTriggerString( 00213 [in] WORD iTrigger, 00214 [out] LPWSTR *ppwszTrigger); 00215 00216 HRESULT GetRunTimes( 00217 [in] const LPSYSTEMTIME pstBegin, 00218 [in] const LPSYSTEMTIME pstEnd, 00219 [in, out] WORD *pCount, 00220 [out] LPSYSTEMTIME *rgstTaskTimes); 00221 00222 HRESULT GetNextRunTime( 00223 [out] SYSTEMTIME *pstNextRun); 00224 00225 HRESULT SetIdleWait( 00226 [in] WORD wIdleMinutes, 00227 [in] WORD wDeadlineMinutes); 00228 00229 HRESULT GetIdleWait( 00230 [out] WORD *pwIdleMinutes, 00231 [out] WORD *pwDeadlineMinutes); 00232 00233 HRESULT Run(); 00234 00235 HRESULT Terminate(); 00236 00237 HRESULT EditWorkItem( 00238 [in] HWND hParent, 00239 [in] DWORD dwReserved); 00240 00241 HRESULT GetMostRecentRunTime( 00242 [out] SYSTEMTIME *pstLastRun); 00243 00244 HRESULT GetStatus( 00245 [out] HRESULT *phrStatus); 00246 00247 HRESULT GetExitCode( 00248 [out] DWORD *pdwExitCode); 00249 00250 HRESULT SetComment( 00251 [in] LPCWSTR pwszComment); 00252 00253 HRESULT GetComment( 00254 [out] LPWSTR *ppwszComment); 00255 00256 HRESULT SetCreator( 00257 LPCWSTR pwszCreator); 00258 00259 HRESULT GetCreator( 00260 [out] LPWSTR *ppwszCreator); 00261 00262 HRESULT SetWorkItemData( 00263 [in] WORD cBytes, 00264 [in] BYTE rgbData[]); 00265 00266 HRESULT GetWorkItemData( 00267 [out] WORD *pcBytes, 00268 [out] BYTE **ppBytes); 00269 00270 HRESULT SetErrorRetryCount( 00271 WORD wRetryCount); 00272 00273 HRESULT GetErrorRetryCount( 00274 [out] WORD *pwRetryCount); 00275 00276 HRESULT SetErrorRetryInterval( 00277 WORD wRetryInterval); 00278 00279 HRESULT GetErrorRetryInterval( 00280 [out] WORD *pwRetryInterval); 00281 00282 HRESULT SetFlags( 00283 DWORD dwFlags); 00284 00285 HRESULT GetFlags( 00286 [out] DWORD *pdwFlags); 00287 00288 HRESULT SetAccountInformation( 00289 [in] LPCWSTR pwszAccountName, 00290 [in] LPCWSTR pwszPassword); 00291 00292 HRESULT GetAccountInformation( 00293 [out] LPWSTR *ppwszAccountName); 00294 } 00295 00296 [ 00297 local, 00298 object, 00299 uuid(148BD524-A2AB-11CE-B11F-00AA00530503), 00300 pointer_default(unique) 00301 ] 00302 interface ITask : IScheduledWorkItem 00303 { 00304 HRESULT SetApplicationName( 00305 [in] LPCWSTR pwszApplicationName); 00306 00307 HRESULT GetApplicationName( 00308 [out] LPWSTR *ppwszApplicationName); 00309 00310 HRESULT SetParameters( 00311 [in] LPCWSTR pwszParameters); 00312 00313 HRESULT GetParameters( 00314 [out] LPWSTR *ppwszParameters); 00315 00316 HRESULT SetWorkingDirectory( 00317 [in] LPCWSTR pwszWorkingDirectory); 00318 00319 HRESULT GetWorkingDirectory( 00320 [in] LPWSTR *ppwszWorkingDirectory); 00321 00322 HRESULT SetPriority( 00323 [in] DWORD dwPriority); 00324 00325 HRESULT GetPriority( 00326 [out] DWORD *pdwPriority); 00327 00328 HRESULT SetTaskFlags( 00329 [in] DWORD dwFlags); 00330 00331 HRESULT GetTaskFlags( 00332 [out] DWORD *pdwFlags); 00333 00334 HRESULT SetMaxRunTime( 00335 [in] DWORD dwMaxRunTime); 00336 00337 HRESULT GetMaxRunTime( 00338 [out] DWORD *pdwMaxRunTime); 00339 } 00340 00341 [ 00342 local, 00343 object, 00344 uuid(148BD527-A2AB-11CE-B11F-00AA00530503), 00345 pointer_default(unique) 00346 ] 00347 interface ITaskScheduler : IUnknown 00348 { 00349 HRESULT SetTargetComputer( 00350 [in] LPCWSTR pwszComputer); 00351 00352 HRESULT GetTargetComputer( 00353 [out] LPWSTR *ppwszComputer); 00354 00355 HRESULT Enum( 00356 [out] IEnumWorkItems **ppEnumTasks); 00357 00358 HRESULT Activate( 00359 [in] LPCWSTR pwszName, 00360 [in] REFIID riid, 00361 [out] IUnknown **ppunk); 00362 00363 HRESULT Delete( 00364 [in] LPCWSTR pwszName); 00365 00366 HRESULT NewWorkItem( 00367 [in] LPCWSTR pwszTaskName, 00368 [in] REFCLSID rclsid, 00369 [in] REFIID riid, 00370 [out] IUnknown **ppunk); 00371 00372 HRESULT AddWorkItem( 00373 [in] LPCWSTR pwszTaskName, 00374 [in] IScheduledWorkItem *pWorkItem); 00375 00376 HRESULT IsOfType( 00377 [in] LPCWSTR pwszName, 00378 [in] REFIID riid); 00379 } 00380 00381 [ 00382 threading(both), 00383 uuid(148BD52A-A2AB-11CE-B11F-00AA00530503) 00384 ] 00385 coclass CTaskScheduler 00386 { 00387 [default] interface ITaskScheduler; 00388 }; 00389 00390 00391 [ 00392 threading(both), 00393 uuid(148BD520-A2AB-11CE-B11F-00AA00530503) 00394 ] 00395 coclass CTask 00396 { 00397 [default] interface ITask; 00398 }; Generated on Sun May 27 2012 04:31:57 for ReactOS by
1.7.6.1
|