Bagikan melalui


Fungsi CLRCreateInstance (.NET Framework)

Menyediakan salah satu dari tiga antarmuka: ICLRMetaHost, ICLRMetaHostPolicy, atau ICLRDebugging.

Sintaks

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

Parameter

clsid
[in] Salah satu dari tiga pengidentifikasi kelas: CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy, atau CLSID_CLRDebugging.

riid
[in] Salah satu dari tiga pengenal antarmuka (IID): IID_ICLRMetaHost, IID_ICLRMetaHostPolicy, atau IID_ICLRDebugging.

ppInterface
[out] Salah satu dari tiga pengenal antarmuka ICLRMetaHost, ICLRMetaHostPolicy, atau ICLRDebugging.

Tampilkan Nilai

Metode ini menampilkan HRESULT tertentu berikut serta kesalahan HRESULT yang menunjukkan kegagalan metode.

HRESULT Deskripsi
S_OK Metode berhasil diselesaikan.
E_POINTER ppInterface adalah null.

Keterangan

Tabel berikut ini memperlihatkan kombinasi yang didukung untuk clsid dan riid.

clsid riid
CLSID_CLRMetaHost IID_ICLRMetaHost
CLSID_CLRMetaHostPolicy IID_ICLRMetaHostPolicy
CLSID_CLRDDebugging IID_ICLRDebugging

Kode berikut menunjukkan cara menggunakan CLRCreateInstance untuk mendapatkan ketiga antarmuka:

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

Fungsi CreateInterface ini alias ke CLRCreateInstance. Fungsi CLRCreateInstance dan CreateInterface dapat digunakan secara bergantian. Contohnya:

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

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: MetaHost.h

Pustaka: Disertakan sebagai sumber daya di MSCorEE.dll

Versi .NET Framework: Tersedia mulai dari 4

Lihat juga