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 RuntimeClasssystemów i ChainInterfacesinterfejs, 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.

Członkowie

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 Baseprogramu , 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 Baseprogramu , 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 Baseprogramu , 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 Baseprogramu , 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 Baseprogramu , zobacz sekcję Public Typedefs (Definicje typów publicznych).