RuntimeClass
클래스
지정된 인터페이스를 상속하고 지정된 Windows 런타임, 클래식 COM 및 약한 참조 지원을 제공하는 WinRT 또는 COM 클래스를 나타냅니다.
이 클래스는 WinRT 및 COM 클래스의 상용구 구현을 제공하여 모 AddRef
Release
듈의 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
개체가 구현 IUnknown
IInspectable
하는 인터페이스 목록 또는 제어되는 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
성공하면
RuntimeClass::DecrementReference
현재 RuntimeClass
개체에 대한 참조 수를 줄입니다.
ULONG DecrementReference();
반환 값
S_OK
성공하면
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
성공하면
설명
어설션 오류가 정의되거나 정의되지 않은 경우 __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
성공하면
RuntimeClass::Release
현재 RuntimeClass
개체에 대한 COM 릴리스 작업을 수행합니다.
STDMETHOD_(
ULONG,
Release
)();
반환 값
S_OK
성공하면
설명
참조 수가 0이 되면 개체가 RuntimeClass
삭제됩니다.
RuntimeClass::RuntimeClass
클래스의 현재 인스턴스를 초기화합니다 RuntimeClass
.
RuntimeClass();