Поделиться через


Структура Implements

Реализует QueryInterface и GetIid для указанных интерфейсов.

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
    Идентификатор нулевого интерфейса. (Обязательно)

  • I1
    Идентификатор первого интерфейса. (Необязательный параметр)

  • I2
    Идентификатор второго интерфейса. (Необязательный параметр)

  • I3
    Идентификатор третьего интерфейса. (Необязательный параметр)

  • I4
    Идентификатор четвертого интерфейса. (Необязательный параметр)

  • I5
    Идентификатор пятого интерфейса. (Необязательный параметр)

  • I6
    Идентификатор шестого интерфейса. (Необязательный параметр)

  • I7
    Идентификатор седьмого интерфейса. (Необязательный параметр)

  • I8
    Идентификатор восьмого интерфейса. (Необязательный параметр)

  • I9
    Идентификатор девятого интерфейса. (Необязательный параметр)

  • flags
    Флаги конфигурации для класса. Одно или несколько перечислений RuntimeClassType, определенных в структуре RuntimeClassFlags.

Примечания

Является производным от списка определенных интерфейсов и реализует шаблоны поддержки для QueryInterface и GetIid.

Каждый I0 через параметр интерфейса I9 должен быть производным от IUnknown, IInspectable или шаблона ChainInterfaces. Параметр flags определяет, создается ли поддержка IUnknown или IInspectable.

Члены

Общедоступные Typedefs

Имя

Описание

ClassFlags

Синоним для RuntimeClassFlags<WinRt>.

Защищенные методы

Имя

Описание

Метод Implements::CanCastTo

Получает указатель на указанный интерфейс.

Метод Implements::CastToUnknown

Получает указатель на базовый интерфейс IUnknown.

Метод Implements::FillArrayWithIid

Вставляет идентификатор интерфейса, заданный текущим параметром шаблона zeroth в конкретный элемент массива.

Защищенные константы

Имя

Описание

Константа Implements::IidCount

Содержит количество реализованных идентификаторов интерфейса.

Иерархия наследования

I0

ChainInterfaces

I0

ImplementsBase

ImplementsHelper

Implements

Требования

Заголовок: implements.h

Пространство имен: Microsoft::WRL

См. также

Ссылки

Пространство имен Microsoft::WRL