Funzione CLRCreateInstance (.NET Framework)
Fornisce una delle tre interfacce: ICLRMetaHost, ICLRMetaHostPolicy o ICLRDebugging.
Sintassi
HRESULT CLRCreateInstance(
[in] REFCLSID clsid,
[in] REFIID riid,
[out] LPVOID * ppInterface
);
Parametri
clsid
[in] Uno dei tre identificatori di classe: CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy o CLSID_CLRDebugging.
riid
[in] Uno dei tre identificatori di interfaccia (IID): IID_ICLRMetaHost, IID_ICLRMetaHostPolicy o IID_ICLRDebugging.
ppInterface
[out] Una delle tre interfacce: ICLRMetaHost, ICLRMetaHostPolicy o ICLRDebugging.
Valore restituito
Questo metodo restituisce gli specifici HRESULT seguenti, nonché gli errori di HRESULT che indicano la mancata riuscita del metodo.
HRESULT | Descrizione |
---|---|
S_OK | Metodo completato correttamente. |
E_POINTER | ppInterface è null. |
Osservazioni:
La tabella seguente illustra le combinazioni supportate per clsid
e riid
.
clsid |
riid |
---|---|
CLSID_CLRMetaHost | IID_ICLRMetaHost |
CLSID_CLRMetaHostPolicy | IID_ICLRMetaHostPolicy |
CLSID_CLRDebugging | IID_ICLRDebugging |
Il codice seguente illustra come usare CLRCreateInstance
per ottenere tutte e tre le interfacce:
#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);
La CreateInterface
funzione è aliasata a CLRCreateInstance
. Entrambe le CLRCreateInstance
funzioni e CreateInterface
possono essere usate in modo intercambiabile. Ad esempio:
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);
Requisiti
Piattaforme: vedere Requisiti di sistema.
Intestazione: MetaHost.h
Libreria: inclusa come risorsa in MSCor edizione Enterprise.dll
Versioni di .NET Framework: disponibili dalla versione 4