Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Предоставляет один из трех интерфейсов: ICLRMetaHost, ICLRMetaHostPolicy или ICLRDebugging.
Синтаксис
HRESULT CLRCreateInstance(
[in] REFCLSID clsid,
[in] REFIID riid,
[out] LPVOID * ppInterface
);
Параметры
clsid
[in] Один из трех идентификаторов класса: CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy или CLSID_CLRDebugging.
riid
[in] Один из трех идентификаторов интерфейса (IID): IID_ICLRMetaHost, IID_ICLRMetaHostPolicy или IID_ICLRDebugging.
ppInterface
[out] Один из трех интерфейсов: ICLRMetaHost, ICLRMetaHostPolicy или ICLRDebugging.
Возвращаемое значение
Этот метод возвращает следующие конкретные результаты HRESULT, а также ошибки HRESULT, которые указывают на сбой метода.
| HRESULT | Description |
|---|---|
| S_OK | Метод завершился успешно. |
| E_POINTER | Параметр ppInterface имеет значение null. |
Замечания
В следующей таблице показаны поддерживаемые сочетания для clsid и riid.
clsid |
riid |
|---|---|
| CLSID_CLRMetaHost | IID_ICLRMetaHost |
| CLSID_CLRMetaHostPolicy | IID_ICLRMetaHostPolicy |
| CLSID_CLRDebugging | IID_ICLRDebugging |
В следующем коде показано, как использовать CLRCreateInstance для получения всех трех интерфейсов:
#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);
Эта CreateInterface функция называется псевдонимом CLRCreateInstance. CreateInterface Обе CLRCreateInstance функции можно использовать взаимозаменяемо. Например:
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);
Требования
Платформы: см. раздел Требования к системе.
Заголовок: MetaHost.h
Библиотека: включена в качестве ресурса в MSCorEE.dll
версии платформа .NET Framework: Доступно с 4