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 clsid
riid
mutatja 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ő