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.