共用方式為


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 。 和 CLRCreateInstanceCreateInterface 函式可以交替使用。 例如:

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 起提供

另請參閱