다음을 통해 공유


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입니다.

설명

다음 표는 clsidriid에 대해 지원되는 조합을 보여 줍니다.

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부터 사용 가능

참고 항목