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

ITaskTrigger

COM
IID148bd52b-a2ab-11ce-b11f-00aa00530503継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

タスクのトリガーへのアクセスと設定を行うためのメソッドを提供します。トリガーは、タスクの開始時刻、繰り返し条件、およびタスクの実行タイミングを制御するその他のパラメーターを指定します。

メソッド 3

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT SetTrigger(TASK_TRIGGER* pTrigger)

SetTrigger メソッドは、タスクトリガーのトリガー条件を設定します。

pTriggerTASK_TRIGGER*in新しいタスクトリガーを定義する値を格納した TASK_TRIGGER 構造体へのポインター。

戻り値

SetTrigger メソッドは、次のいずれかの値を返します。

リターンコード 説明
S_OK
操作は成功しました。
E_INVALIDARG
引数が無効です。
E_OUTOFMEMORY
使用可能なメモリが不足しています。

解説(Remarks)

TASK_TRIGGER 構造体の wBeginDaywBeginMonthwBeginYear の各メンバーには、それぞれ有効な日、月、年を設定する必要があります。

1 つのタスクには任意の数のトリガーを関連付けることができます。タスクが実行される時刻は、そのタスクに定義されたすべてのトリガーの和集合になります。

これらの新しいトリガー設定でタスクを更新するには、アプリケーションは SetTrigger を呼び出した後に IPersistFile::Save メソッドを呼び出す必要があります。

Examples

次のコードは、このメソッドの変数宣言と呼び出し構文を、 TASK_TRIGGER の必須メンバーを含めて示しています。新しいトリガーを作成する際のトリガー条件の設定については、Creating a New Trigger を参照してください。

HRESULT hr = S_OK;

TASK_TRIGGER Trigger;

ZeroMemory(&Trigger, sizeof(TASK_TRIGGER));

Trigger.cbTriggerSize = sizeof(TASK_TRIGGER);
Trigger.wBeginDay = 1;
Trigger.wBeginMonth = 1;
Trigger.wBeginYear = 1999;

// pITaskTrigger is a previously assigned ITaskTrigger pointer.
hr = pITaskTrigger->SetTrigger(&Trigger);
if (FAILED(hr))
{
   printf("Failed SetTrigger\n");
   exit(1);
}
vtbl 4 HRESULT GetTrigger(TASK_TRIGGER* pTrigger)

GetTrigger メソッドは、現在のタスクトリガーを取得します。

pTriggerTASK_TRIGGER*out現在のタスクトリガーを格納する TASK_TRIGGER 構造体へのポインター。この構造体をこのメソッドに渡す前に、 TASK_TRIGGER 構造体の cbTriggerSize メンバーにタスクトリガー構造体のサイズを設定する必要があります。

戻り値

GetTrigger メソッドは、次のいずれかの値を返します。

リターンコード 説明
S_OK
操作は成功しました。
E_INVALIDARG
pTrigger パラメーターが無効です。
E_OUTOFMEMORY
使用可能なメモリが不足しています。

解説(Remarks)

スケジュールされた作業項目には、1 つ以上のトリガーを定義できます。作業項目が実行される時刻は、その項目に定義されたすべてのトリガーの和集合になります。

vtbl 5 HRESULT GetTriggerString(LPWSTR* ppwszTrigger)

GetTriggerString メソッドは、現在のタスクトリガーを文字列の形式で取得します。この文字列は、タスク スケジューラのユーザーインターフェイスに "At 2PM every day, starting 5/11/97." のような形式で表示されます。

ppwszTriggerLPWSTR*out現在のタスクトリガーを説明する null 終端文字列へのポインターへのポインター。 GetTriggerString を呼び出したメソッドは、CoTaskMemFree 関数を使用してこの文字列を解放する責任があります。

戻り値

GetTriggerString メソッドは、次のいずれかの値を返します。

リターンコード 説明
S_OK
操作は成功しました。
E_INVALIDARG
引数が無効です。
E_OUTOFMEMORY
使用可能なメモリが不足しています。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ITaskTrigger "{148BD52B-A2AB-11CE-B11F-00AA00530503}"
#usecom global ITaskTrigger IID_ITaskTrigger "{}"
#comfunc global ITaskTrigger_SetTrigger        3 var
#comfunc global ITaskTrigger_GetTrigger        4 var
#comfunc global ITaskTrigger_GetTriggerString  5 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。