Freigeben über


CLRCreateInstance-Funktion (.NET Framework)

Stellt eine von drei Schnittstellen bereit: ICLRMetaHost, ICLRMetaHostPolicy oder ICLRDebugging.

Syntax

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

Parameter

clsid
[in] Einer von drei Klassenbezeichnern: CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy oder CLSID_CLRDebugging.

riid
[in] Einer von drei Schnittstellenbezeichnern (IIDs): IID_ICLRMetaHost, IID_ICLRMetaHostPolicy oder IID_ICLRDebugging.

ppInterface
[out] Eine von drei Schnittstellen: ICLRMetaHost, ICLRMetaHostPolicy oder ICLRDebugging.

Rückgabewert

Diese Methode gibt die folgenden spezifischen HRESULTs sowie HRESULT-Fehler zurück, die Methodenfehler anzeigen.

HRESULT BESCHREIBUNG
S_OK Die Methode wurde erfolgreich abgeschlossen.
E_POINTER ppInterface ist NULL.

Bemerkungen

In der folgenden Tabelle sind die unterstützten Kombinationen für clsid und aufgeführt riid.

clsid riid
CLSID_CLRMetaHost IID_ICLRMetaHost
CLSID_CLRMetaHostPolicy IID_ICLRMetaHostPolicy
CLSID_CLRDebugging IID_ICLRDebugging

Der folgende Code zeigt, wie Sie CLRCreateInstance verwenden, um alle drei Schnittstellen abzurufen:

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

Für die CreateInterface-Funktion kann CLRCreateInstance als Alias verwendet werden. Die beiden Funktionen CLRCreateInstance und CreateInterface können austauschbar verwendet werden. Beispiel:

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

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: MetaHost.h

Bibliothek: Als Ressource in „MsCorEE.dll“ enthalten.

.NET Framework-Versionen: Seit Version 4 verfügbar

Siehe auch