ChainInterfaces 구조체
인터페이스 ID 집합에 적용할 수 있는 확인 및 초기화 함수를 지정합니다.
구문
template <
typename I0,
typename I1,
typename I2 = Details::Nil,
typename I3 = Details::Nil,
typename I4 = Details::Nil,
typename I5 = Details::Nil,
typename I6 = Details::Nil,
typename I7 = Details::Nil,
typename I8 = Details::Nil,
typename I9 = Details::Nil
>
struct ChainInterfaces : I0;
template <
typename DerivedType,
typename BaseType,
bool hasImplements,
typename I1,
typename I2,
typename I3,
typename I4,
typename I5,
typename I6,
typename I7,
typename I8,
typename I9
>
struct ChainInterfaces<
MixIn<
DerivedType,
BaseType,
hasImplements
>, I1, I2, I3, I4, I5, I6, I7, I8, I9
>;
매개 변수
I0
(필수) 인터페이스 ID 0.
I1
(필수) 인터페이스 ID 1.
I2
(선택 사항) 인터페이스 ID 2.
I3
(선택 사항) 인터페이스 ID 3.
I4
(선택 사항) 인터페이스 ID 4.
I5
(선택 사항) 인터페이스 ID 5.
I6
(선택 사항) 인터페이스 ID 6.
I7
(선택 사항) 인터페이스 ID 7.
I8
(선택 사항) 인터페이스 ID 8.
I9
(선택 사항) 인터페이스 ID 9.
DerivedType
파생 형식입니다.
BaseType
파생 형식의 기본 형식입니다.
hasImplements
이 경우 true
Implements 구조에서 파생되지 않는 클래스와 MixIn 구조를 사용할 수 없다는 것을 의미하는 부울 값입니다.
멤버
보호된 메서드
속성 | 설명 |
---|---|
ChainInterfaces::CanCastTo | 지정된 인터페이스 ID를 템플릿 매개 변수로 정의된 ChainInterface 각 특수화로 캐스팅할 수 있는지 여부를 나타냅니다. |
ChainInterfaces::CastToUnknown | I0 템플릿 매개 변수로 정의된 형식의 인터페이스 포인터를 포인터로 캐스팅합니다IUnknown . |
ChainInterfaces::FillArrayWithIid | I0 템플릿 매개 변수로 정의된 인터페이스 ID를 지정된 인터페이스 ID 배열의 지정된 위치에 저장합니다. |
ChainInterfaces::Verify | 템플릿 매개 변수 I0에서 I9까지 정의된 각 인터페이스가 I0에서 IUnknown 상속되고 IInspectable I0이 I1에서 I9까지 상속되는지 확인합니다. |
보호된 상수
속성 | 설명 |
---|---|
ChainInterfaces::IidCount | 템플릿 매개 변수 I0~I9로 지정된 인터페이스에 포함된 총 인터페이스 ID 수입니다. |
상속 계층 구조
I0
ChainInterfaces
요구 사항
헤더: implements.h
네임스페이스: Microsoft::WRL
ChainInterfaces::CanCastTo
지정된 인터페이스 ID를 기본이 아닌 템플릿 매개 변수로 정의된 각 특수화로 캐스팅할 수 있는지 여부를 나타냅니다.
__forceinline bool CanCastTo(
REFIID riid,
_Deref_out_ void **ppv
);
매개 변수
riid
인터페이스 ID입니다.
ppv
성공적으로 캐스팅된 마지막 인터페이스 ID에 대한 포인터입니다.
Return Value
true
모든 캐스트 작업이 성공하면 이고, 그렇지 않으면 . false
ChainInterfaces::CastToUnknown
I0 템플릿 매개 변수로 정의된 형식의 인터페이스 포인터를 포인터로 캐스팅합니다IUnknown
.
__forceinline IUnknown* CastToUnknown();
Return Value
IUnknown
에 대한 포인터입니다.
ChainInterfaces::FillArrayWithIid
I0 템플릿 매개 변수로 정의된 인터페이스 ID를 지정된 인터페이스 ID 배열의 지정된 위치에 저장합니다.
__forceinline static void FillArrayWithIid(
_Inout_ unsigned long &index,
_In_ IID* iids
);
매개 변수
색인
iids 배열의 인덱스 값에 대한 포인터입니다 .
iids
인터페이스 ID의 배열입니다.
ChainInterfaces::IidCount
템플릿 매개 변수 I0~I9로 지정된 인터페이스에 포함된 총 인터페이스 ID 수입니다.
static const unsigned long IidCount = Details::InterfaceTraits<I0>::IidCount + Details::InterfaceTraits<I1>::IidCount + Details::InterfaceTraits<I2>::IidCount + Details::InterfaceTraits<I3>::IidCount + Details::InterfaceTraits<I4>::IidCount + Details::InterfaceTraits<I5>::IidCount + Details::InterfaceTraits<I6>::IidCount + Details::InterfaceTraits<I7>::IidCount + Details::InterfaceTraits<I8>::IidCount + Details::InterfaceTraits<I9>::IidCount;
Return Value
인터페이스 ID의 총 개수입니다.
설명
템플릿 매개 변수 I0 및 I1이 필요하며 매개 변수 I2~I9는 선택 사항입니다. 각 인터페이스의 IID 수는 일반적으로 1입니다.
ChainInterfaces::Verify
템플릿 매개 변수 I0에서 I9까지 정의된 각 인터페이스가 I0에서 IUnknown
상속되고 IInspectable
I0이 I1에서 I9까지 상속되는지 확인합니다.
WRL_NOTHROW __forceinline static void Verify();
설명
확인 작업이 실패하는 경우 static_assert
에서 실패를 설명하는 오류 메시지를 내보냅니다.
템플릿 매개 변수 I0 및 I1이 필요하며 매개 변수 I2~I9는 선택 사항입니다.