ICLRRuntimeInfo::GetInterface 方法

将 CLR 加载到当前进程并返回运行时接口指针,如 ICLRRuntimeHostICLRStrongNameIMetaDataDispenserEx

此方法取代弃用的 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。

下表显示了支持的 rclsidriid 组合。

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 起可用

另请参阅