/include/mstask.idl
IDL | 385 lines | 291 code | 74 blank | 20 comment | 0 complexity | 1b044f264f6adababeb07bd85ad1da87 MD5 | raw file
- /*
- * 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";
- cpp_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")
- [
- 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);
- }
- [
- uuid(148BD52A-A2AB-11CE-B11F-00AA00530503)
- ]
- coclass CTaskScheduler
- {
- [default] interface ITaskScheduler;
- };
- [
- uuid(148BD520-A2AB-11CE-B11F-00AA00530503)
- ]
- coclass CTask
- {
- [default] interface ITask;
- };