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

ICLRRuntimeHost

COM
IID90f1a06c-7712-4762-86b5-7a5eba6bdb02継承元IUnknown自前メソッド開始 vtbl3

メソッド 9

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

vtbl 3 HRESULT Start()
vtbl 4 HRESULT Stop()
vtbl 5 HRESULT SetHostControl(IHostControl* pHostControl)
pHostControlIHostControl*inホストが提供する制御インターフェイスを表す IHostControl インターフェイスへのポインタである。CLR がホストマネージャを取得するために使用する。
vtbl 6 HRESULT GetCLRControl(ICLRControl** pCLRControl)
pCLRControlICLRControl**outCLR の動作を制御するための ICLRControl インターフェイスへのポインタを受け取る。
vtbl 7 HRESULT UnloadAppDomain(DWORD dwAppDomainId, BOOL fWaitUntilDone)
dwAppDomainIdDWORDinアンロードする対象のアプリケーションドメイン ID を指定する。
fWaitUntilDoneBOOLinアンロードが完了するまで呼び出しをブロックするかどうかを指定する。TRUE なら完了まで待機する。
vtbl 8 HRESULT ExecuteInAppDomain(DWORD dwAppDomainId, FExecuteInAppDomainCallback pCallback, void* cookie)
dwAppDomainIdDWORDinコールバックを実行する対象のアプリケーションドメイン ID を指定する。
pCallbackFExecuteInAppDomainCallbackin指定したドメイン内で実行するコールバック関数へのポインタである。
cookievoid*inコールバック関数に渡すユーザー定義のコンテキストデータへのポインタである。
vtbl 9 HRESULT GetCurrentAppDomainId(DWORD* pdwAppDomainId)
pdwAppDomainIdDWORD*out現在のアプリケーションドメインの ID を受け取る DWORD へのポインタである。
vtbl 10 HRESULT ExecuteApplication(LPWSTR pwzAppFullName, DWORD dwManifestPaths, LPWSTR* ppwzManifestPaths, DWORD dwActivationData, LPWSTR* ppwzActivationData, INT* pReturnValue)
pwzAppFullNameLPWSTRin実行するアプリケーションの完全な表示名を表す、NULL 終端のワイド文字列へのポインタである。
dwManifestPathsDWORDinppwzManifestPaths 配列に含まれるマニフェストパスの数を指定する。
ppwzManifestPathsLPWSTR*inアプリケーションのマニフェストファイルのパスを格納したワイド文字列配列へのポインタである。
dwActivationDataDWORDinppwzActivationData 配列に含まれるアクティベーションデータの数を指定する。
ppwzActivationDataLPWSTR*inアプリケーションに渡すアクティベーションデータを格納したワイド文字列配列へのポインタである。
pReturnValueINT*outアプリケーションが返した終了コードを受け取る INT へのポインタである。
vtbl 11 HRESULT ExecuteInDefaultAppDomain(LPWSTR pwzAssemblyPath, LPWSTR pwzTypeName, LPWSTR pwzMethodName, LPWSTR pwzArgument, DWORD* pReturnValue)
pwzAssemblyPathLPWSTRin実行するメソッドを含むアセンブリファイルのパスを表す、NULL 終端のワイド文字列へのポインタである。
pwzTypeNameLPWSTRinメソッドを含む型の完全修飾名を表す、NULL 終端のワイド文字列へのポインタである。
pwzMethodNameLPWSTRin実行する静的メソッドの名前を表す、NULL 終端のワイド文字列へのポインタである。
pwzArgumentLPWSTRinメソッドに渡す単一の文字列引数を表す、NULL 終端のワイド文字列へのポインタである。
pReturnValueDWORD*outメソッドが返した整数値を受け取る DWORD へのポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_ICLRRuntimeHost "{90F1A06C-7712-4762-86B5-7A5EBA6BDB02}"
#usecom global ICLRRuntimeHost IID_ICLRRuntimeHost "{}"
#comfunc global ICLRRuntimeHost_Start                      3
#comfunc global ICLRRuntimeHost_Stop                       4
#comfunc global ICLRRuntimeHost_SetHostControl             5 sptr
#comfunc global ICLRRuntimeHost_GetCLRControl              6 sptr
#comfunc global ICLRRuntimeHost_UnloadAppDomain            7 int,int
#comfunc global ICLRRuntimeHost_ExecuteInAppDomain         8 int,sptr,sptr
#comfunc global ICLRRuntimeHost_GetCurrentAppDomainId      9 var
#comfunc global ICLRRuntimeHost_ExecuteApplication         10 wstr,int,var,int,var,var
#comfunc global ICLRRuntimeHost_ExecuteInDefaultAppDomain  11 wstr,wstr,wstr,wstr,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。