CLRCreateInstance 함수
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 |
설명 |
---|---|
S_OK |
메서드가 성공적으로 완료되었습니다. |
E_POINTER |
ppInterface이 null입니다. |
설명
다음 표에서는 clsid와 riid의 지원되는 조합을 보여 줍니다.
rclsid |
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);
요구 사항
플랫폼: .NET Framework 시스템 요구 사항 참조
헤더: MetaHost.h
라이브러리: MSCorEE.dll에 리소스로 포함됨
.NET Framework 버전: 4