Sdílet prostřednictvím


Implementuje strukturu

Implementuje QueryInterface a GetIid pro zadaná rozhraní.

Syntaxe

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;

Parametry

I0
ID nulového rozhraní. (Povinné)

I1
První ID rozhraní. (Nepovinné)

I2
Druhé ID rozhraní. (Nepovinné)

I3
ID třetího rozhraní. (Nepovinné)

I4
Čtvrté ID rozhraní. (Nepovinné)

I5
ID pátého rozhraní. (Nepovinné)

I6
Šesté ID rozhraní. (Nepovinné)

I7
Sedmé ID rozhraní. (Nepovinné)

I8
OSMÉ ID rozhraní. (Nepovinné)

I9
ID devátého rozhraní. (Nepovinné)

vlajky
Příznaky konfigurace pro třídu. Jeden nebo více výčtů RuntimeClassType , které jsou zadány ve struktuře RuntimeClassFlags .

Poznámky

Odvozuje ze seznamu zadaných rozhraní a implementuje pomocné šablony pro QueryInterface a GetIid.

Každý parametr rozhraní I0I9 musí být odvozen z IUnknownšablony , IInspectablenebo ChainInterfaces . Parametr flags určuje, zda je podpora generována pro IUnknown nebo IInspectable.

Členové

Veřejné definice typedef

Název Popis
ClassFlags Synonymum pro RuntimeClassFlags<WinRt>.

Chráněné metody

Název Popis
Implements::CanCastTo Získá ukazatel na zadané rozhraní.
Implements::CastToUnknown Získá ukazatel na základní IUnknown rozhraní.
Implements::FillArrayWithIid Vloží ID rozhraní určené aktuálním parametrem nuly šablony do zadaného prvku pole.

Chráněné konstanty

Název Popis
Implements::IidCount Obsahuje počet implementovaných ID rozhraní.

Hierarchie dědičnosti

I0

ChainInterfaces

I0

ImplementsBase

ImplementsHelper

Implements

Požadavky

Hlavička: implements.h

Obor názvů: Microsoft::WRL

Implements::CanCastTo

Získá ukazatel na zadané rozhraní.

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

Parametry

riid
Odkaz na ID rozhraní.

ppv
V případě úspěchu ukazatel na rozhraní určené riid.

Návratová hodnota

S_OK v případě úspěchu; jinak hodnota HRESULT označuje chybu, například E_NOINTERFACE.

Poznámky

Toto je interní pomocná funkce, která provádí operaci QueryInterface.

Implements::CastToUnknown

Získá ukazatel na základní IUnknown rozhraní.

__forceinline IUnknown* CastToUnknown();

Návratová hodnota

Tato operace vždy proběhne úspěšně a vrátí IUnknown ukazatel.

Poznámky

Interní pomocná funkce.

Implements::FillArrayWithIid

Vloží ID rozhraní určené aktuálním parametrem nuly šablony do zadaného prvku pole.

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

Parametry

index
Index založený na nule, který označuje počáteční prvek pole pro tuto operaci. Po dokončení této operace se index zvýší o 1.

iids
Pole typu IID.

Poznámky

Interní pomocná funkce.

Implements::IidCount

Obsahuje počet implementovaných ID rozhraní.

static const unsigned long IidCount;