CLRCreateInstance 함수(.NET Framework)
ICLRMetaHost, ICLRMetaHostPolicy 또는 ICLRDebugging의 세 인터페이스 중 하나를 제공합니다.
구문
HRESULT CLRCreateInstance(
[in] REFCLSID clsid,
[in] REFIID riid,
[out] LPVOID * ppInterface
);
매개 변수
clsid
[in] CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy 또는 CLSID_CLRDebugging 세 가지 클래스 식별자 중 하나입니다.
riid
[in] 3개의 IID(인터페이스 식별자) 중 하나는 IID_ICLRMetaHost, IID_ICLRMetaHostPolicy 또는 IID_ICLRDebugging.
ppInterface
[out] ICLRMetaHost, ICLRMetaHostPolicy 또는 ICLRDebugging의 세 가지 인터페이스 중 하나입니다.
Return Value
이 메서드는 다음과 같은 특정 HRESULT뿐만 아니라 메서드 오류를 나타내는 HRESULT 오류도 반환합니다.
HRESULT | 설명 |
---|---|
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부터 사용 가능
참고 항목
.NET