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

IHostTaskManager

COM
IID997ff24c-43b7-4352-8667-0dc04fafd354継承元IUnknown自前メソッド開始 vtbl3

メソッド 18

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

vtbl 3 HRESULT GetCurrentTask(IHostTask** pTask)
pTaskIHostTask**out現在実行中のホストタスクを表す IHostTask インターフェイスを受け取るポインタへのポインタである。
vtbl 4 HRESULT CreateTask(DWORD dwStackSize, LPTHREAD_START_ROUTINE pStartAddress, void* pParameter, IHostTask** ppTask)
dwStackSizeDWORDin作成するタスクのスタックサイズをバイト単位で指定する DWORD であり、0 を指定すると既定値が使用される。
pStartAddressLPTHREAD_START_ROUTINEinタスクが実行する開始関数(LPTHREAD_START_ROUTINE)である。
pParametervoid*in開始関数に渡される任意のパラメータへのポインタである。
ppTaskIHostTask**out作成されたホストタスクを表す IHostTask インターフェイスを受け取るポインタへのポインタである。
vtbl 5 HRESULT Sleep(DWORD dwMilliseconds, DWORD option)
dwMillisecondsDWORDin現在のタスクをスリープさせる時間をミリ秒単位で指定する DWORD である。
optionDWORDinスリープ時の動作を指定するオプションフラグ(DWORD)である。
vtbl 6 HRESULT SwitchToTask(DWORD option)
optionDWORDinタスク切り替え時の動作を指定するオプションフラグ(DWORD)である。
vtbl 7 HRESULT SetUILocale(DWORD lcid)
lcidDWORDinUI に使用するロケール識別子(LCID)を指定する DWORD である。
vtbl 8 HRESULT SetLocale(DWORD lcid)
lcidDWORDin使用するロケール識別子(LCID)を指定する DWORD である。
vtbl 9 HRESULT CallNeedsHostHook(UINT_PTR target, BOOL* pbCallNeedsHostHook)
targetUINT_PTRin呼び出し対象のアドレスを指定する UINT_PTR である。
pbCallNeedsHostHookBOOL*outその呼び出しにホストフックが必要か否かを受け取る BOOL へのポインタである。
vtbl 10 HRESULT LeaveRuntime(UINT_PTR target)
targetUINT_PTRinランタイムを離れて呼び出す対象のアドレスを指定する UINT_PTR である。
vtbl 11 HRESULT EnterRuntime()
vtbl 12 HRESULT ReverseLeaveRuntime()
vtbl 13 HRESULT ReverseEnterRuntime()
vtbl 14 HRESULT BeginDelayAbort()
vtbl 15 HRESULT EndDelayAbort()
vtbl 16 HRESULT BeginThreadAffinity()
vtbl 17 HRESULT EndThreadAffinity()
vtbl 18 HRESULT SetStackGuarantee(DWORD guarantee)
guaranteeDWORDin保証するスタックサイズをバイト単位で指定する DWORD である。
vtbl 19 HRESULT GetStackGuarantee(DWORD* pGuarantee)
pGuaranteeDWORD*out現在保証されているスタックサイズ(バイト)を受け取る DWORD へのポインタである。
vtbl 20 HRESULT SetCLRTaskManager(ICLRTaskManager* ppManager)
ppManagerICLRTaskManager*inこのホストタスクマネージャーに関連付ける CLR タスクマネージャーを表す ICLRTaskManager インターフェイスへのポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IHostTaskManager "{997FF24C-43B7-4352-8667-0DC04FAFD354}"
#usecom global IHostTaskManager IID_IHostTaskManager "{}"
#comfunc global IHostTaskManager_GetCurrentTask       3 sptr
#comfunc global IHostTaskManager_CreateTask           4 int,sptr,sptr,sptr
#comfunc global IHostTaskManager_Sleep                5 int,int
#comfunc global IHostTaskManager_SwitchToTask         6 int
#comfunc global IHostTaskManager_SetUILocale          7 int
#comfunc global IHostTaskManager_SetLocale            8 int
#comfunc global IHostTaskManager_CallNeedsHostHook    9 sptr,var
#comfunc global IHostTaskManager_LeaveRuntime         10 sptr
#comfunc global IHostTaskManager_EnterRuntime         11
#comfunc global IHostTaskManager_ReverseLeaveRuntime  12
#comfunc global IHostTaskManager_ReverseEnterRuntime  13
#comfunc global IHostTaskManager_BeginDelayAbort      14
#comfunc global IHostTaskManager_EndDelayAbort        15
#comfunc global IHostTaskManager_BeginThreadAffinity  16
#comfunc global IHostTaskManager_EndThreadAffinity    17
#comfunc global IHostTaskManager_SetStackGuarantee    18 int
#comfunc global IHostTaskManager_GetStackGuarantee    19 var
#comfunc global IHostTaskManager_SetCLRTaskManager    20 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。