⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mstask.idl

📁 c语言编程软件vc6.0中文绿色版_vc6.0官方下载
💻 IDL
📖 第 1 页 / 共 2 页
字号:
//+----------------------------------------------------------------------------
//
//  Task Scheduler
//
//  Microsoft Windows
//  Copyright 1992 - 1998 Microsoft Corporation.
//
//  File:       mstask.idl
//
//  Contents:   ITaskTrigger, ITask, ITaskScheduler, IEnumTasks
//              interfaces and related definitions
//
//  History:    06-Sep-95 EricB created
//
//-----------------------------------------------------------------------------

import "oaidl.idl";
import "oleidl.idl";

// 148BD520-A2AB-11CE-B11F-00AA00530503 - Task object class ID
// 148BD52A-A2AB-11CE-B11F-00AA00530503 - Task Scheduler class ID
// A6B952F0-A4B1-11D0-997D-00AA006887EC - IScheduledWorkItem interface ID
// 148BD524-A2AB-11CE-B11F-00AA00530503 - ITask interface ID
// 148BD527-A2AB-11CE-B11F-00AA00530503 - ITaskScheduler interface ID
// 148BD528-A2AB-11CE-B11F-00AA00530503 - IEnumTasks interface ID
// 148BD52B-A2AB-11CE-B11F-00AA00530503 - ITaskTrigger interface ID

//+----------------------------------------------------------------------------
//
//  Datatypes
//
//-----------------------------------------------------------------------------

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_FLAG_INTERACTIVE                  (0x1)")
cpp_quote("#define TASK_FLAG_DELETE_WHEN_DONE             (0x2)")
cpp_quote("#define TASK_FLAG_DISABLED                     (0x4)")
cpp_quote("#define TASK_FLAG_START_ONLY_IF_IDLE           (0x10)")
cpp_quote("#define TASK_FLAG_KILL_ON_IDLE_END             (0x20)")
cpp_quote("#define TASK_FLAG_DONT_START_IF_ON_BATTERIES   (0x40)")
cpp_quote("#define TASK_FLAG_KILL_IF_GOING_ON_BATTERIES   (0x80)")
cpp_quote("#define TASK_FLAG_RUN_ONLY_IF_DOCKED           (0x100)")
cpp_quote("#define TASK_FLAG_HIDDEN                       (0x200)")
cpp_quote("#define TASK_FLAG_RUN_IF_CONNECTED_TO_INTERNET (0x400)")
cpp_quote("#define TASK_FLAG_RESTART_ON_IDLE_RESUME       (0x800)")
cpp_quote("#define TASK_FLAG_SYSTEM_REQUIRED              (0x1000)")

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)")

//
// 1440 = 60 mins/hour * 24 hrs/day since a trigger/TASK could run all day at
// one minute intervals.
//

const int TASK_MAX_RUN_TIMES = 1440;

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;            // Structure size.
    WORD Reserved1;                // Reserved. Must be zero.
    WORD wBeginYear;               // Trigger beginning date year.
    WORD wBeginMonth;              // Trigger beginning date month.
    WORD wBeginDay;                // Trigger beginning date day.
    WORD wEndYear;                 // Optional trigger ending date year.
    WORD wEndMonth;                // Optional trigger ending date month.
    WORD wEndDay;                  // Optional trigger ending date day.
    WORD wStartHour;               // Run bracket start time hour.
    WORD wStartMinute;             // Run bracket start time minute.
    DWORD MinutesDuration;         // Duration of run bracket.
    DWORD MinutesInterval;         // Run bracket repetition interval.
    DWORD rgFlags;                 // Trigger flags.
    TASK_TRIGGER_TYPE TriggerType; // Trigger type.
    TRIGGER_TYPE_UNION Type;       // Trigger data.
    WORD Reserved2;                // Reserved. Must be zero.
    WORD wRandomMinutesInterval;   // Maximum number of random minutes
                                   // after start time.
} TASK_TRIGGER, * PTASK_TRIGGER;

//+----------------------------------------------------------------------------
//
//  Interfaces
//
//-----------------------------------------------------------------------------

//+----------------------------------------------------------------------------
//
//  Interface:  ITaskTrigger
//
//  Synopsis:   Trigger object interface. A Task object may contain several
//              of these.
//
//-----------------------------------------------------------------------------
cpp_quote("// {148BD52B-A2AB-11CE-B11F-00AA00530503}")
cpp_quote("DEFINE_GUID(IID_ITaskTrigger, 0x148BD52BL, 0xA2AB, 0x11CE, 0xB1, 0x1F, 0x00, 0xAA, 0x00, 0x53, 0x05, 0x03);")

interface ITaskTrigger;
[
    local,
    object,
    uuid(148BD52B-A2AB-11CE-B11F-00AA00530503),
    pointer_default(unique)
]
interface ITaskTrigger : IUnknown
{
// Methods:
    HRESULT SetTrigger(
                [in] const PTASK_TRIGGER pTrigger);

    HRESULT GetTrigger(
                [out] PTASK_TRIGGER pTrigger);

    HRESULT GetTriggerString(
                [out] LPWSTR * ppwszTrigger);
};

//+----------------------------------------------------------------------------
//
//  Interface:  IScheduledWorkItem
//
//  Synopsis:   Abstract base class for any runnable work item that can be
//              scheduled by the task scheduler.
//
//-----------------------------------------------------------------------------
cpp_quote("// {a6b952f0-a4b1-11d0-997d-00aa006887ec}")
cpp_quote("DEFINE_GUID(IID_IScheduledWorkItem, 0xa6b952f0L, 0xa4b1, 0x11d0, 0x99, 0x7d, 0x00, 0xaa, 0x00, 0x68, 0x87, 0xec);")

interface IScheduledWorkItem;
[
    local,
    object,
    uuid(a6b952f0-a4b1-11d0-997d-00aa006887ec),
    pointer_default(unique)
]
interface IScheduledWorkItem : IUnknown
{
// Methods concerning scheduling:
    HRESULT CreateTrigger(
                [out] WORD *          piNewTrigger,
                [out] ITaskTrigger ** ppTrigger);

    HRESULT DeleteTrigger(
                [in] WORD iTrigger);

    HRESULT GetTriggerCount(
                [out] WORD * pwCount);

    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(
                [in, out] SYSTEMTIME * pstNextRun);

    HRESULT SetIdleWait(
                [in]  WORD   wIdleMinutes,
                [in]  WORD   wDeadlineMinutes);
    HRESULT GetIdleWait(
                [out] WORD * pwIdleMinutes,
                [out] WORD * pwDeadlineMinutes);

// Other methods:
    HRESULT Run(
                void);

    HRESULT Terminate(
                void);

    HRESULT EditWorkItem(
                [in] HWND hParent,
                [in] DWORD dwReserved);

    HRESULT GetMostRecentRunTime(
                [out] SYSTEMTIME * pstLastRun);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -