ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

mstask.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.