ITask (Interfaces)
Last changed: -203.167.226.133

.
Summary
Part of the Task Scheduler 1.0 Interfaces, which consists of IEnumWorkItems, ITask, ITaskScheduler, ITaskTrigger and IScheduledWorkItem. The C# definition contains some helper code. Not all methods have been tested, so be careful!

C# Definition:

    [Guid("148BD52B-A2AB-11CE-B11F-00AA00530503"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface ITaskTrigger
    {
    int SetTrigger( ref TASK_TRIGGER pTrigger);
    int GetTrigger( ref TASK_TRIGGER pTrigger);
    int GetTriggerString([MarshalAs(UnmanagedType.LPWStr)] out string wszTrigger);
    };

    public enum TASK_TRIGGER_TYPE
    {    
    TASK_TIME_TRIGGER_ONCE        = 0, // Ignore the Type field.
    TASK_TIME_TRIGGER_DAILY       = 1, // Use DAILY
    TASK_TIME_TRIGGER_WEEKLY      = 2, // Use WEEKLY
    TASK_TIME_TRIGGER_MONTHLYDATE     = 3, // Use MONTHLYDATE
    TASK_TIME_TRIGGER_MONTHLYDOW      = 4, // Use MONTHLYDOW
    TASK_EVENT_TRIGGER_ON_IDLE    = 5, // Ignore the Type field.
    TASK_EVENT_TRIGGER_AT_SYSTEMSTART = 6, // Ignore the Type field.
    TASK_EVENT_TRIGGER_AT_LOGON       = 7, // Ignore the Type field.
    }

    [Flags]
    public enum TASK_TRIGGER_FLAG
    {
    TASK_TRIGGER_FLAG_HAS_END_DATE     = 0x1,
    TASK_TRIGGER_FLAG_KILL_AT_DURATION_END = 0x2,
    TASK_TRIGGER_FLAG_DISABLED         = 0x4,
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct DAILY
    {
    public ushort DaysInterval;
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct WEEKLY
    {
    public ushort WeeksInterval;
    public ushort rgfDaysOfTheWeek;
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct MONTHLYDATE
    {
    public uint rgfDays;
    public ushort rgfMonths;
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct MONTHLYDOW
    {
    public ushort wWhichWeek;
    public ushort rgfDaysOfTheWeek;
    public ushort rgfMonths;
    }

    [StructLayout(LayoutKind.Explicit)]
    public struct TRIGGER_TYPE_UNION
    {
    [FieldOffset(0)] public DAILY       Daily;
    [FieldOffset(0)] public WEEKLY      Weekly;
    [FieldOffset(0)] public MONTHLYDATE MonthlyDate;
    [FieldOffset(0)] public MONTHLYDOW  MonthlyDOW;
    }

    [StructLayout(LayoutKind.Sequential)]
    public struct TASK_TRIGGER
    {
    public ushort          cbTriggerSize;
    public ushort          Reserved1;
    public ushort          wBeginYear;
    public ushort          wBeginMonth;
    public ushort          wBeginDay;
    public ushort          wEndYear;
    public ushort          wEndMonth;
    public ushort          wEndDay;
    public ushort          wStartHour;
    public ushort          wStartMinute;
    public uint        MinutesDuration;
    public uint        MinutesInterval;
    public TASK_TRIGGER_FLAG   rgFlags;
    public TASK_TRIGGER_TYPE   TriggerType;
    public TRIGGER_TYPE_UNION  Type;
    public ushort          Reserved2;
    public ushort          wRandomMinutesInterval;

    static public TASK_TRIGGER CreateInstance()
    {
        TASK_TRIGGER obj = new TASK_TRIGGER();
        obj.cbTriggerSize = (ushort)Marshal.SizeOf(obj);
        return obj;
    }
    }

VB Definition:

<ComImport> _
<Guid("TODO")> _
'TODO: Insert <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _ if this doesn't derive from IDispatch
Interface ITaskTrigger
   TODO
End Interface

User-Defined Types:

None.

Notes:

None.

Documentation