다음을 통해 공유


Implements 구조체

지정된 인터페이스를 QueryInterfaceGetIid 구현합니다.

구문

template <
    typename I0,
    typename I1 = Details::Nil,
    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 __declspec(novtable) Implements :
    Details::ImplementsHelper<
        RuntimeClassFlags<WinRt>,
        typename Details::InterfaceListHelper<
            I0, I1, I2, I3, I4, I5, I6, I7, I8, I9
        >::TypeT
    >,
    Details::ImplementsBase;

template <
    int flags,
    typename I0,
    typename I1,
    typename I2,
    typename I3,
    typename I4,
    typename I5,
    typename I6,
    typename I7,
    typename I8
>
struct __declspec(novtable) Implements<
        RuntimeClassFlags<flags>,
        I0, I1, I2, I3, I4, I5, I6, I7, I8> :
    Details::ImplementsHelper<
        RuntimeClassFlags<flags>,
        typename Details::InterfaceListHelper<
            I0, I1, I2, I3, I4, I5, I6, I7, I8
        >::TypeT
    >,
    Details::ImplementsBase;

매개 변수

I0
0번째 인터페이스 ID입니다. (필수)

I1
첫 번째 인터페이스 ID입니다. (선택 사항)

I2
두 번째 인터페이스 ID입니다. (선택 사항)

I3
세 번째 인터페이스 ID입니다. (선택 사항)

I4
네 번째 인터페이스 ID입니다. (선택 사항)

I5
다섯 번째 인터페이스 ID입니다. (선택 사항)

I6
여섯 번째 인터페이스 ID입니다. (선택 사항)

I7
일곱 번째 인터페이스 ID입니다. (선택 사항)

I8
여덟 번째 인터페이스 ID입니다. (선택 사항)

I9
아홉 번째 인터페이스 ID입니다. (선택 사항)

flags
클래스에 대한 구성 플래그입니다. RuntimeClassFlags 구조체에 지정된 하나 이상의 RuntimeClassType 열거형입니다.

설명

지정된 인터페이스 목록에서 파생되고 도우미 템플릿을 구현 QueryInterface 합니다 GetIid.

I0~I9 인터페이스 매개 변수는 IUnknownIInspectableChainInterfaces 템플릿에서 파생되어야 합니다. flags 매개 변수는 지원 생성 IUnknownIInspectable여부를 결정합니다.

멤버

공용 Typedefs

이름 설명
ClassFlags RuntimeClassFlags<WinRt>의 동의어입니다.

보호된 메서드

속성 설명
구현::CanCastTo 지정된 인터페이스에 대한 포인터를 가져옵니다.
구현::CastToUnknown 기본 인터페이스에 대한 포인터를 IUnknown 가져옵니다.
구현::FillArrayWithIid 현재 0번째 템플릿 매개 변수로 지정된 인터페이스 ID를 지정된 배열 요소에 삽입합니다.

보호된 상수

이름 설명
구현::IidCount 구현된 인터페이스 ID의 수를 보유합니다.

상속 계층 구조

I0

ChainInterfaces

I0

ImplementsBase

ImplementsHelper

Implements

요구 사항

헤더: implements.h

네임스페이스: Microsoft::WRL

구현::CanCastTo

지정된 인터페이스에 대한 포인터를 가져옵니다.

__forceinline HRESULT CanCastTo(
   REFIID riid,
   _Deref_out_ void **ppv
);

매개 변수

riid
인터페이스 ID에 대한 참조입니다.

ppv
성공하면 riid로 지정된 인터페이스에 대한 포인터입니다.

Return Value

S_OK 성공하면

설명

QueryInterface 작업을 수행하는 내부 도우미 함수입니다.

구현::CastToUnknown

기본 인터페이스에 대한 포인터를 IUnknown 가져옵니다.

__forceinline IUnknown* CastToUnknown();

Return Value

이 작업은 항상 성공하고 포인터를 반환합니다 IUnknown .

설명

내부 도우미 함수입니다.

구현::FillArrayWithIid

현재 0번째 템플릿 매개 변수로 지정된 인터페이스 ID를 지정된 배열 요소에 삽입합니다.

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

매개 변수

색인
이 작업의 시작 배열 요소를 나타내는 인덱스(0부터 시작)입니다. 이 작업이 완료되면 인덱스가 1씩 증가합니다.

iids
IID 형식의 배열입니다.

설명

내부 도우미 함수입니다.

구현::IidCount

구현된 인터페이스 ID의 수를 보유합니다.

static const unsigned long IidCount;