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_ICLRMetaHost、IID_ICLRMetaHostPolicy 或 IID_ICLRDebugging。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