CLRCreateInstance 函数
提供以下三个接口之一:ICLRMetaHost、ICLRMetaHostPolicy 或 ICLRDebugging。
HRESULT CLRCreateInstance(
[in] REFCLSID clsid,
[in] REFIID riid,
[out] LPVOID * ppInterface
);
参数
clsid
[in] 三个类标识符之一:CLSID_CLRMetaHost、CLSID_CLRMetaHostPolicy 或 CLSID_CLRDebugging。riid
[in] 三个接口标识符 (IID) 之一:IID_CLRMetaHost、IID_CLRMetaHostPolicy 或 IID_CLRDebugging。ppInterface
[out] 三个接口之一:ICLRMetaHost、ICLRMetaHostPolicy 或 ICLRDebugging。
返回值
此方法将返回以下特定的 HRESULT 以及用于指示方法失败的 HRESULT 错误。
HRESULT |
说明 |
---|---|
S_OK |
该方法成功完成。 |
E_POINTER |
ppInterface 为 null。 |
备注
下表显示了 clsid 和 riid 的受支持的组合。
rclsid |
riid |
---|---|
CLSID_CLRMetaHost |
IID_ICLRMetaHost |
CLSID_CLRMetaHostPolicy |
IID_ICLRMetaHostPolicy |
CLSID_CLRDebugging |
IID_ICLRDebugging |
下面的代码演示如何使用 CLRCreateInstance 获取所有三个接口:
#include <metahost.h>
#pragma comment(lib, "mscoree.lib")
ICLRMetaHost *pMetaHost = NULL;
ICLRMetaHostPolicy *pMetaHostPolicy = NULL;
ICLRDebugging *pCLRDebugging = NULL;
HRESULT hr;
hr = CLRCreateInstance(CLSID_CLRMetaHost, IID_ICLRMetaHost,
(LPVOID*)&pMetaHost);
hr = CLRCreateInstance (CLSID_CLRMetaHostPolicy, IID_ICLRMetaHostPolicy,
(LPVOID*)&pMetaHostPolicy);
hr = CLRCreateInstance (CLSID_CLRDebugging, IID_ICLRDebugging,
(LPVOID*)&pCLRDebugging);
要求
**平台:**请参见 .NET Framework 系统要求。
头文件: MetaHost.h
**库:**作为一项资源包含在 MSCorEE.dll 中
**.NET Framework 版本:**4