// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0 > or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT >, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
use ctypes::{c_long, c_short};
use shared::minwindef::{DWORD, INT};
use shared::wtypes::{BSTR, DATE, VARIANT_BOOL};
use um::minwinbase::SYSTEMTIME;
use um::oaidl::{IDispatch, IDispatchVtbl, SAFEARRAY, VARIANT};
use um::unknwnbase::{IUnknown, IUnknownVtbl, LPUNKNOWN};
use um::winnt::{HRESULT, LONG};
RIDL!{
#[ uuid(
0 x0f87369f,
0 xa4e5,
0 x4cfc,
0 xbd,
0 x3e,
0 x73,
0 xe6,
0 x15,
0 x45,
0 x72,
0 xdd)]
class TaskScheduler;}
RIDL!{
#[ uuid(
0 xf2a69db7,
0 xda2c,
0 x4352,
0 x90,
0 x66,
0 x86,
0 xfe,
0 xe6,
0 xda,
0 xca,
0 xc9)]
class TaskHandlerPS;}
RIDL!{
#[ uuid(
0 x9f15266d,
0 xd7ba,
0 x48f0,
0 x93,
0 xc1,
0 xe6,
0 x89,
0 x5f,
0 x6f,
0 xe5,
0 xac)]
class TaskHandlerStatusPS;}
RIDL!{
#[ uuid(
0 x79184a66,
0 x8664,
0 x423f,
0 x97,
0 xf1,
0 x63,
0 x73,
0 x56,
0 xa5,
0 xd8,
0 x12)]
interface ITaskFolderCollection(ITaskFolderCollectionVtbl): IDispatch(IDispatchVtb
l) {
fn get_Count(
pCount: *mut LONG,
) -> HRESULT,
fn get_Item(
index: VARIANT,
ppFolder: *mut *mut ITaskFolder,
) -> HRESULT,
fn get__NewEnum(
ppEnum: *mut LPUNKNOWN,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x8cfac062, 0 xa080, 0 x4c15, 0 x9a, 0 x88, 0 xaa, 0 x7c, 0 x2a, 0 xf8, 0 x0d, 0 xfc)]
interface ITaskFolder(ITaskFolderVtbl): IDispatch(IDispatchVtbl) {
fn get_Name(
pName: *mut BSTR,
) -> HRESULT,
fn get_Path(
pPath: *mut BSTR,
) -> HRESULT,
fn GetFolder(
Path: BSTR,
ppFolder: *mut *mut ITaskFolder,
) -> HRESULT,
fn GetFolders(
flags: LONG,
ppFolders: *mut *mut ITaskFolderCollection,
) -> HRESULT,
fn CreateFolder(
subFolderName: BSTR,
sddl: VARIANT,
ppFolder: *mut *mut ITaskFolder,
) -> HRESULT,
fn DeleteFolder(
subFolderName: BSTR,
flags: LONG,
) -> HRESULT,
fn GetTask(
Path: BSTR,
ppTask: *mut *mut IRegisteredTask,
) -> HRESULT,
fn GetTasks(
flags: LONG,
ppTasks: *mut *mut IRegisteredTaskCollection,
) -> HRESULT,
fn DeleteTask(
Name: BSTR,
flags: LONG,
) -> HRESULT,
fn RegisterTask(
Path: BSTR,
XmlText: BSTR,
flags: LONG,
UserId: VARIANT,
password: VARIANT,
LogonType: TASK_LOGON_TYPE,
sddl: VARIANT,
ppTask: *mut *mut IRegisteredTask,
) -> HRESULT,
fn RegisterTaskDefinition(
Path: BSTR,
pDefinition: *const ITaskDefinition,
flags: LONG,
UserId: VARIANT,
password: VARIANT,
LogonType: TASK_LOGON_TYPE,
sddl: VARIANT,
ppTask: *mut *mut IRegisteredTask,
) -> HRESULT,
fn GetSecurityDescriptor(
securityInformation: LONG,
pSddl: *mut BSTR,
) -> HRESULT,
fn SetSecurityDescriptor(
sddl: BSTR,
flags: LONG,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x9c86f320, 0 xdee3, 0 x4dd1, 0 xb9, 0 x72, 0 xa3, 0 x03, 0 xf2, 0 x6b, 0 x06, 0 x1e)]
interface IRegisteredTask(IRegisteredTaskVtbl): IDispatch(IDispatchVtbl) {
fn get_Name(
pName: *mut BSTR,
) -> HRESULT,
fn get_Path(
pPath: *mut BSTR,
) -> HRESULT,
fn get_State(
pState: *mut TASK_STATE,
) -> HRESULT,
fn get_Enabled(
pEnabled: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_Enabled(
pEnabled: VARIANT_BOOL,
) -> HRESULT,
fn Run(
params: VARIANT,
ppRunningTask: *mut *mut IRunningTask,
) -> HRESULT,
fn RunEx(
params: VARIANT,
flags: LONG,
sessionID: LONG,
user: BSTR,
ppRunningTask: *mut *mut IRunningTask,
) -> HRESULT,
fn GetInstances(
flags: LONG,
ppRunningTasks: *mut *mut IRunningTaskCollection,
) -> HRESULT,
fn get_LastRunTime(
pLastRunTime: *mut DATE,
) -> HRESULT,
fn get_LastTaskResult(
pLastTaskResult: *mut LONG,
) -> HRESULT,
fn get_NumberOfMissedRuns(
pNumberOfMissedRuns: *mut LONG,
) -> HRESULT,
fn get_NextRunTime(
pNextRunTime: *mut DATE,
) -> HRESULT,
fn get_Definition(
ppDefinition: *mut *mut ITaskDefinition,
) -> HRESULT,
fn get_Xml(
pXml: *mut BSTR,
) -> HRESULT,
fn GetSecurityDescriptor(
securityInformation: LONG,
pSddl: *mut BSTR,
) -> HRESULT,
fn SetSecurityDescriptor(
sddl: BSTR,
flags: LONG,
) -> HRESULT,
fn Stop(
flags: LONG,
) -> HRESULT,
fn GetRunTimes(
pstStart: *const SYSTEMTIME,
pstEnd: *const SYSTEMTIME,
pCount: *mut DWORD,
pRunTimes: *mut *mut SYSTEMTIME,
) -> HRESULT,
}}
ENUM !{enum TASK_STATE {
TASK_STATE_UNKNOWN = 0 ,
TASK_STATE_DISABLED = 1 ,
TASK_STATE_QUEUED = 2 ,
TASK_STATE_READY = 3 ,
TASK_STATE_RUNNING = 4 ,
}}
RIDL!{#[ uuid(0 x653758fb, 0 x7b9a, 0 x4f1e, 0 xa4, 0 x71, 0 xbe, 0 xeb, 0 x8e, 0 x9b, 0 x83, 0 x4e)]
interface IRunningTask(IRunningTaskVtbl): IDispatch(IDispatchVtbl) {
fn get_Name(
pName: *mut BSTR,
) -> HRESULT,
fn get_InstanceGuid(
pGuid: *mut BSTR,
) -> HRESULT,
fn get_Path(
pPath: *mut BSTR,
) -> HRESULT,
fn get_State(
pState: *mut TASK_STATE,
) -> HRESULT,
fn get_CurrentAction(
pName: *mut BSTR,
) -> HRESULT,
fn Stop() -> HRESULT,
fn Refresh() -> HRESULT,
fn get_EnginePID(
pPID: *mut DWORD,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x6a67614b, 0 x6828, 0 x4fec, 0 xaa, 0 x54, 0 x6d, 0 x52, 0 xe8, 0 xf1, 0 xf2, 0 xdb)]
interface IRunningTaskCollection(IRunningTaskCollectionVtbl): IDispatch(IDispatchVtbl) {
fn get_Count(
pCount: *mut LONG,
) -> HRESULT,
fn get_Item(
index: VARIANT,
ppRunningTask: *mut *mut IRunningTask,
) -> HRESULT,
fn get__NewEnum(
ppEnum: *mut LPUNKNOWN,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xf5bc8fc5, 0 x536d, 0 x4f77, 0 xb8, 0 x52, 0 xfb, 0 xc1, 0 x35, 0 x6f, 0 xde, 0 xb6)]
interface ITaskDefinition(ITaskDefinitionVtbl): IDispatch(IDispatchVtbl) {
fn get_RegistrationInfo(
ppRegistrationInfo: *mut *mut IRegistrationInfo,
) -> HRESULT,
fn put_RegistrationInfo(
ppRegistrationInfo: *const IRegistrationInfo,
) -> HRESULT,
fn get_Triggers(
ppTriggers: *mut *mut ITriggerCollection,
) -> HRESULT,
fn put_Triggers(
ppTriggers: *const ITriggerCollection,
) -> HRESULT,
fn get_Settings(
ppSettings: *mut *mut ITaskSettings,
) -> HRESULT,
fn put_Settings(
ppSettings: *const ITaskSettings,
) -> HRESULT,
fn get_Data(
pData: *mut BSTR,
) -> HRESULT,
fn put_Data(
pData: BSTR,
) -> HRESULT,
fn get_Principal(
ppPrincipal: *mut *mut IPrincipal,
) -> HRESULT,
fn put_Principal(
ppPrincipal: *const IPrincipal,
) -> HRESULT,
fn get_Actions(
ppActions: *mut *mut IActionCollection,
) -> HRESULT,
fn put_Actions(
ppActions: *const IActionCollection,
) -> HRESULT,
fn get_XmlText(
pXml: *mut BSTR,
) -> HRESULT,
fn put_XmlText(
pXml: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x416d8b73, 0 xcb41, 0 x4ea1, 0 x80, 0 x5c, 0 x9b, 0 xe9, 0 xa5, 0 xac, 0 x4a, 0 x74)]
interface IRegistrationInfo(IRegistrationInfoVtbl): IDispatch(IDispatchVtbl) {
fn get_Description(
pDescription: *mut BSTR,
) -> HRESULT,
fn put_Description(
pDescription: BSTR,
) -> HRESULT,
fn get_Author(
pAuthor: *mut BSTR,
) -> HRESULT,
fn put_Author(
pAuthor: BSTR,
) -> HRESULT,
fn get_Version(
pVersion: *mut BSTR,
) -> HRESULT,
fn put_Version(
pVersion: BSTR,
) -> HRESULT,
fn get_Date(
pDate: *mut BSTR,
) -> HRESULT,
fn put_Date(
pDate: BSTR,
) -> HRESULT,
fn get_Documentation(
pDocumentation: *mut BSTR,
) -> HRESULT,
fn put_Documentation(
pDocumentation: BSTR,
) -> HRESULT,
fn get_XmlText(
pText: *mut BSTR,
) -> HRESULT,
fn put_XmlText(
pText: BSTR,
) -> HRESULT,
fn get_URI(
pUri: *mut BSTR,
) -> HRESULT,
fn put_URI(
pUri: BSTR,
) -> HRESULT,
fn get_SecurityDescriptor(
pSddl: *mut VARIANT,
) -> HRESULT,
fn put_SecurityDescriptor(
pSddl: VARIANT,
) -> HRESULT,
fn get_Source(
pSource: *mut BSTR,
) -> HRESULT,
fn put_Source(
pSource: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x85df5081, 0 x1b24, 0 x4f32, 0 x87, 0 x8a, 0 xd9, 0 xd1, 0 x4d, 0 xf4, 0 xcb, 0 x77)]
interface ITriggerCollection(ITriggerCollectionVtbl): IDispatch(IDispatchVtbl) {
fn get_Count(
pCount: *mut c_long,
) -> HRESULT,
fn get_Item(
index: c_long,
ppTrigger: *mut *mut ITrigger,
) -> HRESULT,
fn get__NewEnum(
ppEnum: *mut LPUNKNOWN,
) -> HRESULT,
fn Create(
Type : TASK_TRIGGER_TYPE2,
ppTrigger: *mut *mut ITrigger,
) -> HRESULT,
fn Remove(
index: VARIANT,
) -> HRESULT,
fn Clear() -> HRESULT,
}}
RIDL!{#[ uuid(0 x09941815, 0 xea89, 0 x4b5b, 0 x89, 0 xe0, 0 x2a, 0 x77, 0 x38, 0 x01, 0 xfa, 0 xc3)]
interface ITrigger(ITriggerVtbl): IDispatch(IDispatchVtbl) {
fn get_Type(
pType: *mut TASK_TRIGGER_TYPE2,
) -> HRESULT,
fn get_Id(
pId: *mut BSTR,
) -> HRESULT,
fn put_Id(
pId: BSTR,
) -> HRESULT,
fn get_Repetition(
ppRepeat: *mut *mut IRepetitionPattern,
) -> HRESULT,
fn put_Repetition(
ppRepeat: *const IRepetitionPattern,
) -> HRESULT,
fn get_ExecutionTimeLimit(
pTimeLimit: *mut BSTR,
) -> HRESULT,
fn put_ExecutionTimeLimit(
pTimeLimit: BSTR,
) -> HRESULT,
fn get_StartBoundary(
pStart: *mut BSTR,
) -> HRESULT,
fn put_StartBoundary(
pStart: BSTR,
) -> HRESULT,
fn get_EndBoundary(
pEnd: *mut BSTR,
) -> HRESULT,
fn put_EndBoundary(
pEnd: BSTR,
) -> HRESULT,
fn get_Enabled(
pEnabled: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_Enabled(
pEnabled: VARIANT_BOOL,
) -> HRESULT,
}}
ENUM !{enum TASK_TRIGGER_TYPE2 {
TASK_TRIGGER_EVENT = 0 ,
TASK_TRIGGER_TIME = 1 ,
TASK_TRIGGER_DAILY = 2 ,
TASK_TRIGGER_WEEKLY = 3 ,
TASK_TRIGGER_MONTHLY = 4 ,
TASK_TRIGGER_MONTHLYDOW = 5 ,
TASK_TRIGGER_IDLE = 6 ,
TASK_TRIGGER_REGISTRATION = 7 ,
TASK_TRIGGER_BOOT = 8 ,
TASK_TRIGGER_LOGON = 9 ,
TASK_TRIGGER_SESSION_STATE_CHANGE = 11 ,
TASK_TRIGGER_CUSTOM_TRIGGER_01 = 12 ,
}}
RIDL!{#[ uuid(0 x7fb9acf1, 0 x26be, 0 x400e, 0 x85, 0 xb5, 0 x29, 0 x4b, 0 x9c, 0 x75, 0 xdf, 0 xd6)]
interface IRepetitionPattern(IRepetitionPatternVtbl): IDispatch(IDispatchVtbl) {
fn get_Interval(
pInterval: *mut BSTR,
) -> HRESULT,
fn put_Interval(
pInterval: BSTR,
) -> HRESULT,
fn get_Duration(
pDuration: *mut BSTR,
) -> HRESULT,
fn put_Duration(
pDuration: BSTR,
) -> HRESULT,
fn get_StopAtDurationEnd(
pStop: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_StopAtDurationEnd(
pStop: VARIANT_BOOL,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x8fd4711d, 0 x2d02, 0 x4c8c, 0 x87, 0 xe3, 0 xef, 0 xf6, 0 x99, 0 xde, 0 x12, 0 x7e)]
interface ITaskSettings(ITaskSettingsVtbl): IDispatch(IDispatchVtbl) {
fn get_AllowDemandStart(
pAllowDemandStart: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_AllowDemandStart(
pAllowDemandStart: VARIANT_BOOL,
) -> HRESULT,
fn get_RestartInterval(
pRestartInterval: *mut BSTR,
) -> HRESULT,
fn put_RestartInterval(
pRestartInterval: BSTR,
) -> HRESULT,
fn get_RestartCount(
pRestartCount: *mut INT,
) -> HRESULT,
fn put_RestartCount(
pRestartCount: INT,
) -> HRESULT,
fn get_MultipleInstances(
pPolicy: *mut TASK_INSTANCES_POLICY,
) -> HRESULT,
fn put_MultipleInstances(
pPolicy: TASK_INSTANCES_POLICY,
) -> HRESULT,
fn get_StopIfGoingOnBatteries(
pStopIfOnBatteries: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_StopIfGoingOnBatteries(
pStopIfOnBatteries: VARIANT_BOOL,
) -> HRESULT,
fn get_DisallowStartIfOnBatteries(
pDisallowStart: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_DisallowStartIfOnBatteries(
pDisallowStart: VARIANT_BOOL,
) -> HRESULT,
fn get_AllowHardTerminate(
pAllowHardTerminate: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_AllowHardTerminate(
pAllowHardTerminate: VARIANT_BOOL,
) -> HRESULT,
fn get_StartWhenAvailable(
pStartWhenAvailable: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_StartWhenAvailable(
pStartWhenAvailable: VARIANT_BOOL,
) -> HRESULT,
fn get_XmlText(
pText: *mut BSTR,
) -> HRESULT,
fn put_XmlText(
pText: BSTR,
) -> HRESULT,
fn get_RunOnlyIfNetworkAvailable(
pRunOnlyIfNetworkAvailable: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_RunOnlyIfNetworkAvailable(
pRunOnlyIfNetworkAvailable: VARIANT_BOOL,
) -> HRESULT,
fn get_ExecutionTimeLimit(
pExecutionTimeLimit: *mut BSTR,
) -> HRESULT,
fn put_ExecutionTimeLimit(
pExecutionTimeLimit: BSTR,
) -> HRESULT,
fn get_Enabled(
pEnabled: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_Enabled(
pEnabled: VARIANT_BOOL,
) -> HRESULT,
fn get_DeleteExpiredTaskAfter(
pExpirationDelay: *mut BSTR,
) -> HRESULT,
fn put_DeleteExpiredTaskAfter(
pExpirationDelay: BSTR,
) -> HRESULT,
fn get_Priority(
pPriority: *mut INT,
) -> HRESULT,
fn put_Priority(
pPriority: INT,
) -> HRESULT,
fn get_Compatibility(
pCompatLevel: *mut TASK_COMPATIBILITY,
) -> HRESULT,
fn put_Compatibility(
pCompatLevel: TASK_COMPATIBILITY,
) -> HRESULT,
fn get_Hidden(
pHidden: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_Hidden(
pHidden: VARIANT_BOOL,
) -> HRESULT,
fn get_IdleSettings(
ppIdleSettings: *mut *mut IIdleSettings,
) -> HRESULT,
fn put_IdleSettings(
ppIdleSettings: *const IIdleSettings,
) -> HRESULT,
fn get_RunOnlyIfIdle(
pRunOnlyIfIdle: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_RunOnlyIfIdle(
pRunOnlyIfIdle: VARIANT_BOOL,
) -> HRESULT,
fn get_WakeToRun(
pWake: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_WakeToRun(
pWake: VARIANT_BOOL,
) -> HRESULT,
fn get_NetworkSettings(
ppNetworkSettings: *mut *mut INetworkSettings,
) -> HRESULT,
fn put_NetworkSettings(
ppNetworkSettings: *const INetworkSettings,
) -> HRESULT,
}}
ENUM !{enum TASK_INSTANCES_POLICY {
TASK_INSTANCES_PARALLEL = 0 ,
TASK_INSTANCES_QUEUE = 1 ,
TASK_INSTANCES_IGNORE_NEW = 2 ,
TASK_INSTANCES_STOP_EXISTING = 3 ,
}}
ENUM !{enum TASK_COMPATIBILITY {
TASK_COMPATIBILITY_AT = 0 ,
TASK_COMPATIBILITY_V1 = 1 ,
TASK_COMPATIBILITY_V2 = 2 ,
TASK_COMPATIBILITY_V2_1 = 3 ,
TASK_COMPATIBILITY_V2_2 = 4 ,
TASK_COMPATIBILITY_V2_3 = 5 ,
TASK_COMPATIBILITY_V2_4 = 6 ,
}}
RIDL!{#[ uuid(0 x84594461, 0 x0053, 0 x4342, 0 xa8, 0 xfd, 0 x08, 0 x8f, 0 xab, 0 xf1, 0 x1f, 0 x32)]
interface IIdleSettings(IIdleSettingsVtbl): IDispatch(IDispatchVtbl) {
fn get_IdleDuration(
pDelay: *mut BSTR,
) -> HRESULT,
fn put_IdleDuration(
pDelay: BSTR,
) -> HRESULT,
fn get_WaitTimeout(
pTimeout: *mut BSTR,
) -> HRESULT,
fn put_WaitTimeout(
pTimeout: BSTR,
) -> HRESULT,
fn get_StopOnIdleEnd(
pStop: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_StopOnIdleEnd(
pStop: VARIANT_BOOL,
) -> HRESULT,
fn get_RestartOnIdle(
pRestart: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_RestartOnIdle(
pRestart: VARIANT_BOOL,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x9f7dea84, 0 xc30b, 0 x4245, 0 x80, 0 xb6, 0 x00, 0 xe9, 0 xf6, 0 x46, 0 xf1, 0 xb4)]
interface INetworkSettings(INetworkSettingsVtbl): IDispatch(IDispatchVtbl) {
fn get_Name(
pName: *mut BSTR,
) -> HRESULT,
fn put_Name(
pName: BSTR,
) -> HRESULT,
fn get_Id(
pId: *mut BSTR,
) -> HRESULT,
fn put_Id(
pId: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xd98d51e5, 0 xc9b4, 0 x496a, 0 xa9, 0 xc1, 0 x18, 0 x98, 0 x02, 0 x61, 0 xcf, 0 x0f)]
interface IPrincipal(IPrincipalVtbl): IDispatch(IDispatchVtbl) {
fn get_Id(
pId: *mut BSTR,
) -> HRESULT,
fn put_Id(
pId: BSTR,
) -> HRESULT,
fn get_DisplayName(
pName: *mut BSTR,
) -> HRESULT,
fn put_DisplayName(
pName: BSTR,
) -> HRESULT,
fn get_UserId(
pUser: *mut BSTR,
) -> HRESULT,
fn put_UserId(
pUser: BSTR,
) -> HRESULT,
fn get_LogonType(
pLogon: *mut TASK_LOGON_TYPE,
) -> HRESULT,
fn put_LogonType(
pLogon: TASK_LOGON_TYPE,
) -> HRESULT,
fn get_GroupId(
pGroup: *mut BSTR,
) -> HRESULT,
fn put_GroupId(
pGroup: BSTR,
) -> HRESULT,
fn get_RunLevel(
pRunLevel: *mut TASK_RUNLEVEL,
) -> HRESULT,
fn put_RunLevel(
pRunLevel: TASK_RUNLEVEL,
) -> HRESULT,
}}
ENUM !{enum TASK_LOGON_TYPE {
TASK_LOGON_NONE = 0 ,
TASK_LOGON_PASSWORD = 1 ,
TASK_LOGON_S4U = 2 ,
TASK_LOGON_INTERACTIVE_TOKEN = 3 ,
TASK_LOGON_GROUP = 4 ,
TASK_LOGON_SERVICE_ACCOUNT = 5 ,
TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD = 6 ,
}}
ENUM !{enum TASK_RUNLEVEL {
TASK_RUNLEVEL_LUA = 0 ,
TASK_RUNLEVEL_HIGHEST = 1 ,
}}
RIDL!{#[ uuid(0 x02820e19, 0 x7b98, 0 x4ed2, 0 xb2, 0 xe8, 0 xfd, 0 xcc, 0 xce, 0 xff, 0 x61, 0 x9b)]
interface IActionCollection(IActionCollectionVtbl): IDispatch(IDispatchVtbl) {
fn get_Count(
pCount: *mut c_long,
) -> HRESULT,
fn get_Item(
index: c_long,
ppAction: *mut *mut IAction,
) -> HRESULT,
fn get__NewEnum(
ppEnum: *mut LPUNKNOWN,
) -> HRESULT,
fn get_XmlText(
pText: *mut BSTR,
) -> HRESULT,
fn put_XmlText(
pText: BSTR,
) -> HRESULT,
fn Create(
Type : TASK_ACTION_TYPE,
ppAction: *mut *mut IAction,
) -> HRESULT,
fn Remove(
index: VARIANT,
) -> HRESULT,
fn Clear() -> HRESULT,
fn get_Context(
pContext: *mut BSTR,
) -> HRESULT,
fn put_Context(
pContext: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xbae54997, 0 x48b1, 0 x4cbe, 0 x99, 0 x65, 0 xd6, 0 xbe, 0 x26, 0 x3e, 0 xbe, 0 xa4)]
interface IAction(IActionVtbl): IDispatch(IDispatchVtbl) {
fn get_Id(
pId: *mut BSTR,
) -> HRESULT,
fn put_Id(
pId: BSTR,
) -> HRESULT,
fn get_Type(
pType: *mut TASK_ACTION_TYPE,
) -> HRESULT,
}}
ENUM !{enum TASK_ACTION_TYPE {
TASK_ACTION_EXEC = 0 ,
TASK_ACTION_COM_HANDLER = 5 ,
TASK_ACTION_SEND_EMAIL = 6 ,
TASK_ACTION_SHOW_MESSAGE = 7 ,
}}
RIDL!{#[ uuid(0 x86627eb4, 0 x42a7, 0 x41e4, 0 xa4, 0 xd9, 0 xac, 0 x33, 0 xa7, 0 x2f, 0 x2d, 0 x52)]
interface IRegisteredTaskCollection(IRegisteredTaskCollectionVtbl): IDispatch(IDispatchVtbl) {
fn get_Count(
pCount: *mut LONG,
) -> HRESULT,
fn get_Item(
index: VARIANT,
ppRegisteredTask: *mut *mut IRegisteredTask,
) -> HRESULT,
fn get__NewEnum(
ppEnum: *mut LPUNKNOWN,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x2faba4c7, 0 x4da9, 0 x4013, 0 x96, 0 x97, 0 x20, 0 xcc, 0 x3f, 0 xd4, 0 x0f, 0 x85)]
interface ITaskService(ITaskServiceVtbl): IDispatch(IDispatchVtbl) {
fn GetFolder(
Path: BSTR,
ppFolder: *mut *mut ITaskFolder,
) -> HRESULT,
fn GetRunningTasks(
flags: LONG,
ppRunningTasks: *mut *mut IRunningTaskCollection,
) -> HRESULT,
fn NewTask(
flags: DWORD,
ppDefinition: *mut *mut ITaskDefinition,
) -> HRESULT,
fn Connect(
serverName: VARIANT,
user: VARIANT,
domain: VARIANT,
password: VARIANT,
) -> HRESULT,
fn get_Connected(
pConnected: *mut VARIANT_BOOL,
) -> HRESULT,
fn get_TargetServer(
pServer: *mut BSTR,
) -> HRESULT,
fn get_ConnectedUser(
pUser: *mut BSTR,
) -> HRESULT,
fn get_ConnectedDomain(
pDomain: *mut BSTR,
) -> HRESULT,
fn get_HighestVersion(
pVersion: *mut DWORD,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x839d7762, 0 x5121, 0 x4009, 0 x92, 0 x34, 0 x4f, 0 x0d, 0 x19, 0 x39, 0 x4f, 0 x04)]
interface ITaskHandler(ITaskHandlerVtbl): IUnknown(IUnknownVtbl) {
fn Start(
pHandlerServices: LPUNKNOWN,
Data: BSTR,
) -> HRESULT,
fn Stop(
pRetCode: *mut HRESULT,
) -> HRESULT,
fn Pause() -> HRESULT,
fn Resume() -> HRESULT,
}}
RIDL!{#[ uuid(0 xeaec7a8f, 0 x27a0, 0 x4ddc, 0 x86, 0 x75, 0 x14, 0 x72, 0 x6a, 0 x01, 0 xa3, 0 x8a)]
interface ITaskHandlerStatus(ITaskHandlerStatusVtbl): IUnknown(IUnknownVtbl) {
fn UpdateStatus(
percentComplete: c_short,
statusMessage: BSTR,
) -> HRESULT,
fn TaskCompleted(
taskErrCode: HRESULT,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x3e4c9351, 0 xd966, 0 x4b8b, 0 xbb, 0 x87, 0 xce, 0 xba, 0 x68, 0 xbb, 0 x01, 0 x07)]
interface ITaskVariables(ITaskVariablesVtbl): IUnknown(IUnknownVtbl) {
fn GetInput(
pInput: *mut BSTR,
) -> HRESULT,
fn SetOutput(
input: BSTR,
) -> HRESULT,
fn GetContext(
pContext: *mut BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x39038068, 0 x2b46, 0 x4afd, 0 x86, 0 x62, 0 x7b, 0 xb6, 0 xf8, 0 x68, 0 xd2, 0 x21)]
interface ITaskNamedValuePair(ITaskNamedValuePairVtbl): IDispatch(IDispatchVtbl) {
fn get_Name(
pName: *mut BSTR,
) -> HRESULT,
fn put_Name(
pName: BSTR,
) -> HRESULT,
fn get_Value(
pValue: *mut BSTR,
) -> HRESULT,
fn put_Value(
pValue: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xb4ef826b, 0 x63c3, 0 x46e4, 0 xa5, 0 x04, 0 xef, 0 x69, 0 xe4, 0 xf7, 0 xea, 0 x4d)]
interface ITaskNamedValueCollection(ITaskNamedValueCollectionVtbl): IDispatch(IDispatchVtbl) {
fn get_Count(
pCount: *mut c_long,
) -> HRESULT,
fn get_Item(
index: LONG,
ppPair: *mut *mut ITaskNamedValuePair,
) -> HRESULT,
fn get__NewEnum(
ppEnum: *mut LPUNKNOWN,
) -> HRESULT,
fn Create(
Name: BSTR,
Value: BSTR,
ppPair: *mut *mut ITaskNamedValuePair,
) -> HRESULT,
fn Remove(
index: LONG,
) -> HRESULT,
fn Clear() -> HRESULT,
}}
RIDL!{#[ uuid(0 xd537d2b0, 0 x9fb3, 0 x4d34, 0 x97, 0 x39, 0 x1f, 0 xf5, 0 xce, 0 x7b, 0 x1e, 0 xf3)]
interface IIdleTrigger(IIdleTriggerVtbl): ITrigger(ITriggerVtbl) {}}
RIDL!{#[ uuid(0 x72dade38, 0 xfae4, 0 x4b3e, 0 xba, 0 xf4, 0 x5d, 0 x00, 0 x9a, 0 xf0, 0 x2b, 0 x1c)]
interface ILogonTrigger(ILogonTriggerVtbl): ITrigger(ITriggerVtbl) {
fn get_Delay(
pDelay: *mut BSTR,
) -> HRESULT,
fn put_Delay(
pDelay: BSTR,
) -> HRESULT,
fn get_UserId(
pUser: *mut BSTR,
) -> HRESULT,
fn put_UserId(
pUser: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x754da71b, 0 x4385, 0 x4475, 0 x9d, 0 xd9, 0 x59, 0 x82, 0 x94, 0 xfa, 0 x36, 0 x41)]
interface ISessionStateChangeTrigger(ISessionStateChangeTriggerVtbl): ITrigger(ITriggerVtbl) {
fn get_Delay(
pDelay: *mut BSTR,
) -> HRESULT,
fn put_Delay(
pDelay: BSTR,
) -> HRESULT,
fn get_UserId(
pUser: *mut BSTR,
) -> HRESULT,
fn put_UserId(
pUser: BSTR,
) -> HRESULT,
fn get_StateChange(
pType: *mut TASK_SESSION_STATE_CHANGE_TYPE,
) -> HRESULT,
fn put_StateChange(
pType: TASK_SESSION_STATE_CHANGE_TYPE,
) -> HRESULT,
}}
ENUM !{enum TASK_SESSION_STATE_CHANGE_TYPE {
TASK_CONSOLE_CONNECT = 1 ,
TASK_CONSOLE_DISCONNECT = 2 ,
TASK_REMOTE_CONNECT = 3 ,
TASK_REMOTE_DISCONNECT = 4 ,
TASK_SESSION_LOCK = 7 ,
TASK_SESSION_UNLOCK = 8 ,
}}
RIDL!{#[ uuid(0 xd45b0167, 0 x9653, 0 x4eef, 0 xb9, 0 x4f, 0 x07, 0 x32, 0 xca, 0 x7a, 0 xf2, 0 x51)]
interface IEventTrigger(IEventTriggerVtbl): ITrigger(ITriggerVtbl) {
fn get_Subscription(
pQuery: *mut BSTR,
) -> HRESULT,
fn put_Subscription(
pQuery: BSTR,
) -> HRESULT,
fn get_Delay(
pDelay: *mut BSTR,
) -> HRESULT,
fn put_Delay(
pDelay: BSTR,
) -> HRESULT,
fn get_ValueQueries(
ppNamedXPaths: *mut *mut ITaskNamedValueCollection,
) -> HRESULT,
fn put_ValueQueries(
ppNamedXPaths: *const ITaskNamedValueCollection,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xb45747e0, 0 xeba7, 0 x4276, 0 x9f, 0 x29, 0 x85, 0 xc5, 0 xbb, 0 x30, 0 x00, 0 x06)]
interface ITimeTrigger(ITimeTriggerVtbl): ITrigger(ITriggerVtbl) {
fn get_RandomDelay(
pRandomDelay: *mut BSTR,
) -> HRESULT,
fn put_RandomDelay(
pRandomDelay: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x126c5cd8, 0 xb288, 0 x41d5, 0 x8d, 0 xbf, 0 xe4, 0 x91, 0 x44, 0 x6a, 0 xdc, 0 x5c)]
interface IDailyTrigger(IDailyTriggerVtbl): ITrigger(ITriggerVtbl) {
fn get_DaysInterval(
pDays: *mut c_short,
) -> HRESULT,
fn put_DaysInterval(
pDays: c_short,
) -> HRESULT,
fn get_RandomDelay(
pRandomDelay: *mut BSTR,
) -> HRESULT,
fn put_RandomDelay(
pRandomDelay: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x5038fc98, 0 x82ff, 0 x436d, 0 x87, 0 x28, 0 xa5, 0 x12, 0 xa5, 0 x7c, 0 x9d, 0 xc1)]
interface IWeeklyTrigger(IWeeklyTriggerVtbl): ITrigger(ITriggerVtbl) {
fn get_DaysOfWeek(
pDays: *mut c_short,
) -> HRESULT,
fn put_DaysOfWeek(
pDays: c_short,
) -> HRESULT,
fn get_WeeksInterval(
pWeeks: *mut c_short,
) -> HRESULT,
fn put_WeeksInterval(
pWeeks: c_short,
) -> HRESULT,
fn get_RandomDelay(
pRandomDelay: *mut BSTR,
) -> HRESULT,
fn put_RandomDelay(
pRandomDelay: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x97c45ef1, 0 x6b02, 0 x4a1a, 0 x9c, 0 x0e, 0 x1e, 0 xbf, 0 xba, 0 x15, 0 x00, 0 xac)]
interface IMonthlyTrigger(IMonthlyTriggerVtbl): ITrigger(ITriggerVtbl) {
fn get_DaysOfMonth(
pDays: *mut c_long,
) -> HRESULT,
fn put_DaysOfMonth(
pDays: c_long,
) -> HRESULT,
fn get_MonthsOfYear(
pMonths: *mut c_short,
) -> HRESULT,
fn put_MonthsOfYear(
pMonths: c_short,
) -> HRESULT,
fn get_RunOnLastDayOfMonth(
pLastDay: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_RunOnLastDayOfMonth(
pLastDay: VARIANT_BOOL,
) -> HRESULT,
fn get_RandomDelay(
pRandomDelay: *mut BSTR,
) -> HRESULT,
fn put_RandomDelay(
pRandomDelay: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x77d025a3, 0 x90fa, 0 x43aa, 0 xb5, 0 x2e, 0 xcd, 0 xa5, 0 x49, 0 x9b, 0 x94, 0 x6a)]
interface IMonthlyDOWTrigger(IMonthlyDOWTriggerVtbl): ITrigger(ITriggerVtbl) {
fn get_DaysOfWeek(
pDays: *mut c_short,
) -> HRESULT,
fn put_DaysOfWeek(
pDays: c_short,
) -> HRESULT,
fn get_WeeksOfMonth(
pWeeks: *mut c_short,
) -> HRESULT,
fn put_WeeksOfMonth(
pWeeks: c_short,
) -> HRESULT,
fn get_MonthsOfYear(
pMonths: *mut c_short,
) -> HRESULT,
fn put_MonthsOfYear(
pMonths: c_short,
) -> HRESULT,
fn get_RunOnLastWeekOfMonth(
pLastWeek: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_RunOnLastWeekOfMonth(
pLastWeek: VARIANT_BOOL,
) -> HRESULT,
fn get_RandomDelay(
pRandomDelay: *mut BSTR,
) -> HRESULT,
fn put_RandomDelay(
pRandomDelay: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x2a9c35da, 0 xd357, 0 x41f4, 0 xbb, 0 xc1, 0 x20, 0 x7a, 0 xc1, 0 xb1, 0 xf3, 0 xcb)]
interface IBootTrigger(IBootTriggerVtbl): ITrigger(ITriggerVtbl) {
fn get_Delay(
pDelay: *mut BSTR,
) -> HRESULT,
fn put_Delay(
pDelay: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x4c8fec3a, 0 xc218, 0 x4e0c, 0 xb2, 0 x3d, 0 x62, 0 x90, 0 x24, 0 xdb, 0 x91, 0 xa2)]
interface IRegistrationTrigger(IRegistrationTriggerVtbl): ITrigger(ITriggerVtbl) {
fn get_Delay(
pDelay: *mut BSTR,
) -> HRESULT,
fn put_Delay(
pDelay: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x4c3d624d, 0 xfd6b, 0 x49a3, 0 xb9, 0 xb7, 0 x09, 0 xcb, 0 x3c, 0 xd3, 0 xf0, 0 x47)]
interface IExecAction(IExecActionVtbl): IAction(IActionVtbl) {
fn get_Path(
pPath: *mut BSTR,
) -> HRESULT,
fn put_Path(
pPath: BSTR,
) -> HRESULT,
fn get_Arguments(
pArgument: *mut BSTR,
) -> HRESULT,
fn put_Arguments(
pArgument: BSTR,
) -> HRESULT,
fn get_WorkingDirectory(
pWorkingDirectory: *mut BSTR,
) -> HRESULT,
fn put_WorkingDirectory(
pWorkingDirectory: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xf2a82542, 0 xbda5, 0 x4e6b, 0 x91, 0 x43, 0 xe2, 0 xbf, 0 x4f, 0 x89, 0 x87, 0 xb6)]
interface IExecAction2(IExecAction2Vtbl): IExecAction(IExecActionVtbl) {
fn get_HideAppWindow(
pHideAppWindow: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_HideAppWindow(
pHideAppWindow: VARIANT_BOOL,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x505e9e68, 0 xaf89, 0 x46b8, 0 xa3, 0 x0f, 0 x56, 0 x16, 0 x2a, 0 x83, 0 xd5, 0 x37)]
interface IShowMessageAction(IShowMessageActionVtbl): IAction(IActionVtbl) {
fn get_Title(
pTitle: *mut BSTR,
) -> HRESULT,
fn put_Title(
pTitle: BSTR,
) -> HRESULT,
fn get_MessageBody(
pMessageBody: *mut BSTR,
) -> HRESULT,
fn put_MessageBody(
pMessageBody: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x6d2fd252, 0 x75c5, 0 x4f66, 0 x90, 0 xba, 0 x2a, 0 x7d, 0 x8c, 0 xc3, 0 x03, 0 x9f)]
interface IComHandlerAction(IComHandlerActionVtbl): IAction(IActionVtbl) {
fn get_ClassId(
pClsid: *mut BSTR,
) -> HRESULT,
fn put_ClassId(
pClsid: BSTR,
) -> HRESULT,
fn get_Data(
pData: *mut BSTR,
) -> HRESULT,
fn put_Data(
pData: BSTR,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x10f62c64, 0 x7e16, 0 x4314, 0 xa0, 0 xc2, 0 x0c, 0 x36, 0 x83, 0 xf9, 0 x9d, 0 x40)]
interface IEmailAction(IEmailActionVtbl): IAction(IActionVtbl) {
fn get_Server(
pServer: *mut BSTR,
) -> HRESULT,
fn put_Server(
pServer: BSTR,
) -> HRESULT,
fn get_Subject(
pSubject: *mut BSTR,
) -> HRESULT,
fn put_Subject(
pSubject: BSTR,
) -> HRESULT,
fn get_To(
pTo: *mut BSTR,
) -> HRESULT,
fn put_To(
pTo: BSTR,
) -> HRESULT,
fn get_Cc(
pCc: *mut BSTR,
) -> HRESULT,
fn put_Cc(
pCc: BSTR,
) -> HRESULT,
fn get_Bcc(
pBcc: *mut BSTR,
) -> HRESULT,
fn put_Bcc(
pBcc: BSTR,
) -> HRESULT,
fn get_ReplyTo(
pReplyTo: *mut BSTR,
) -> HRESULT,
fn put_ReplyTo(
pReplyTo: BSTR,
) -> HRESULT,
fn get_From(
pFrom: *mut BSTR,
) -> HRESULT,
fn put_From(
pFrom: BSTR,
) -> HRESULT,
fn get_HeaderFields(
ppHeaderFields: *mut *mut ITaskNamedValueCollection,
) -> HRESULT,
fn put_HeaderFields(
ppHeaderFields: *const ITaskNamedValueCollection,
) -> HRESULT,
fn get_Body(
pBody: *mut BSTR,
) -> HRESULT,
fn put_Body(
pBody: BSTR,
) -> HRESULT,
fn get_Attachments(
pAttachements: *mut SAFEARRAY,
) -> HRESULT,
fn put_Attachments(
pAttachements: SAFEARRAY,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x248919ae, 0 xe345, 0 x4a6d, 0 x8a, 0 xeb, 0 xe0, 0 xd3, 0 x16, 0 x5c, 0 x90, 0 x4e)]
interface IPrincipal2(IPrincipal2Vtbl): IDispatch(IDispatchVtbl) {
fn get_ProcessTokenSidType(
pProcessTokenSidType: *mut TASK_PROCESSTOKENSID,
) -> HRESULT,
fn put_ProcessTokenSidType(
pProcessTokenSidType: TASK_PROCESSTOKENSID,
) -> HRESULT,
fn get_RequiredPrivilegeCount(
pCount: *mut c_long,
) -> HRESULT,
fn get_RequiredPrivilege(
index: c_long,
pPrivilege: *mut BSTR,
) -> HRESULT,
fn AddRequiredPrivilege(
privilege: BSTR,
) -> HRESULT,
}}
ENUM !{enum TASK_PROCESSTOKENSID {
TASK_PROCESSTOKENSID_NONE = 0 ,
TASK_PROCESSTOKENSID_UNRESTRICTED = 1 ,
TASK_PROCESSTOKENSID_DEFAULT = 2 ,
}}
RIDL!{#[ uuid(0 x2c05c3f0, 0 x6eed, 0 x4c05, 0 xa1, 0 x5f, 0 xed, 0 x7d, 0 x7a, 0 x98, 0 xa3, 0 x69)]
interface ITaskSettings2(ITaskSettings2Vtbl): IDispatch(IDispatchVtbl) {
fn get_DisallowStartOnRemoteAppSession(
pDisallowStart: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_DisallowStartOnRemoteAppSession(
pDisallowStart: VARIANT_BOOL,
) -> HRESULT,
fn get_UseUnifiedSchedulingEngine(
pUseUnifiedEngine: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_UseUnifiedSchedulingEngine(
pUseUnifiedEngine: VARIANT_BOOL,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 x0ad9d0d7, 0 x0c7f, 0 x4ebb, 0 x9a, 0 x5f, 0 xd1, 0 xc6, 0 x48, 0 xdc, 0 xa5, 0 x28)]
interface ITaskSettings3(ITaskSettings3Vtbl): ITaskSettings(ITaskSettingsVtbl) {
fn get_DisallowStartOnRemoteAppSession(
pDisallowStart: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_DisallowStartOnRemoteAppSession(
pDisallowStart: VARIANT_BOOL,
) -> HRESULT,
fn get_UseUnifiedSchedulingEngine(
pUseUnifiedEngine: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_UseUnifiedSchedulingEngine(
pUseUnifiedEngine: VARIANT_BOOL,
) -> HRESULT,
fn get_MaintenanceSettings(
ppMaintenanceSettings: *mut *mut IMaintenanceSettings,
) -> HRESULT,
fn put_MaintenanceSettings(
ppMaintenanceSettings: *const IMaintenanceSettings,
) -> HRESULT,
fn CreateMaintenanceSettings(
ppMaintenanceSettings: *mut *mut IMaintenanceSettings,
) -> HRESULT,
fn get_Volatile(
pVolatile: *mut VARIANT_BOOL,
) -> HRESULT,
fn put_Volatile(
pVolatile: VARIANT_BOOL,
) -> HRESULT,
}}
RIDL!{#[ uuid(0 xa6024fa8, 0 x9652, 0 x4adb, 0 xa6, 0 xbf, 0 x5c, 0 xfc, 0 xd8, 0 x77, 0 xa7, 0 xba)]
interface IMaintenanceSettings(IMaintenanceSettingsVtbl): IDispatch(IDispatchVtbl) {
fn put_Period(
target: BSTR,
) -> HRESULT,
fn get_Period(
target: *mut BSTR,
) -> HRESULT,
fn put_Deadline(
target: BSTR,
) -> HRESULT,
fn get_Deadline(
target: *mut BSTR,
) -> HRESULT,
fn put_Exclusive(
target: VARIANT_BOOL,
) -> HRESULT,
fn get_Exclusive(
target: *mut VARIANT_BOOL,
) -> HRESULT,
}}
ENUM !{enum TASK_RUN_FLAGS {
TASK_RUN_NO_FLAGS = 0 ,
TASK_RUN_AS_SELF = 1 ,
TASK_RUN_IGNORE_CONSTRAINTS = 2 ,
TASK_RUN_USE_SESSION_ID = 4 ,
TASK_RUN_USER_SID = 8 ,
}}
ENUM !{enum TASK_ENUM_FLAGS {
TASK_ENUM_HIDDEN = 1 ,
}}
ENUM !{enum TASK_CREATION {
TASK_VALIDATE_ONLY = 1 ,
TASK_CREATE = 2 ,
TASK_UPDATE = 4 ,
TASK_CREATE_OR_UPDATE = 6 ,
TASK_DISABLE = 8 ,
TASK_DONT_ADD_PRINCIPAL_ACE = 16 ,
TASK_IGNORE_REGISTRATION_TRIGGERS = 32 ,
}}
Messung V0.5 in Prozent C=94 H=100 G=96
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet am 2026-06-18)
¤
*© Formatika GbR, Deutschland