IEventTrigger
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
システムイベントが発生したときにタスクを開始するトリガーを表します。
解説(Remarks)
イベントサブスクリプションを持つタスクは最大 500 個まで作成できます。さまざまなイベントをクエリするイベントサブスクリプションを使用すると、それらのイベントがログに記録されたときに、同じアクションを実行するタスクをトリガーできます。
タスク用の XML を独自に読み書きする場合、イベントトリガーは Task Scheduler スキーマの EventTrigger 要素を使用して指定します。
例
このインターフェイスの詳細とサンプルコードについては、Event Trigger Example (C++) を参照してください。
メソッド 6
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
トリガーを発生させるイベントを識別するクエリ文字列を取得または設定します。(Get)
| pQuery | LPWSTR* | inout | トリガーの対象となるイベントを定義する XPath サブスクリプションクエリを受け取る出力ポインタである。SysFreeString で解放する。 |
解説(Remarks)
タスク用の XML を独自に読み書きする場合、イベントサブスクリプションは Task Scheduler スキーマの Subscription 要素を使用して指定します。
特定のイベント向けのクエリ文字列の記述方法の詳細については、Event Selection および Subscribing to Events を参照してください。
例
次のクエリ文字列は、System チャネル内のすべてのレベル 2 イベントに対するサブスクリプションを定義します。
"<QueryList>
<Query Id='1'>
<Select Path='System'>*[System/Level=2]</Select>
</Query>
</QueryList>"
トリガーを発生させるイベントを識別するクエリ文字列を取得または設定します。(Put)
| query | LPWSTR | in | トリガーの対象とするイベントを定義する XPath サブスクリプションクエリを指定する。 |
解説(Remarks)
タスク用の XML を独自に読み書きする場合、イベントサブスクリプションは Task Scheduler スキーマの Subscription 要素を使用して指定します。
特定のイベント向けのクエリ文字列の記述方法の詳細については、Event Selection および Subscribing to Events を参照してください。
例
次のクエリ文字列は、System チャネル内のすべてのレベル 2 イベントに対するサブスクリプションを定義します。
"<QueryList>
<Query Id='1'>
<Select Path='System'>*[System/Level=2]</Select>
</Query>
</QueryList>"
イベントが発生してからタスクが開始されるまでの時間を示す値を取得または設定します。(Get)
| pDelay | LPWSTR* | inout | イベント発生からタスク開始までの遅延時間を ISO 8601 期間形式の文字列で受け取る出力ポインタである。SysFreeString で解放する。 |
解説(Remarks)
タスク用の XML を独自に読み書きする場合、イベントの遅延は Task Scheduler スキーマの Delay 要素を使用して指定します。
イベントが発生してからタスクが開始されるまでの時間を示す値を取得または設定します。(Put)
| delay | LPWSTR | in | イベント発生からタスク開始までの遅延時間を ISO 8601 期間形式の文字列で指定する。 |
解説(Remarks)
タスク用の XML を独自に読み書きする場合、イベントの遅延は Task Scheduler スキーマの Delay 要素を使用して指定します。
名前付き XPath クエリのコレクションを取得または設定します。コレクション内の各クエリは、Subscription プロパティで指定されたサブスクリプションクエリから返された、最後に一致したイベント XML に適用されます。(Get)
| ppNamedXPaths | ITaskNamedValueCollection** | out | イベントから値を抽出する名前付き XPath クエリのコレクション (ITaskNamedValueCollection) を受け取る出力ポインタである。 |
解説(Remarks)
クエリの名前は、次のアクションプロパティ内で変数として使用できます。
- IShowMessageAction の MessageBody プロパティ
- IShowMessageAction の Title プロパティ
- IExecAction の Arguments プロパティ
- IExecAction の WorkingDirectory プロパティ
- IEmailAction の Server プロパティ
- IEmailAction の Subject プロパティ
- IEmailAction の To プロパティ
- IEmailAction の Cc プロパティ
- IEmailAction の Bcc プロパティ
- IEmailAction の ReplyTo プロパティ
- IEmailAction の From プロパティ
- IEmailAction の Body プロパティ
- IComHandlerAction の Data プロパティ
次のコード例の文字列は、名前と値のコレクションで使用できる 2 つの名前と値のペアを示しています。 XPath クエリによって返される値は、アクションプロパティ内の変数を置き換えることができます。これらの値は、アクションプロパティ内で $(user) および $(machine) という名前で参照されます。たとえば、$(user) および $(machine) 変数が IShowMessageAction の MessageBody プロパティ で使用されている場合、XPath クエリの値が文字列内の変数を置き換えます。
name: user
value: Event/UserData/SubjectUserName
name: machine
value: Event/UserData/MachineName
特定のイベント向けのクエリ文字列の記述方法の詳細については、Event Selection および Subscribing to Events を参照してください。
名前付き XPath クエリのコレクションを取得または設定します。コレクション内の各クエリは、Subscription プロパティで指定されたサブスクリプションクエリから返された、最後に一致したイベント XML に適用されます。(Put)
| pNamedXPaths | ITaskNamedValueCollection* | in | イベントから値を抽出する名前付き XPath クエリのコレクション (ITaskNamedValueCollection) へのポインタである。 |
解説(Remarks)
クエリの名前は、次のアクションプロパティ内で変数として使用できます。
- IShowMessageAction の MessageBody プロパティ
- IShowMessageAction の Title プロパティ
- IExecAction の Arguments プロパティ
- IExecAction の WorkingDirectory プロパティ
- IEmailAction の Server プロパティ
- IEmailAction の Subject プロパティ
- IEmailAction の To プロパティ
- IEmailAction の Cc プロパティ
- IEmailAction の Bcc プロパティ
- IEmailAction の ReplyTo プロパティ
- IEmailAction の From プロパティ
- IEmailAction の Body プロパティ
- IComHandlerAction の Data プロパティ
次のコード例の文字列は、名前と値のコレクションで使用できる 2 つの名前と値のペアを示しています。 XPath クエリによって返される値は、アクションプロパティ内の変数を置き換えることができます。これらの値は、アクションプロパティ内で $(user) および $(machine) という名前で参照されます。たとえば、$(user) および $(machine) 変数が IShowMessageAction の MessageBody プロパティ で使用されている場合、XPath クエリの値が文字列内の変数を置き換えます。
name: user
value: Event/UserData/SubjectUserName
name: machine
value: Event/UserData/MachineName
特定のイベント向けのクエリ文字列の記述方法の詳細については、Event Selection および Subscribing to Events を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IEventTrigger "{D45B0167-9653-4EEF-B94F-0732CA7AF251}" #usecom global IEventTrigger IID_IEventTrigger "{}" #comfunc global IEventTrigger_get_Subscription 20 var #comfunc global IEventTrigger_put_Subscription 21 wstr #comfunc global IEventTrigger_get_Delay 22 var #comfunc global IEventTrigger_put_Delay 23 wstr #comfunc global IEventTrigger_get_ValueQueries 24 sptr #comfunc global IEventTrigger_put_ValueQueries 25 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IEventTrigger "{D45B0167-9653-4EEF-B94F-0732CA7AF251}" #usecom global IEventTrigger IID_IEventTrigger "{}" #comfunc global IEventTrigger_get_Subscription 20 sptr #comfunc global IEventTrigger_put_Subscription 21 wstr #comfunc global IEventTrigger_get_Delay 22 sptr #comfunc global IEventTrigger_put_Delay 23 wstr #comfunc global IEventTrigger_get_ValueQueries 24 sptr #comfunc global IEventTrigger_put_ValueQueries 25 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。