ICLRRuntimeInfo::GetInterface 方法
将 CLR 加载到当前进程并返回运行时接口指针,如 ICLRRuntimeHost、ICLRStrongName 和 IMetaDataDispenserEx。
此方法取代弃用的 CLR 承载函数部分中的所有 CorBindTo
* 函数。
语法
HRESULT GetInterface(
[in] REFCLSID rclsid,
[in] REFIID riid,
[out, iid_is(riid), retval] LPVOID *ppUnk);
参数
rclsid
[in] 组件类的 CLSID 接口。
riid
[in] 请求的 rclsid
接口的 IID。
ppUnk
[out] 指向查询接口的指针。
返回值
此方法返回以下特定 HRESULT 以及表示方法失败的 HRESULT 错误。
HRESULT | 说明 |
---|---|
S_OK | 该方法已成功完成。 |
E_POINTER | ppUnk 为 null。 |
E_OUTOFMEMORY | 内存不足,无法处理请求。 |
CLR_E_SHIM_LEGACYRUNTIMEALREADYBOUND | 其他运行时已绑定旧版 CLR 版本 2 激活策略。 |
备注
此方法导致加载但不初始化 CLR。
下表显示了支持的 rclsid
和 riid
组合。
rclsid |
riid |
---|---|
CLSID_CorMetaDataDispenser | IID_IMetaDataDispenser、IID_IMetaDataDispenserEx |
CLSID_CorMetaDataDispenserRuntime | IID_IMetaDataDispenser、IID_IMetaDataDispenserEx |
CLSID_CorRuntimeHost | IID_ICorRuntimeHost |
CLSID_CLRRuntimeHost | IID_ICLRRuntimeHost |
CLSID_TypeNameFactory | IID_ITypeNameFactory |
CLSID_CLRDebuggingLegacy | IID_ICorDebug |
CLSID_CLRStrongName | IID_ICLRStrongName |
要求
平台:请参阅系统要求。
标头:MetaHost.h
库:作为资源包含在 MSCorEE.dll 中
.NET Framework 版本:自 4 起可用