ITrigger
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID09941815-ea89-4b5b-89e0-2a773801fac3継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7
メソッド 13
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
| pId | LPWSTR* | inout | トリガーの識別子文字列を受け取る出力ポインタである。SysFreeString で解放する。 |
| id | LPWSTR | in | トリガーに設定する識別子文字列を指定する。 |
| pTimeLimit | LPWSTR* | inout | トリガーによって開始されたタスクの最大実行時間を ISO 8601 期間形式の文字列で受け取る出力ポインタである。SysFreeString で解放する。 |
| timelimit | LPWSTR | in | タスクの最大実行時間を ISO 8601 期間形式の文字列で指定する。 |
| pStart | LPWSTR* | inout | トリガーが有効になる開始日時を ISO 8601 形式の文字列で受け取る出力ポインタである。SysFreeString で解放する。 |
| start | LPWSTR | in | トリガーが有効になる開始日時を ISO 8601 形式の文字列で指定する。 |
| pEnd | LPWSTR* | inout | トリガーが無効になる終了日時を ISO 8601 形式の文字列で受け取る出力ポインタである。SysFreeString で解放する。 |
| end | LPWSTR | in | トリガーが無効になる終了日時を ISO 8601 形式の文字列で指定する。 |
| pEnabled | VARIANT_BOOL* | inout | トリガーが有効かどうかを受け取る VARIANT_BOOL へのポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ITrigger "{09941815-EA89-4B5B-89E0-2A773801FAC3}"
#usecom global ITrigger IID_ITrigger "{}"
#comfunc global ITrigger_get_Type 7 var
#comfunc global ITrigger_get_Id 8 var
#comfunc global ITrigger_put_Id 9 wstr
#comfunc global ITrigger_get_Repetition 10 sptr
#comfunc global ITrigger_put_Repetition 11 sptr
#comfunc global ITrigger_get_ExecutionTimeLimit 12 var
#comfunc global ITrigger_put_ExecutionTimeLimit 13 wstr
#comfunc global ITrigger_get_StartBoundary 14 var
#comfunc global ITrigger_put_StartBoundary 15 wstr
#comfunc global ITrigger_get_EndBoundary 16 var
#comfunc global ITrigger_put_EndBoundary 17 wstr
#comfunc global ITrigger_get_Enabled 18 var
#comfunc global ITrigger_put_Enabled 19 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_ITrigger "{09941815-EA89-4B5B-89E0-2A773801FAC3}"
#usecom global ITrigger IID_ITrigger "{}"
#comfunc global ITrigger_get_Type 7 sptr
#comfunc global ITrigger_get_Id 8 sptr
#comfunc global ITrigger_put_Id 9 wstr
#comfunc global ITrigger_get_Repetition 10 sptr
#comfunc global ITrigger_put_Repetition 11 sptr
#comfunc global ITrigger_get_ExecutionTimeLimit 12 sptr
#comfunc global ITrigger_put_ExecutionTimeLimit 13 wstr
#comfunc global ITrigger_get_StartBoundary 14 sptr
#comfunc global ITrigger_put_StartBoundary 15 wstr
#comfunc global ITrigger_get_EndBoundary 16 sptr
#comfunc global ITrigger_put_EndBoundary 17 wstr
#comfunc global ITrigger_get_Enabled 18 sptr
#comfunc global ITrigger_put_Enabled 19 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。