InterfaceTraits — Struktura
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
Składnia
template<typename I0>
struct __declspec(novtable) InterfaceTraits;
template<typename CloakedType>
struct __declspec(novtable) InterfaceTraits<
CloakedIid<CloakedType>
>;
template<>
struct __declspec(novtable) InterfaceTraits<Nil>;
Parametry
I0
Nazwa interfejsu.
CloakedType
Implements
W przypadku RuntimeClass
systemów i ChainInterfaces
interfejs, który nie będzie znajdować się na liście obsługiwanych identyfikatorów interfejsów.
Uwagi
Implementuje typowe cechy interfejsu.
Drugi szablon to specjalizacja interfejsów cloaked. Trzeci szablon to specjalizacja parametrów Nil.
Elementy członkowskie
Definicje typów publicznych
Nazwa/nazwisko | opis |
---|---|
Base |
Synonim parametru szablonu I0 . |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
InterfaceTraits::CanCastTo | Wskazuje, czy określony wskaźnik można rzutować do wskaźnika na Base . |
InterfaceTraits::CastToBase | Rzutuje określony wskaźnik na wskaźnik do Base . |
InterfaceTraits::CastToUnknown | Rzutuje określony wskaźnik na wskaźnik do IUnknown . |
InterfaceTraits::FillArrayWithIid | Przypisuje identyfikator interfejsu Base elementu do elementu tablicy określonego przez argument indeksu. |
InterfaceTraits::Verify | Sprawdza, czy Base jest prawidłowo pochodna. |
Stałe publiczne
Nazwa/nazwisko | opis |
---|---|
InterfaceTraits::IidCount | Przechowuje liczbę identyfikatorów interfejsu skojarzonych z bieżącym InterfaceTraits obiektem. |
Hierarchia dziedziczenia
InterfaceTraits
Wymagania
Nagłówek: implements.h
Przestrzeń nazw: Microsoft::WRL::D etails
InterfaceTraits::CanCastTo
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
template<typename T>
static __forceinline bool CanCastTo(
_In_ T* ptr,
REFIID riid,
_Deref_out_ void **ppv
);
Parametry
ptr
Nazwa wskaźnika na typ.
riid
Identyfikator interfejsu klasy Base
.
ppv
Jeśli ta operacja zakończy się pomyślnie, ppv wskazuje interfejs określony przez Base
. W przeciwnym razie parametr ppv ma wartość nullptr
.
Wartość zwracana
true
jeśli ta operacja zakończy się pomyślnie, a parametr ptr zostanie oddany do wskaźnika do Base
; w przeciwnym razie false
.
Uwagi
Wskazuje, czy określony wskaźnik można rzutować do wskaźnika na Base
.
Aby uzyskać więcej informacji na temat Base
programu , zobacz sekcję Public Typedefs (Definicje typów publicznych).
InterfaceTraits::CastToBase
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
template<typename T>
static __forceinline Base* CastToBase(
_In_ T* ptr
);
Parametry
T
Typ parametru ptr.
ptr
Wskaźnik do typu T.
Wartość zwracana
Wskaźnik do Base
.
Uwagi
Rzutuje określony wskaźnik na wskaźnik do Base
.
Aby uzyskać więcej informacji na temat Base
programu , zobacz sekcję Public Typedefs (Definicje typów publicznych).
InterfaceTraits::CastToUnknown
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
template<typename T>
static __forceinline IUnknown* CastToUnknown(
_In_ T* ptr
);
Parametry
T
Typ parametru ptr.
ptr
Wskaźnik do typu T.
Wartość zwracana
Wskaźnik do elementu IUnknown, z którego Base
pochodzi.
Uwagi
Rzutuje określony wskaźnik na wskaźnik do IUnknown
.
Aby uzyskać więcej informacji na temat Base
programu , zobacz sekcję Public Typedefs (Definicje typów publicznych).
InterfaceTraits::FillArrayWithIid
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
__forceinline static void FillArrayWithIid(
_Inout_ unsigned long &index,
_In_ IID* iids
);
Parametry
indeks
Wskaźnik do pola zawierającego wartość indeksu opartą na zerach.
identyfikatory
Tablica identyfikatorów interfejsu.
Uwagi
Przypisuje identyfikator interfejsu Base
elementu do elementu tablicy określonego przez argument indeksu.
W przeciwieństwie do nazwy tego interfejsu API, modyfikowany jest tylko jeden element tablicy; nie cała tablica.
Aby uzyskać więcej informacji na temat Base
programu , zobacz sekcję Public Typedefs (Definicje typów publicznych).
InterfaceTraits::IidCount
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
static const unsigned long IidCount = 1;
Uwagi
Przechowuje liczbę identyfikatorów interfejsu skojarzonych z bieżącym InterfaceTraits
obiektem.
InterfaceTraits::Verify
Obsługuje infrastrukturę biblioteki WRL i nie jest przeznaczona do użycia bezpośrednio z kodu.
__forceinline static void Verify();
Uwagi
Sprawdza, czy Base
jest prawidłowo pochodna.
Aby uzyskać więcej informacji na temat Base
programu , zobacz sekcję Public Typedefs (Definicje typów publicznych).