+++ /dev/null
-/*
- * 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)
-#endif
-
-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")
-
-#ifdef _MSC_VER
-cpp_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;
-};