Partilhar via


Estrutura InterfaceTraits

Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.

Sintaxe

template<typename I0>
struct __declspec(novtable) InterfaceTraits;

template<typename CloakedType>
struct __declspec(novtable) InterfaceTraits<
    CloakedIid<CloakedType>
>;

template<>
struct __declspec(novtable) InterfaceTraits<Nil>;

Parâmetros

I0
O nome de uma interface.

CloakedType
Para RuntimeClass, Implements e ChainInterfaces, uma interface que não estará na lista de IDs de interface compatíveis.

Comentários

Implementa características comuns de uma interface.

O segundo modelo é uma especialização para interfaces camufladas. O terceiro modelo é uma especialização para parâmetros Nil.

Membros

Typedefs públicos

Nome Descrição
Base Um sinônimo para o parâmetro de modelo I0.

Métodos públicos

Nome Descrição
InterfaceTraits::CanCastTo Indica se o ponteiro especificado pode ser convertido em um ponteiro para Base.
InterfaceTraits::CastToBase Converte o ponteiro especificado em um ponteiro para Base.
InterfaceTraits::CastToUnknown Converte o ponteiro especificado em um ponteiro para IUnknown.
InterfaceTraits::FillArrayWithIid Atribui a ID da interface do elemento Base de matriz especificado pelo argumento de índice.
InterfaceTraits::Verify Verifica se o Base é derivado corretamente.

Constantes públicas

Nome Descrição
InterfaceTraits::IidCount Contém o número de IDs de interface associadas ao objeto InterfaceTraits atual.

Hierarquia de herança

InterfaceTraits

Requisitos

Cabeçalho: implements.h

Namespace: Microsoft::WRL::Details

InterfaceTraits::CanCastTo

Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.

template<typename T>
static __forceinline bool CanCastTo(
   _In_ T* ptr,
   REFIID riid,
   _Deref_out_ void **ppv
);

Parâmetros

ptr
O nome de um ponteiro para um tipo.

riid
A ID da interface de Base.

ppv
Se essa operação for bem-sucedida, ppv apontará para a interface especificada por Base. Caso contrário, ppv será definido como nullptr.

Valor de retorno

true se essa operação for bem-sucedida e ptr for convertido em um ponteiro para Base; caso contrário, false.

Comentários

Indica se o ponteiro especificado pode ser convertido em um ponteiro para Base.

Para obter mais informações sobre Base, confira a seção Typedefs público.

InterfaceTraits::CastToBase

Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.

template<typename T>
static __forceinline Base* CastToBase(
   _In_ T* ptr
);

Parâmetros

T
O tipo de parâmetro ptr.

ptr
Ponteiro para um tipo T.

Valor de retorno

Um ponteiro para Base.

Comentários

Converte o ponteiro especificado em um ponteiro para Base.

Para obter mais informações sobre Base, confira a seção Typedefs público.

InterfaceTraits::CastToUnknown

Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.

template<typename T>
static __forceinline IUnknown* CastToUnknown(
   _In_ T* ptr
);

Parâmetros

T
O tipo de parâmetro ptr.

ptr
Ponteiro para um tipo T.

Valor de retorno

Ponteiro para o IUnknown do qual Base é derivado.

Comentários

Converte o ponteiro especificado em um ponteiro para IUnknown.

Para obter mais informações sobre Base, confira a seção Typedefs público.

InterfaceTraits::FillArrayWithIid

Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.

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

Parâmetros

index
Ponteiro para um campo que contém um valor de índice baseado em zero.

iids
Uma matriz de IDs de interface.

Comentários

Atribui a ID da interface do elemento Base de matriz especificado pelo argumento de índice.

Ao contrário do nome dessa API, apenas um elemento de matriz é modificado; não a matriz inteira.

Para obter mais informações sobre Base, confira a seção Typedefs público.

InterfaceTraits::IidCount

Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.

static const unsigned long IidCount = 1;

Comentários

Contém o número de IDs de interface associadas ao objeto InterfaceTraits atual.

InterfaceTraits::Verify

Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.

__forceinline static void Verify();

Comentários

Verifica se o Base é derivado corretamente.

Para obter mais informações sobre Base, confira a seção Typedefs público.