다음을 통해 공유


InterfaceTraits 구조체

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

구문

template<typename I0>
struct __declspec(novtable) InterfaceTraits;

template<typename CloakedType>
struct __declspec(novtable) InterfaceTraits<
    CloakedIid<CloakedType>
>;

template<>
struct __declspec(novtable) InterfaceTraits<Nil>;

매개 변수

I0
인터페이스의 이름입니다.

CloakedType
Implements ChainInterfaces지원되는 인터페이스 ID 목록에 없는 인터페이스의 경우 RuntimeClass

설명

인터페이스의 일반적인 특성을 구현합니다.

두 번째 템플릿은 은폐된 인터페이스에 대한 특수화입니다. 세 번째 템플릿은 Nil 매개 변수에 대한 특수화입니다.

멤버

공용 Typedefs

속성 설명
Base I0 템플릿 매개 변수의 동의어입니다.

공용 메서드

이름 설명
InterfaceTraits::CanCastTo 지정한 포인터를 포인터로 캐스팅할 Base수 있는지 여부를 나타냅니다.
InterfaceTraits::CastToBase 지정한 포인터를 포인터로 캐스팅합니다 Base.
InterfaceTraits::CastToUnknown 지정한 포인터를 포인터로 캐스팅합니다 IUnknown.
InterfaceTraits::FillArrayWithIid 인덱스 인수로 지정된 배열 요소에 인터페이스 ID Base 를 할당합니다.
InterfaceTraits::Verify 제대로 파생된 것을 Base 확인합니다.

공용 상수

속성 설명
InterfaceTraits::IidCount 현재 InterfaceTraits 개체와 연결된 인터페이스 ID의 수를 보유합니다.

상속 계층 구조

InterfaceTraits

요구 사항

헤더: implements.h

네임스페이스: Microsoft::WRL::D etails

InterfaceTraits::CanCastTo

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

template<typename T>
static __forceinline bool CanCastTo(
   _In_ T* ptr,
   REFIID riid,
   _Deref_out_ void **ppv
);

매개 변수

ptr
형식에 대한 포인터의 이름입니다.

riid
의 인터페이스 ID입니다 Base.

ppv
이 작업이 성공 하면 ppv 는 에 지정된 Base인터페이스를 가리킵니다. 그렇지 않으면 ppv 가 .로 nullptr설정됩니다.

Return Value

true이 작업이 성공하고 ptr이 포인터Base로 캐스팅되면 이고, false그렇지 않으면 .

설명

지정한 포인터를 포인터로 캐스팅할 Base수 있는지 여부를 나타냅니다.

자세한 Base내용은 공용 Typedefs 섹션을 참조 하세요 .

InterfaceTraits::CastToBase

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

template<typename T>
static __forceinline Base* CastToBase(
   _In_ T* ptr
);

매개 변수

T
매개 변수 ptr의 형식입니다.

ptr
T 형식에 대한 포인터입니다.

Return Value

Base에 대한 포인터입니다.

설명

지정한 포인터를 포인터로 캐스팅합니다 Base.

자세한 Base내용은 공용 Typedefs 섹션을 참조 하세요 .

InterfaceTraits::CastToUnknown

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

template<typename T>
static __forceinline IUnknown* CastToUnknown(
   _In_ T* ptr
);

매개 변수

T
매개 변수 ptr의 형식입니다.

ptr
T 형식에 대한 포인터입니다.

Return Value

파생된 IUnknown에 Base 대한 포인터입니다.

설명

지정한 포인터를 포인터로 캐스팅합니다 IUnknown.

자세한 Base내용은 공용 Typedefs 섹션을 참조 하세요 .

InterfaceTraits::FillArrayWithIid

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

__forceinline static void FillArrayWithIid(
   _Inout_ unsigned long &index,
   _In_ IID* iids
);

매개 변수

색인
인덱스 값이 0부터 시작하는 필드에 대한 포인터입니다.

iids
인터페이스 ID의 배열입니다.

설명

인덱스 인수로 지정된 배열 요소에 인터페이스 ID Base 를 할당합니다.

이 API의 이름과 달리 하나의 배열 요소만 수정됩니다. 전체 배열이 아닙니다.

자세한 Base내용은 공용 Typedefs 섹션을 참조 하세요 .

InterfaceTraits::IidCount

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

static const unsigned long IidCount = 1;

설명

현재 InterfaceTraits 개체와 연결된 인터페이스 ID의 수를 보유합니다.

InterfaceTraits::Verify

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

__forceinline static void Verify();

설명

제대로 파생된 것을 Base 확인합니다.

자세한 Base내용은 공용 Typedefs 섹션을 참조 하세요 .