Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399/* * Task Scheduler Service interface * * Copyright (C) 2008 Google (Roy Shea) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * */import "oaidl.idl";import "oleidl.idl";#ifndef __WIDL__#define threading(model)#define progid(str)#define vi_progid(str)#endifcpp_quote("#define TASK_SUNDAY 0x1")cpp_quote("#define TASK_MONDAY 0x2")cpp_quote("#define TASK_TUESDAY 0x4")cpp_quote("#define TASK_WEDNESDAY 0x8")cpp_quote("#define TASK_THURSDAY 0x10")cpp_quote("#define TASK_FRIDAY 0x20")cpp_quote("#define TASK_SATURDAY 0x40")cpp_quote("#define TASK_FIRST_WEEK 1")cpp_quote("#define TASK_SECOND_WEEK 2")cpp_quote("#define TASK_THIRD_WEEK 3")cpp_quote("#define TASK_FOURTH_WEEK 4")cpp_quote("#define TASK_LAST_WEEK 5")cpp_quote("#define TASK_JANUARY 0x1")cpp_quote("#define TASK_FEBRUARY 0x2")cpp_quote("#define TASK_MARCH 0x4")cpp_quote("#define TASK_APRIL 0x8")cpp_quote("#define TASK_MAY 0x10")cpp_quote("#define TASK_JUNE 0x20")cpp_quote("#define TASK_JULY 0x40")cpp_quote("#define TASK_AUGUST 0x80")cpp_quote("#define TASK_SEPTEMBER 0x100")cpp_quote("#define TASK_OCTOBER 0x200")cpp_quote("#define TASK_NOVEMBER 0x400")cpp_quote("#define TASK_DECEMBER 0x800")cpp_quote("#define TASK_TRIGGER_FLAG_HAS_END_DATE 0x1")cpp_quote("#define TASK_TRIGGER_FLAG_KILL_AT_DURATION_END 0x2")cpp_quote("#define TASK_TRIGGER_FLAG_DISABLED 0x4")#ifdef _MSC_VERcpp_quote("DEFINE_GUID(CLSID_CTaskScheduler, 0x148bd52a, 0xa2ab, 0x11ce, 0xb1,0x1f, 0x00,0xaa,0x00,0x53,0x05,0x03);")cpp_quote("DEFINE_GUID(CLSID_CTask, 0x148bd520, 0xa2ab, 0x11ce, 0xb1,0x1f, 0x00,0xaa,0x00,0x53,0x05,0x03);")#endif[ local, object, uuid(148BD528-A2AB-11CE-B11F-00AA00530503), pointer_default(unique)]interface IEnumWorkItems : IUnknown{ HRESULT Next( [in] ULONG celt, [out] LPWSTR **rgpwszNames, [out] ULONG *pceltFetched); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IEnumWorkItems **ppEnumWorkItems);}cpp_quote("#ifndef _HPROPSHEETPAGE_DEFINED")typedef struct _PSP *HPROPSHEETPAGE;cpp_quote("#define _HPROPSHEETPAGE_DEFINED")cpp_quote("#endif")[ local, object, uuid(4086658a-cbbb-11cf-b604-00c04fd8d565), pointer_default(unique)]interface IProvideTaskPage : IUnknown{ typedef enum _TASKPAGE { TASKPAGE_TASK = 0, TASKPAGE_SCHEDULE = 1, TASKPAGE_SETTINGS = 2 } TASKPAGE; HRESULT GetPage( [in] TASKPAGE tpType, [in] BOOL fPersistChanges, [out] HPROPSHEETPAGE *phPage);}[ local, object, uuid(148BD52B-A2AB-11CE-B11F-00AA00530503), pointer_default(unique)]interface ITaskTrigger : IUnknown{ typedef enum _TASK_TRIGGER_TYPE { TASK_TIME_TRIGGER_ONCE = 0, TASK_TIME_TRIGGER_DAILY = 1, TASK_TIME_TRIGGER_WEEKLY = 2, TASK_TIME_TRIGGER_MONTHLYDATE = 3, TASK_TIME_TRIGGER_MONTHLYDOW = 4, TASK_EVENT_TRIGGER_ON_IDLE = 5, TASK_EVENT_TRIGGER_AT_SYSTEMSTART = 6, TASK_EVENT_TRIGGER_AT_LOGON = 7 } TASK_TRIGGER_TYPE, *PTASK_TRIGGER_TYPE; typedef struct _DAILY { WORD DaysInterval; } DAILY; typedef struct _WEEKLY { WORD WeeksInterval; WORD rgfDaysOfTheWeek; } WEEKLY; typedef struct _MONTHLYDATE { DWORD rgfDays; WORD rgfMonths; } MONTHLYDATE; typedef struct _MONTHLYDOW { WORD wWhichWeek; WORD rgfDaysOfTheWeek; WORD rgfMonths; } MONTHLYDOW; typedef union _TRIGGER_TYPE_UNION { DAILY Daily; WEEKLY Weekly; MONTHLYDATE MonthlyDate; MONTHLYDOW MonthlyDOW; } TRIGGER_TYPE_UNION; typedef struct _TASK_TRIGGER { WORD cbTriggerSize; WORD Reserved1; WORD wBeginYear; WORD wBeginMonth; WORD wBeginDay; WORD wEndYear; WORD wEndMonth; WORD wEndDay; WORD wStartHour; WORD wStartMinute; DWORD MinutesDuration; DWORD MinutesInterval; DWORD rgFlags; TASK_TRIGGER_TYPE TriggerType; TRIGGER_TYPE_UNION Type; WORD Reserved2; WORD wRandomMinutesInterval; } TASK_TRIGGER, *PTASK_TRIGGER; HRESULT SetTrigger( [in] const PTASK_TRIGGER pTrigger); HRESULT GetTrigger( [out] PTASK_TRIGGER pTrigger); HRESULT GetTriggerString( [out] LPWSTR *ppwszTrigger);}[ local, object, uuid(a6b952f0-a4b1-11d0-997d-00aa006887ec), pointer_default(unique)]interface IScheduledWorkItem : IUnknown{ HRESULT CreateTrigger( [out] WORD *piNewTrigger, [out] ITaskTrigger **ppTrigger); HRESULT DeleteTrigger( [in] WORD iTrigger); HRESULT GetTriggerCount( [out] WORD *plCount); HRESULT GetTrigger( [in] WORD iTrigger, [out] ITaskTrigger **ppTrigger); HRESULT GetTriggerString( [in] WORD iTrigger, [out] LPWSTR *ppwszTrigger); HRESULT GetRunTimes( [in] const LPSYSTEMTIME pstBegin, [in] const LPSYSTEMTIME pstEnd, [in, out] WORD *pCount, [out] LPSYSTEMTIME *rgstTaskTimes); HRESULT GetNextRunTime( [out] SYSTEMTIME *pstNextRun); HRESULT SetIdleWait( [in] WORD wIdleMinutes, [in] WORD wDeadlineMinutes); HRESULT GetIdleWait( [out] WORD *pwIdleMinutes, [out] WORD *pwDeadlineMinutes); HRESULT Run(); HRESULT Terminate(); HRESULT EditWorkItem( [in] HWND hParent, [in] DWORD dwReserved); HRESULT GetMostRecentRunTime( [out] SYSTEMTIME *pstLastRun); HRESULT GetStatus( [out] HRESULT *phrStatus); HRESULT GetExitCode( [out] DWORD *pdwExitCode); HRESULT SetComment( [in] LPCWSTR pwszComment); HRESULT GetComment( [out] LPWSTR *ppwszComment); HRESULT SetCreator( LPCWSTR pwszCreator); HRESULT GetCreator( [out] LPWSTR *ppwszCreator); HRESULT SetWorkItemData( [in] WORD cBytes, [in] BYTE rgbData[]); HRESULT GetWorkItemData( [out] WORD *pcBytes, [out] BYTE **ppBytes); HRESULT SetErrorRetryCount( WORD wRetryCount); HRESULT GetErrorRetryCount( [out] WORD *pwRetryCount); HRESULT SetErrorRetryInterval( WORD wRetryInterval); HRESULT GetErrorRetryInterval( [out] WORD *pwRetryInterval); HRESULT SetFlags( DWORD dwFlags); HRESULT GetFlags( [out] DWORD *pdwFlags); HRESULT SetAccountInformation( [in] LPCWSTR pwszAccountName, [in] LPCWSTR pwszPassword); HRESULT GetAccountInformation( [out] LPWSTR *ppwszAccountName);}[ local, object, uuid(148BD524-A2AB-11CE-B11F-00AA00530503), pointer_default(unique)]interface ITask : IScheduledWorkItem{ HRESULT SetApplicationName( [in] LPCWSTR pwszApplicationName); HRESULT GetApplicationName( [out] LPWSTR *ppwszApplicationName); HRESULT SetParameters( [in] LPCWSTR pwszParameters); HRESULT GetParameters( [out] LPWSTR *ppwszParameters); HRESULT SetWorkingDirectory( [in] LPCWSTR pwszWorkingDirectory); HRESULT GetWorkingDirectory( [in] LPWSTR *ppwszWorkingDirectory); HRESULT SetPriority( [in] DWORD dwPriority); HRESULT GetPriority( [out] DWORD *pdwPriority); HRESULT SetTaskFlags( [in] DWORD dwFlags); HRESULT GetTaskFlags( [out] DWORD *pdwFlags); HRESULT SetMaxRunTime( [in] DWORD dwMaxRunTime); HRESULT GetMaxRunTime( [out] DWORD *pdwMaxRunTime);}[ local, object, uuid(148BD527-A2AB-11CE-B11F-00AA00530503), pointer_default(unique)]interface ITaskScheduler : IUnknown{ HRESULT SetTargetComputer( [in] LPCWSTR pwszComputer); HRESULT GetTargetComputer( [out] LPWSTR *ppwszComputer); HRESULT Enum( [out] IEnumWorkItems **ppEnumTasks); HRESULT Activate( [in] LPCWSTR pwszName, [in] REFIID riid, [out] IUnknown **ppunk); HRESULT Delete( [in] LPCWSTR pwszName); HRESULT NewWorkItem( [in] LPCWSTR pwszTaskName, [in] REFCLSID rclsid, [in] REFIID riid, [out] IUnknown **ppunk); HRESULT AddWorkItem( [in] LPCWSTR pwszTaskName, [in] IScheduledWorkItem *pWorkItem); HRESULT IsOfType( [in] LPCWSTR pwszName, [in] REFIID riid);}[ threading(both), uuid(148BD52A-A2AB-11CE-B11F-00AA00530503)]coclass CTaskScheduler{ [default] interface ITaskScheduler;};[ threading(both), uuid(148BD520-A2AB-11CE-B11F-00AA00530503)]coclass CTask{ [default] interface ITask;};