CLRCreateInstance, funkcja (.NET Framework)
Zapewnia jeden z trzech interfejsów: ICLRMetaHost, ICLRMetaHostPolicy lub ICLRDebugging.
Składnia
HRESULT CLRCreateInstance(
[in] REFCLSID clsid,
[in] REFIID riid,
[out] LPVOID * ppInterface
);
Parametry
clsid
[in] Jeden z trzech identyfikatorów klas: CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy lub CLSID_CLRDebugging.
riid
[in] Jeden z trzech identyfikatorów interfejsu (IID): IID_ICLRMetaHost, IID_ICLRMetaHostPolicy lub IID_ICLRDebugging.
ppInterface
[out] Jeden z trzech interfejsów: ICLRMetaHost, ICLRMetaHostPolicy lub ICLRDebugging.
Wartość zwracana
Ta metoda zwraca następujące określone elementy HRESULTs, a także błędy HRESULT wskazujące niepowodzenie metody.
HRESULT | opis |
---|---|
S_OK | Metoda została ukończona pomyślnie. |
E_POINTER | ppInterface ma wartość null. |
Uwagi
W poniższej tabeli przedstawiono obsługiwane kombinacje dla clsid
systemów i riid
.
clsid |
riid |
---|---|
CLSID_CLRMetaHost | IID_ICLRMetaHost |
CLSID_CLRMetaHostPolicy | IID_ICLRMetaHostPolicy |
CLSID_CLRDebugging | IID_ICLRDebugging |
Poniższy kod pokazuje, jak użyć CLRCreateInstance
polecenia , aby pobrać wszystkie trzy interfejsy:
#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);
Funkcja CreateInterface
ma alias na CLRCreateInstance
. Funkcji CLRCreateInstance
i CreateInterface
można używać zamiennie. Przykład:
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);
Wymagania
Platformy: zobacz Wymagania systemowe.
Nagłówek: MetaHost.h
Biblioteka: dołączone jako zasób w bibliotece MSCorEE.dll
Wersje programu .NET Framework: dostępne od 4