CLRCreateInstance 函式 (.NET Framework)
提供三個介面之一: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_ICLRMetaHost、IID_ICLRMetaHostPolicy或IID_ICLRDebugging。
ppInterface
[out]三個介面之一:ICLRMetaHost 、 ICLRMetaHostPolicy 或 ICLRDebugging 。
傳回值
這個方法會傳回下列特定的 HRESULT,以及表示方法失敗的 HRESULT 錯誤。
HRESULT | 描述 |
---|---|
S_OK | 已成功完成命令。 |
E_POINTER | ppInterface 為 null。 |
備註
下表顯示 和 riid
的支援組合 clsid
。
clsid |
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);
函 CreateInterface
式的別名為 CLRCreateInstance
。 和 CLRCreateInstance
CreateInterface
函式可以交替使用。 例如:
HMODULE hModule = LoadLibrary(L"mscoree.dll");
CreateInterfaceFnPtr createInterface = (CreateInterfaceFnPtr)GetProcAddress(hModule, "CreateInterface");
HRESULT hr;
hr = createInterface(CLSID_CLRMetaHost, IID_ICLRMetaHost, (LPVOID*)&pMetaHost);
hr = createInterface (CLSID_CLRMetaHostPolicy, IID_ICLRMetaHostPolicy, (LPVOID*)&pMetaHostPolicy);
hr = createInterface (CLSID_CLRDebugging, IID_ICLRDebugging, (LPVOID*)&pCLRDebugging);
需求
平台:請參閱系統需求。
標頭: MetaHost.h
程式庫: 包含在 MSCorEE.dll 中作為資源
.NET Framework 版本: 自 4 起提供