Win32 API 日本語リファレンス
ホームMedia.Speech › ISpTaskManager

ISpTaskManager

COM
IID2baeef81-2ca3-4331-98f3-26ec5abefb03継承元IUnknown自前メソッド開始 vtbl3

メソッド 7

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

vtbl 3 HRESULT SetThreadPoolInfo(SPTMTHREADINFO* pPoolInfo)
pPoolInfoSPTMTHREADINFO*in設定するスレッドプール構成情報SPTMTHREADINFOへのポインタ。
vtbl 4 HRESULT GetThreadPoolInfo(SPTMTHREADINFO* pPoolInfo)
pPoolInfoSPTMTHREADINFO*out現在のスレッドプール構成情報を受け取るSPTMTHREADINFOへのポインタ。
vtbl 5 HRESULT QueueTask(ISpTask* pTask, void* pvTaskData, HANDLE hCompEvent, DWORD* pdwGroupId, DWORD* pTaskID)
pTaskISpTask*inキューに投入する実行タスクISpTask。
pvTaskDatavoid*inタスクに渡すユーザー定義データへのポインタ。
hCompEventHANDLEinタスク完了時にシグナル状態にするイベントハンドル。NULL可。
pdwGroupIdDWORD*inoutタスクが属するグループIDを受け取る出力先。NULL可。
pTaskIDDWORD*out投入されたタスクのIDを受け取る出力先。NULL可。
vtbl 6 HRESULT CreateReoccurringTask(ISpTask* pTask, void* pvTaskData, HANDLE hCompEvent, ISpNotifySink** ppTaskCtrl)
pTaskISpTask*in繰り返し実行する対象タスクISpTask。
pvTaskDatavoid*inタスクに渡すユーザー定義データへのポインタ。
hCompEventHANDLEin完了通知に用いるイベントハンドル。NULL可。
ppTaskCtrlISpNotifySink**outタスクの起動を通知するための通知シンクISpNotifySinkを受け取る出力ポインタ。
vtbl 7 HRESULT CreateThreadControl(ISpThreadTask* pTask, void* pvTaskData, INT nPriority, ISpThreadControl** ppTaskCtrl)
pTaskISpThreadTask*inスレッド上で実行する対象タスクISpThreadTask。
pvTaskDatavoid*inタスクに渡すユーザー定義データへのポインタ。
nPriorityINTin生成スレッドの優先度(THREAD_PRIORITY_*相当の値)。
ppTaskCtrlISpThreadControl**out生成されたスレッド制御オブジェクトISpThreadControlを受け取る出力ポインタ。
vtbl 8 HRESULT TerminateTask(DWORD dwTaskId, DWORD ulWaitPeriod)
dwTaskIdDWORDin終了させる対象タスクのID。
ulWaitPeriodDWORDin終了完了を待つ最大時間(ミリ秒)。
vtbl 9 HRESULT TerminateTaskGroup(DWORD dwGroupId, DWORD ulWaitPeriod)
dwGroupIdDWORDin終了させる対象タスクグループのID。
ulWaitPeriodDWORDin終了完了を待つ最大時間(ミリ秒)。

HSP用 COM定義

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

出力引数:
#define global IID_ISpTaskManager "{2BAEEF81-2CA3-4331-98F3-26EC5ABEFB03}"
#usecom global ISpTaskManager IID_ISpTaskManager "{}"
#comfunc global ISpTaskManager_SetThreadPoolInfo      3 var
#comfunc global ISpTaskManager_GetThreadPoolInfo      4 var
#comfunc global ISpTaskManager_QueueTask              5 sptr,sptr,sptr,var,var
#comfunc global ISpTaskManager_CreateReoccurringTask  6 sptr,sptr,sptr,sptr
#comfunc global ISpTaskManager_CreateThreadControl    7 sptr,sptr,int,sptr
#comfunc global ISpTaskManager_TerminateTask          8 int,int
#comfunc global ISpTaskManager_TerminateTaskGroup     9 int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。