ChainInterfaces — Struktura
Określa funkcje weryfikacji i inicjowania, które można zastosować do zestawu identyfikatorów interfejsu.
Składnia
template <
typename I0,
typename I1,
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 ChainInterfaces : I0;
template <
typename DerivedType,
typename BaseType,
bool hasImplements,
typename I1,
typename I2,
typename I3,
typename I4,
typename I5,
typename I6,
typename I7,
typename I8,
typename I9
>
struct ChainInterfaces<
MixIn<
DerivedType,
BaseType,
hasImplements
>, I1, I2, I3, I4, I5, I6, I7, I8, I9
>;
Parametry
I0
(Wymagane) Identyfikator interfejsu 0.
I1
(Wymagane) Identyfikator interfejsu 1.
I2
(Opcjonalnie) Identyfikator interfejsu 2.
I3
(Opcjonalnie) Identyfikator interfejsu 3.
I4
(Opcjonalnie) Identyfikator interfejsu 4.
I5
(Opcjonalnie) Identyfikator interfejsu 5.
I6
(Opcjonalnie) Identyfikator interfejsu 6.
I7
(Opcjonalnie) Identyfikator interfejsu 7.
I8
(Opcjonalnie) Identyfikator interfejsu 8.
I9
(Opcjonalnie) Identyfikator interfejsu 9.
Typ pochodny
Typ pochodny.
BaseType
Typ podstawowy typu pochodnego.
hasImplements
Wartość logiczna, która jeśli true
oznacza , że nie można użyć struktury MixIn z klasą, która nie pochodzi z struktury Implements .
Członkowie
Metody chronione
Nazwa/nazwisko | opis |
---|---|
ChainInterfaces::CanCastTo | Wskazuje, czy określony identyfikator interfejsu można rzutować do każdej specjalizacji zdefiniowanej przez parametry szablonu ChainInterface . |
ChainInterfaces::CastToUnknown | Rzutuje wskaźnik interfejsu typu zdefiniowanego przez parametr szablonu I0 na wskaźnik na IUnknown . |
ChainInterfaces::FillArrayWithIid | Przechowuje identyfikator interfejsu zdefiniowany przez parametr szablonu I0 do określonej lokalizacji w określonej tablicy identyfikatorów interfejsu. |
ChainInterfaces::Verify | Sprawdza, czy każdy interfejs zdefiniowany przez parametry szablonu I0 do I9 dziedziczy od IUnknown i/lub IInspectable , i0 dziedziczy od I1 do I9. |
Stałe chronione
Nazwa/nazwisko | opis |
---|---|
ChainInterfaces::IidCount | Całkowita liczba identyfikatorów interfejsów zawartych w interfejsach określonych przez parametry szablonu od I0 do I9. |
Hierarchia dziedziczenia
I0
ChainInterfaces
Wymagania
Nagłówek: implements.h
Przestrzeń nazw: Microsoft::WRL
ChainInterfaces::CanCastTo
Wskazuje, czy określony identyfikator interfejsu można rzutować do każdej specjalizacji zdefiniowanej przez parametry szablonu innego niż domyślne.
__forceinline bool CanCastTo(
REFIID riid,
_Deref_out_ void **ppv
);
Parametry
Riid
Identyfikator interfejsu.
Ppv
Wskaźnik do ostatniego identyfikatora interfejsu, który został pomyślnie oddany.
Wartość zwracana
true
jeśli wszystkie operacje rzutu zakończyły się pomyślnie; w przeciwnym razie, false
.
ChainInterfaces::CastToUnknown
Rzutuje wskaźnik interfejsu typu zdefiniowanego przez parametr szablonu I0 na wskaźnik na IUnknown
.
__forceinline IUnknown* CastToUnknown();
Wartość zwracana
Wskaźnik do IUnknown
.
ChainInterfaces::FillArrayWithIid
Przechowuje identyfikator interfejsu zdefiniowany przez parametr szablonu I0 do określonej lokalizacji w określonej tablicy identyfikatorów interfejsu.
__forceinline static void FillArrayWithIid(
_Inout_ unsigned long &index,
_In_ IID* iids
);
Parametry
Indeks
Wskaźnik do wartości indeksu w tablicy iids .
identyfikatory
Tablica identyfikatorów interfejsu.
ChainInterfaces::IidCount
Całkowita liczba identyfikatorów interfejsów zawartych w interfejsach określonych przez parametry szablonu od I0 do I9.
static const unsigned long IidCount = Details::InterfaceTraits<I0>::IidCount + Details::InterfaceTraits<I1>::IidCount + Details::InterfaceTraits<I2>::IidCount + Details::InterfaceTraits<I3>::IidCount + Details::InterfaceTraits<I4>::IidCount + Details::InterfaceTraits<I5>::IidCount + Details::InterfaceTraits<I6>::IidCount + Details::InterfaceTraits<I7>::IidCount + Details::InterfaceTraits<I8>::IidCount + Details::InterfaceTraits<I9>::IidCount;
Wartość zwracana
Całkowita liczba identyfikatorów interfejsu.
Uwagi
Parametry szablonu I0 i I1 są wymagane, a parametry I2 do I9 są opcjonalne. Liczba identyfikatorów IID każdego interfejsu wynosi zwykle 1.
ChainInterfaces::Verify
Sprawdza, czy każdy interfejs zdefiniowany przez parametry szablonu I0 do I9 dziedziczy od IUnknown
i/lub IInspectable
, i0 dziedziczy od I1 do I9.
WRL_NOTHROW __forceinline static void Verify();
Uwagi
Jeśli operacja weryfikacji zakończy się niepowodzeniem, static_assert
zostanie wyświetlony komunikat o błędzie opisujący błąd.
Parametry szablonu I0 i I1 są wymagane, a parametry I2 do I9 są opcjonalne.
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