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