Implements — Struktura
Implementuje QueryInterface
i GetIid
dla określonych interfejsów.
Składnia
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
Identyfikator interfejsu zeroth. (Obowiązkowe)
I1
Pierwszy identyfikator interfejsu. (Opcjonalnie)
I2
Drugi identyfikator interfejsu. (Opcjonalnie)
I3
Trzeci identyfikator interfejsu. (Opcjonalnie)
I4
Czwarty identyfikator interfejsu. (Opcjonalnie)
I5
Piąty identyfikator interfejsu. (Opcjonalnie)
I6
Szósty identyfikator interfejsu. (Opcjonalnie)
I7
Siódmy identyfikator interfejsu. (Opcjonalnie)
I8
Ósmy identyfikator interfejsu. (Opcjonalnie)
I9
Dziewiąty identyfikator interfejsu. (Opcjonalnie)
Flagi
Flagi konfiguracji dla klasy. Co najmniej jeden wyliczenie RuntimeClassType określone w strukturze RuntimeClassFlags .
Uwagi
Pochodzi z listy określonych interfejsów i implementuje szablony pomocników dla elementów QueryInterface
i GetIid
.
Każdy parametr interfejsu I0 do I9 musi pochodzić z IUnknown
szablonu , IInspectable
lub ChainInterfaces. Parametr flags określa, czy obsługa jest generowana dla IUnknown
programu , czy IInspectable
.
Członkowie
Definicje typów publicznych
Nazwa/nazwisko | opis |
---|---|
ClassFlags |
Synonim dla elementu RuntimeClassFlags<WinRt> . |
Metody chronione
Nazwa/nazwisko | opis |
---|---|
Implements::CanCastTo | Pobiera wskaźnik do określonego interfejsu. |
Implements::CastToUnknown | Pobiera wskaźnik do bazowego IUnknown interfejsu. |
Implements::FillArrayWithIid | Wstawia identyfikator interfejsu określony przez bieżący parametr szablonu zeroth do określonego elementu tablicy. |
Stałe chronione
Nazwa/nazwisko | opis |
---|---|
Implements::IidCount | Przechowuje liczbę zaimplementowanych identyfikatorów interfejsu. |
Hierarchia dziedziczenia
I0
ChainInterfaces
I0
ImplementsBase
ImplementsHelper
Implements
Wymagania
Nagłówek: implements.h
Przestrzeń nazw: Microsoft::WRL
Implements::CanCastTo
Pobiera wskaźnik do określonego interfejsu.
__forceinline HRESULT CanCastTo(
REFIID riid,
_Deref_out_ void **ppv
);
Parametry
Riid
Odwołanie do identyfikatora interfejsu.
Ppv
W przypadku powodzenia wskaźnik do interfejsu określonego przez riid.
Wartość zwracana
S_OK w przypadku powodzenia; w przeciwnym razie HRESULT wskazujący błąd, taki jak E_NOINTERFACE.
Uwagi
Jest to wewnętrzna funkcja pomocnika, która wykonuje operację QueryInterface.
Implements::CastToUnknown
Pobiera wskaźnik do bazowego IUnknown
interfejsu.
__forceinline IUnknown* CastToUnknown();
Wartość zwracana
Ta operacja zawsze kończy się powodzeniem i zwraca IUnknown
wskaźnik.
Uwagi
Wewnętrzna funkcja pomocnika.
Implements::FillArrayWithIid
Wstawia identyfikator interfejsu określony przez bieżący parametr szablonu zeroth do określonego elementu tablicy.
__forceinline static void FillArrayWithIid(
unsigned long &index,
_In_ IID* iids
);
Parametry
Indeks
Indeks oparty na zera, który wskazuje początkowy element tablicy dla tej operacji. Po zakończeniu tej operacji indeks jest zwiększany o 1.
identyfikatory
Tablica typu IID.
Uwagi
Wewnętrzna funkcja pomocnika.
Implements::IidCount
Przechowuje liczbę zaimplementowanych identyfikatorów interfejsu.
static const unsigned long IidCount;
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla