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

Vedi anche