Megosztás a következőn keresztül:


CLRCreateInstance függvény (.NET-keretrendszer)

Három felület egyike: ICLRMetaHost, ICLRMetaHostPolicy vagy ICLRDebugging.

Syntax

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

Parameters

clsid
[in] A három osztályazonosító egyike: CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy vagy CLSID_CLRDebugging.

riid
[in] A három felületazonosító (IID) egyike: IID_ICLRMetaHost, IID_ICLRMetaHostPolicy vagy IID_ICLRDebugging.

ppInterface
[kifelé] A három felület egyike: ICLRMetaHost, ICLRMetaHostPolicy vagy ICLRDebugging.

Visszaadott érték

Ez a metódus a következő specifikus HRESULT-eket, valamint a metódushibát jelző HRESULT-hibákat adja vissza.

HRESULT Leírás
S_OK A metódus sikeresen befejeződött.
E_POINTER ppInterface null értékű.

Remarks

Az alábbi táblázat a támogatott kombinációkat clsidriidmutatja be.

clsid riid
CLSID_CLRMetaHost IID_ICLRMetaHost
CLSID_CLRMetaHostPolicy IID_ICLRMetaHostPolicy
CLSID_CLRDebugging IID_ICLRDebugging

Az alábbi kód bemutatja, hogyan lehet CLRCreateInstance mindhárom felületet lekérni:

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

A CreateInterface függvény aliasa a következő: CLRCreateInstance. Mindkettő CLRCreateInstance és CreateInterface a függvények felcserélhetők. Például:

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

Követelmények

Platformok: Lásd a rendszerkövetelményeket.

Fejléc: MetaHost.h

Kódtár: Erőforrásként szerepel az MSCor Enterprise kiadás.dll fájlban

.NET-keretrendszer verziók: 4 óta elérhető

Kapcsolódó információk