다음을 통해 공유


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

참고 항목

기타 리소스

호스팅(관리되지 않는 API 참조)