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