Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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