Win32 API 日本語リファレンス
ホームSystem.TaskScheduler › IMonthlyTrigger

IMonthlyTrigger

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID97c45ef1-6b02-4a1a-9c0e-1ebfba1500ac継承元ITrigger呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl20

公式ドキュメント

毎月のスケジュールに基づいてジョブを開始するトリガーを表します。

解説(Remarks)

タスクが開始される時刻は、StartBoundary プロパティで設定します。

タスク用の XML を独自に読み書きする場合、毎月のトリガーは Task Scheduler スキーマの ScheduleByMonth 要素を使用して指定します。

メソッド 8

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 20 HRESULT get_DaysOfMonth(INT* pDays)

タスクが実行される月内の日を取得または設定します。(Get)

pDaysINT*inoutトリガーが起動する日 (1〜31) を表すビットマスクを受け取る変数へのポインタである。

解説(Remarks)

16進値 10進値
1 0x01 1
2 0x02 2
3 0x04 4
4 0x08 8
5 0x10 16
6 0x20 32
7 0x40 64
8 0x80 128
9 0x100 256
10 0x200 512
11 0x400 1024
12 0x800 2048
13 0x1000 4096
14 0x2000 8192
15 0x4000 16384
16 0x8000 32768
17 0x10000 65536
18 0x20000 131072
19 0x40000 262144
20 0x80000 524288
21 0x100000 1048576
22 0x200000 2097152
23 0x400000 4194304
24 0x800000 8388608
25 0x1000000 16777216
26 0x2000000 33554432
27 0x4000000 67108864
28 0x8000000 134217728
29 0x10000000 268435456
30 0x20000000 536870912
31 0x40000000 1073741824
最終日 0x80000000 2147483648
 

タスク用の XML を独自に読み書きする場合、月内の日は Task Scheduler スキーマの DaysOfMonth 要素を使用して指定します。

vtbl 21 HRESULT put_DaysOfMonth(INT days)

タスクが実行される月内の日を取得または設定します。(Put)

daysINTinトリガーが起動する日 (1〜31) を表すビットマスクを指定する。

解説(Remarks)

16進値 10進値
1 0x01 1
2 0x02 2
3 0x04 4
4 0x08 8
5 0x10 16
6 0x20 32
7 0x40 64
8 0x80 128
9 0x100 256
10 0x200 512
11 0x400 1024
12 0x800 2048
13 0x1000 4096
14 0x2000 8192
15 0x4000 16384
16 0x8000 32768
17 0x10000 65536
18 0x20000 131072
19 0x40000 262144
20 0x80000 524288
21 0x100000 1048576
22 0x200000 2097152
23 0x400000 4194304
24 0x800000 8388608
25 0x1000000 16777216
26 0x2000000 33554432
27 0x4000000 67108864
28 0x8000000 134217728
29 0x10000000 268435456
30 0x20000000 536870912
31 0x40000000 1073741824
最終日 0x80000000 2147483648
 

タスク用の XML を独自に読み書きする場合、月内の日は Task Scheduler スキーマの DaysOfMonth 要素を使用して指定します。

vtbl 22 HRESULT get_MonthsOfYear(SHORT* pMonths)

タスクが実行される年内の月を取得または設定します。(IMonthlyTrigger.get_MonthsOfYear)

pMonthsSHORT*inoutトリガーが起動する月を表すビットマスクを受け取る変数へのポインタである。

解説(Remarks)

次の表は、このプロパティで使用されるビットマスクの対応を示します。

16進値 10進値
1月 0X001 1
2月 0x002 2
3月 0X004 4
4月 0x008 8
5月 0X010 16
6月 0X020 32
7月 0x040 64
8月 0X080 128
9月 0X100 256
10月 0X200 512
11月 0X400 1024
12月 0X800 2048
 

タスク用の XML を独自に読み書きする場合、年内の月は Task Scheduler スキーマの Months 要素を使用して指定します。

vtbl 23 HRESULT put_MonthsOfYear(SHORT months)

タスクが実行される年内の月を取得または設定します。(IMonthlyTrigger.put_MonthsOfYear)

monthsSHORTinトリガーが起動する月を表すビットマスクを指定する。

解説(Remarks)

次の表は、このプロパティで使用されるビットマスクの対応を示します。

16進値 10進値
1月 0X001 1
2月 0x002 2
3月 0X004 4
4月 0x008 8
5月 0X010 16
6月 0X020 32
7月 0x040 64
8月 0X080 128
9月 0X100 256
10月 0X200 512
11月 0X400 1024
12月 0X800 2048
 

タスク用の XML を独自に読み書きする場合、年内の月は Task Scheduler スキーマの Months 要素を使用して指定します。

vtbl 24 HRESULT get_RunOnLastDayOfMonth(VARIANT_BOOL* pLastDay)

タスクが月の最終日に実行されることを示す Boolean 値を取得または設定します。(Get)

pLastDayVARIANT_BOOL*inout月の最終日に起動するかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 25 HRESULT put_RunOnLastDayOfMonth(VARIANT_BOOL lastDay)

タスクが月の最終日に実行されることを示す Boolean 値を取得または設定します。(Put)

lastDayVARIANT_BOOLin月の最終日に起動するかどうかを指定する VARIANT_BOOL である。
vtbl 26 HRESULT get_RandomDelay(LPWSTR* pRandomDelay)

トリガーの開始時刻にランダムに追加される遅延時間を取得または設定します。(IMonthlyTrigger.get_RandomDelay)

pRandomDelayLPWSTR*inoutタスク開始に加算されるランダムな遅延の最大時間を ISO 8601 期間形式の文字列で受け取る出力ポインタである。SysFreeString で解放する。
vtbl 27 HRESULT put_RandomDelay(LPWSTR randomDelay)

トリガーの開始時刻にランダムに追加される遅延時間を取得または設定します。(IMonthlyTrigger.put_RandomDelay)

randomDelayLPWSTRinタスク開始に加算するランダムな遅延の最大時間を ISO 8601 期間形式の文字列で指定する。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IMonthlyTrigger "{97C45EF1-6B02-4A1A-9C0E-1EBFBA1500AC}"
#usecom global IMonthlyTrigger IID_IMonthlyTrigger "{}"
#comfunc global IMonthlyTrigger_get_DaysOfMonth          20 var
#comfunc global IMonthlyTrigger_put_DaysOfMonth          21 int
#comfunc global IMonthlyTrigger_get_MonthsOfYear         22 var
#comfunc global IMonthlyTrigger_put_MonthsOfYear         23 int
#comfunc global IMonthlyTrigger_get_RunOnLastDayOfMonth  24 var
#comfunc global IMonthlyTrigger_put_RunOnLastDayOfMonth  25 int
#comfunc global IMonthlyTrigger_get_RandomDelay          26 var
#comfunc global IMonthlyTrigger_put_RandomDelay          27 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。