RuntimeClass 클래스

지정된 인터페이스를 상속하고 지정된 Windows 런타임, 클래식 COM 및 약한 참조 지원을 제공하는 WinRT 또는 COM 클래스를 나타냅니다.

이 클래스는 WinRT 및 COM 클래스의 상용구 구현을 제공하여 모 AddRefRelease 듈의 QueryInterface참조 횟수를 관리하고 활성화 가능한 개체에 대한 클래스 팩터리를 제공하기 위한 지원을 제공합니다.

구문

template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;

매개 변수

classFlags
선택적 매개 변수입니다. 하나 이상의 RuntimeClassType 열거형 값의 조합입니다. __WRL_CONFIGURATION_LEGACY__ 프로젝트의 모든 런타임 클래스에 classFlags 대한 기본값을 변경하도록 매크로를 정의할 수 있습니다. 정의된 RuntimeClass 경우 인스턴스는 기본적으로 Agile이 아닌 인스턴스입니다. 정의 RuntimeClass 되지 않은 경우 인스턴스는 기본적으로 민첩합니다. 모호성을 방지하려면 항상 in TInterfaces 또는 RuntimeClassType::InhibitFtmBase.을 Microsoft::WRL::FtmBase 지정합니다. FtmBase 둘 다 사용되는 경우 InhibitFtmBase 개체는 Agile이 됩니다.

TInterfaces
개체가 구현 IUnknownIInspectable 하는 인터페이스 목록 또는 제어되는 RuntimeClassType다른 인터페이스입니다. 또한 개체를 민첩하게 Microsoft::WRL::FtmBase 만들고 구현 IMarshal하도록 하기 위해 파생될 다른 클래스를 나열할 수도 있습니다.

멤버

RuntimeClassInitialize
함수 템플릿을 사용하여 개체를 생성하는 경우 MakeAndInitialize 개체를 초기화하는 함수입니다. 개체가 성공적으로 초기화되었는지 또는 초기화에 실패한 경우 COM 오류 코드가 반환 S_OK 됩니다. COM 오류 코드가 반환 값 MakeAndInitialize으로 전파됩니다. RuntimeClassInitialize 함수 템플릿을 사용하여 개체를 Make 생성하는 경우 메서드가 호출되지 않습니다.

공용 생성자

속성 설명
RuntimeClass::RuntimeClass 클래스의 현재 인스턴스를 초기화합니다 RuntimeClass .
RuntimeClass::~RuntimeClass 클래스의 현재 인스턴스를 초기화합니다 RuntimeClass .

공용 메서드

이름 설명
RuntimeClass::AddRef 현재 RuntimeClass 개체에 대한 참조 수를 증분합니다.
RuntimeClass::DecrementReference 현재 RuntimeClass 개체에 대한 참조 수를 줄입니다.
RuntimeClass::GetIids 현재 RuntimeClass 개체에 의해 구현된 인터페이스 ID를 포함할 수 있는 배열을 가져옵니다.
RuntimeClass::GetRuntimeClassName 현재 RuntimeClass 개체의 런타임 클래스 이름을 가져옵니다.
RuntimeClass::GetTrustLevel 현재 RuntimeClass 개체의 신뢰 수준을 가져옵니다.
RuntimeClass::GetWeakReference 현재 RuntimeClass 개체의 약한 참조 개체에 대한 포인터를 가져옵니다.
RuntimeClass::InternalAddRef 참조 수를 현재 RuntimeClass 개체로 증분합니다.
RuntimeClass::QueryInterface 지정된 인터페이스 ID에 대한 포인터를 검색합니다.
RuntimeClass::Release 현재 RuntimeClass 개체에 대한 COM 릴리스 작업을 수행합니다.

상속 계층 구조

계층 구조는 구현 세부 정보입니다.

요구 사항

헤더: implements.h

네임스페이스:Microsoft::WRL

RuntimeClass::~RuntimeClass

클래스의 현재 인스턴스를 초기화합니다 RuntimeClass .

virtual ~RuntimeClass();

RuntimeClass::AddRef

현재 RuntimeClass 개체에 대한 참조 수를 증분합니다.

STDMETHOD_(
   ULONG,
   AddRef
)();

반환 값

S_OK 성공하면 HRESULT 오류를 나타내는 것입니다.

RuntimeClass::DecrementReference

현재 RuntimeClass 개체에 대한 참조 수를 줄입니다.

ULONG DecrementReference();

반환 값

S_OK 성공하면 HRESULT 오류를 나타내는 것입니다.

RuntimeClass::GetIids

현재 RuntimeClass 개체에 의해 구현된 인터페이스 ID를 포함할 수 있는 배열을 가져옵니다.

STDMETHOD(
   GetIids
)
   (_Out_ ULONG *iidCount,
   _Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);

매개 변수

iidCount
이 작업이 완료되면 배열 iids의 총 요소 수입니다.

iids
이 작업이 완료될 때 인터페이스 ID 배열에 대한 포인터입니다.

반환 값

성공하면 S_OK이고, 그렇지 않으면 E_OUTOFMEMORY입니다.

RuntimeClass::GetRuntimeClassName

현재 RuntimeClass 개체의 런타임 클래스 이름을 가져옵니다.

STDMETHOD( GetRuntimeClassName )(
    _Out_ HSTRING* runtimeName
);

매개 변수

runtimeName
이 작업이 완료되면 런타임 클래스 이름입니다.

반환 값

S_OK 성공하면 HRESULT 오류를 나타내는 것입니다.

설명

어설션 오류가 정의되거나 정의되지 않은 경우 __WRL_STRICT____WRL_FORCE_INSPECTABLE_CLASS_MACRO__ 내보내집니다.

RuntimeClass::GetTrustLevel

현재 RuntimeClass 개체의 신뢰 수준을 가져옵니다.

STDMETHOD(GetTrustLevel)(
    _Out_ TrustLevel* trustLvl
);

매개 변수

trustLvl
이 작업이 완료되면 현재 RuntimeClass 개체의 신뢰 수준입니다.

반환 값

항상 S_OK입니다.

설명

어설션 오류가 정의되거나 정의되지 않은 경우 __WRL_STRICT____WRL_FORCE_INSPECTABLE_CLASS_MACRO__ 내보내집니다.

RuntimeClass::GetWeakReference

현재 RuntimeClass 개체의 약한 참조 개체에 대한 포인터를 가져옵니다.

STDMETHOD(
   GetWeakReference
)(_Deref_out_ IWeakReference **weakReference);

매개 변수

weakReference
이 작업이 완료되면 약한 참조 개체에 대한 포인터입니다.

반환 값

항상 S_OK입니다.

RuntimeClass::InternalAddRef

참조 수를 현재 RuntimeClass 개체로 증분합니다.

ULONG InternalAddRef();

반환 값

결과 참조 수입니다.

RuntimeClass::QueryInterface

지정된 인터페이스 ID에 대한 포인터를 검색합니다.

STDMETHOD(
   QueryInterface
)
   (REFIID riid,
   _Deref_out_ void **ppvObject);

매개 변수

riid
인터페이스 ID입니다.

ppvObject
이 작업이 완료되면 매개 변수로 지정된 인터페이스에 대한 포인터입니다 riid .

반환 값

S_OK 성공하면 HRESULT 오류를 나타내는 것입니다.

RuntimeClass::Release

현재 RuntimeClass 개체에 대한 COM 릴리스 작업을 수행합니다.

STDMETHOD_(
   ULONG,
   Release
)();

반환 값

S_OK 성공하면 HRESULT 오류를 나타내는 것입니다.

설명

참조 수가 0이 되면 개체가 RuntimeClass 삭제됩니다.

RuntimeClass::RuntimeClass

클래스의 현재 인스턴스를 초기화합니다 RuntimeClass .

RuntimeClass();