Dela via


CLRCreateInstance Function (.NET Framework)

Tillhandahåller ett av tre gränssnitt: ICLRMetaHost, ICLRMetaHostPolicy eller ICLRDebugging.

Syntax

HRESULT CLRCreateInstance(
    [in]  REFCLSID  clsid,
    [in]  REFIID     riid,
    [out] LPVOID  * ppInterface
);

Parametrar

clsid
[i] En av tre klassidentifierare: CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy eller CLSID_CLRDebugging.

riid
[i] En av tre gränssnittsidentifierare (IID: IID_ICLRMetaHost, IID_ICLRMetaHostPolicy eller IID_ICLRDebugging.

ppInterface
[ut] Ett av tre gränssnitt: ICLRMetaHost, ICLRMetaHostPolicy eller ICLRDebugging.

Returvärde

Den här metoden returnerar följande specifika HRESULT-fel samt HRESULT-fel som indikerar metodfel.

HRESULT Beskrivning
S_OK Metoden har slutförts.
E_POINTER ppInterface är null.

Kommentarer

I följande tabell visas de kombinationer som stöds för clsid och riid.

clsid riid
CLSID_CLRMetaHost IID_ICLRMetaHost
CLSID_CLRMetaHostPolicy IID_ICLRMetaHostPolicy
CLSID_CLRDebugging IID_ICLRDebugging

Följande kod visar hur du använder CLRCreateInstance för att hämta alla tre gränssnitten:

#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);

Funktionen CreateInterface aliaseras till CLRCreateInstance. Både CLRCreateInstance och CreateInterface funktioner kan användas utbytbart. Till exempel:

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);

Krav

Plattformar: Se Systemkrav.

Rubrik: MetaHost.h

Bibliotek: Ingår som en resurs i MSCorEE.dll

.NET Framework-versioner: Finns sedan 4

Se även