Udostępnij za pośrednictwem


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

Zobacz też