将 CLR 加载到当前进程,并返回运行时接口指针,例如 ICLRRuntimeHost、 ICLRStrongName 和 IMetaDataDispenserEx。
此方法取代了已弃用的 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,但未初始化。
下表显示了支持的组合 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 |
Requirements
平台:请参阅系统要求。
Header: MetaHost.h
图书馆: 作为资源包含在 MSCorEE.dll
.NET Framework 版本: 自 4 起可用