Delen via


CLRCreateInstance, functie (.NET Framework)

Biedt een van de drie interfaces: ICLRMetaHost, ICLRMetaHostPolicy of ICLRDebugging.

Syntaxis

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

Parameters

clsid
[in] Een van de drie klasse-id's: CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy of CLSID_CLRDebugging.

riid
[in] Een van de drie interface-id's (IID's): IID_ICLRMetaHost, IID_ICLRMetaHostPolicy of IID_ICLRDebugging.

ppInterface
[uit] Een van de drie interfaces: ICLRMetaHost, ICLRMetaHostPolicy of ICLRDebugging.

Retourwaarde

Deze methode retourneert de volgende specifieke HRESULT's, evenals HRESULT-fouten die duiden op een fout in de methode.

HRESULT Omschrijving
S_OK De methode is voltooid.
E_POINTER ppInterface is null.

Opmerkingen

In de volgende tabel ziet u de ondersteunde combinaties voor clsid en riid.

clsid riid
CLSID_CLRMetaHost IID_ICLRMetaHost
CLSID_CLRMetaHostPolicy IID_ICLRMetaHostPolicy
CLSID_CLRDebugging IID_ICLRDebugging

De volgende code laat zien hoe CLRCreateInstance u alle drie de interfaces kunt ophalen:

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

De CreateInterface functie is een alias naar CLRCreateInstance. Beide CLRCreateInstance functies CreateInterface kunnen door elkaar worden gebruikt. Bijvoorbeeld:

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

Vereisten

Platformen: Zie Systeemvereisten.

Header: MetaHost.h

Bibliotheek: Opgenomen als een resource in MSCorEE.dll

.NET Framework-versies: beschikbaar sinds 4

Zie ook