include: Add header for mstask.

This commit is contained in:
Roy Shea 2008-07-10 12:48:08 -07:00 committed by Alexandre Julliard
parent 61ba32c036
commit 7c74ff3bbb
6 changed files with 376 additions and 0 deletions

1
.gitignore vendored
View File

@ -151,6 +151,7 @@ include/mscoree.h
include/mshtmhst.h include/mshtmhst.h
include/mshtml.h include/mshtml.h
include/msinkaut.h include/msinkaut.h
include/mstask.h
include/msxml.h include/msxml.h
include/msxml2.h include/msxml2.h
include/netfw.h include/netfw.h

View File

@ -41,6 +41,7 @@ IDL_H_SRCS = \
mshtmhst.idl \ mshtmhst.idl \
mshtml.idl \ mshtml.idl \
msinkaut.idl \ msinkaut.idl \
mstask.idl \
msxml.idl \ msxml.idl \
msxml2.idl \ msxml2.idl \
netfw.idl \ netfw.idl \

354
include/mstask.idl Normal file
View File

@ -0,0 +1,354 @@
/*
* 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";
[
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;
};

View File

@ -44,7 +44,10 @@ static const WCHAR WC_PROPSHEETW[] = { 'S','y','s',
struct _PROPSHEETPAGEA; /** need to forward declare those structs **/ struct _PROPSHEETPAGEA; /** need to forward declare those structs **/
struct _PROPSHEETPAGEW; struct _PROPSHEETPAGEW;
struct _PSP; struct _PSP;
#ifndef _HPROPSHEETPAGE_DEFINED
#define _HPROPSHEETPAGE_DEFINED
typedef struct _PSP *HPROPSHEETPAGE; typedef struct _PSP *HPROPSHEETPAGE;
#endif /* _HPROPSHEETPAGE_DEFINED */
typedef UINT (CALLBACK *LPFNPSPCALLBACKA)(HWND, UINT, struct _PROPSHEETPAGEA*); typedef UINT (CALLBACK *LPFNPSPCALLBACKA)(HWND, UINT, struct _PROPSHEETPAGEA*);

View File

@ -502,6 +502,8 @@ typedef struct tagMEMORYSTATUSEX {
#include <poppack.h> #include <poppack.h>
#ifndef _SYSTEMTIME_
#define _SYSTEMTIME_
typedef struct _SYSTEMTIME{ typedef struct _SYSTEMTIME{
WORD wYear; WORD wYear;
WORD wMonth; WORD wMonth;
@ -512,6 +514,7 @@ typedef struct _SYSTEMTIME{
WORD wSecond; WORD wSecond;
WORD wMilliseconds; WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME; } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
#endif /* _SYSTEMTIME_ */
/* The 'overlapped' data structure used by async I/O functions. /* The 'overlapped' data structure used by async I/O functions.
*/ */

View File

@ -207,6 +207,20 @@ typedef struct tagLOGPALETTE
} LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE; } LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE;
cpp_quote("#endif") cpp_quote("#endif")
cpp_quote("#ifndef _SYSTEMTIME_")
cpp_quote("#define _SYSTEMTIME_")
typedef struct _SYSTEMTIME{
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
cpp_quote("#endif")
cpp_quote("#ifndef _FILETIME_") cpp_quote("#ifndef _FILETIME_")
cpp_quote("#define _FILETIME_") cpp_quote("#define _FILETIME_")
typedef struct _FILETIME { typedef struct _FILETIME {