ICLRRuntimeInfo::GetInterface Method

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

此方法取代了已弃用的 CLR 托管函数部分中的所有 CorBindTo* 函数。

Syntax

HRESULT GetInterface(
[in]  REFCLSID rclsid,
[in]  REFIID   riid,
[out, iid_is(riid), retval] LPVOID *ppUnk);

Parameters

rclsid [in]coclass 的 CLSID 接口。

riid [in]请求 rclsid 的接口的 IID。

ppUnk [out]指向查询接口的指针。

Return Value

此方法返回以下特定的 HRESULT 以及指示方法失败的 HRESULT 错误。

HRESULT Description
S_OK 该方法已成功完成。
E_POINTER ppUnk 为 null。
E_OUTOFMEMORY 没有足够的内存可用于处理请求。
CLR_E_SHIM_LEGACYRUNTIMEALREADYBOUND 其他运行时已绑定到旧版 CLR 版本 2 激活策略。

Remarks

此方法会导致加载 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

Requirements

平台:请参阅系统要求

Header: MetaHost.h

图书馆: 作为资源包含在 MSCorEE.dll

.NET Framework 版本: 自 4 起可用

See also