ホーム › System.ClrHosting › ICLRMetaHostPolicy
ICLRMetaHostPolicy
COMメソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetRequestedRuntime(METAHOST_POLICY_FLAGS dwPolicyFlags, LPWSTR pwzBinary, IStream* pCfgStream, LPWSTR pwzVersion, DWORD* pcchVersion, LPWSTR pwzImageVersion, DWORD* pcchImageVersion, DWORD* pdwConfigFlags, GUID* riid, void** ppRuntime)
| dwPolicyFlags | METAHOST_POLICY_FLAGS | in | ランタイム選択ポリシーの動作を制御する METAHOST_POLICY_FLAGS 値を指定する。 |
| pwzBinary | LPWSTR | in | バインディング対象のバイナリ(実行可能ファイル)のパスを表す、NULL 終端のワイド文字列へのポインタである。NULL を指定できる。 |
| pCfgStream | IStream* | in | 構成情報を格納した構成ファイルのストリームを表す IStream インターフェイスへのポインタである。不要なら NULL を指定できる。 |
| pwzVersion | LPWSTR | inoutoptional | 入力時は希望するバージョン、出力時は解決されたバージョン文字列を受け取るワイド文字列バッファへのポインタである。 |
| pcchVersion | DWORD* | inout | 入力時は pwzVersion バッファの文字数を、出力時は必要な、または書き込まれた文字数を受け取る DWORD へのポインタである。 |
| pwzImageVersion | LPWSTR | outoptional | 選択されたランタイムのイメージバージョン文字列を受け取るワイド文字列バッファへのポインタである。 |
| pcchImageVersion | DWORD* | inout | 入力時は pwzImageVersion バッファの文字数を、出力時は必要な、または書き込まれた文字数を受け取る DWORD へのポインタである。 |
| pdwConfigFlags | DWORD* | out | 解決の際に適用された構成フラグを受け取る DWORD へのポインタである。 |
| riid | GUID* | in | 要求するランタイムインターフェイスの識別子(IID)を表す GUID へのポインタである。 |
| ppRuntime | void** | out | 選択されたランタイムを表すインターフェイス(通常は ICLRRuntimeInfo)へのポインタを受け取る。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ICLRMetaHostPolicy "{E2190695-77B2-492E-8E14-C4B3A7FDD593}" #usecom global ICLRMetaHostPolicy IID_ICLRMetaHostPolicy "{}" #comfunc global ICLRMetaHostPolicy_GetRequestedRuntime 3 int,wstr,sptr,var,var,var,var,var,var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ICLRMetaHostPolicy "{E2190695-77B2-492E-8E14-C4B3A7FDD593}" #usecom global ICLRMetaHostPolicy IID_ICLRMetaHostPolicy "{}" #comfunc global ICLRMetaHostPolicy_GetRequestedRuntime 3 int,wstr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。