Estrutura ChainInterfaces
Especifica funções de verificação e inicialização que podem ser aplicadas a um conjunto de IDs de interface.
Sintaxe
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
>;
Parâmetros
I0
(Obrigatório) ID da interface 0.
I1
(Obrigatório) ID da interface 1.
I2
(Opcional) ID da interface 2.
I3
(Opcional) ID da interface 3.
I4
(Opcional) ID da interface 4.
I5
(Opcional) ID da interface 5.
I6
(Opcional) ID da interface 6.
I7
(Opcional) ID da interface 7.
I8
(Opcional) ID da interface 8.
I9
(Opcional) ID da interface 9.
DerivedType
Um tipo derivado.
BaseType
O tipo base de um tipo derivado.
hasImplements
Um valor booliano que, se true
, significa que você não pode usar uma estrutura MixIn com uma classe que não deriva da estrutura Implements .
Membros
Métodos protegidos
Nome | Descrição |
---|---|
ChainInterfaces::CanCastTo | Indica se a ID da interface especificada pode ser convertida em cada uma das especializações definidas pelos parâmetros de modelo ChainInterface . |
ChainInterfaces::CastToUnknown | Converte o ponteiro da interface do tipo definido pelo parâmetro de modelo I0 para um ponteiro para IUnknown . |
ChainInterfaces::FillArrayWithIid | Armazena a ID da interface definida pelo parâmetro de modelo I0 em um local especificado em uma matriz especificada de IDs de interface. |
ChainInterfaces::Verify | Verifica se cada interface definida pelos parâmetros de modelo de I0 a I9 herda de IUnknown e/ou IInspectable , e que I0 herda de I1 a I9. |
Constantes protegidas
Nome | Descrição |
---|---|
ChainInterfaces::IidCount | O número total de IDs de interface contidas nas interfaces especificadas pelos parâmetros de modelo I0 a I9. |
Hierarquia de herança
I0
ChainInterfaces
Requisitos
Cabeçalho: implements.h
Namespace: Microsoft::WRL
ChainInterfaces::CanCastTo
Indica se a ID da interface especificada pode ser convertida em cada uma das especializações definidas pelos parâmetros de modelo não padrão.
__forceinline bool CanCastTo(
REFIID riid,
_Deref_out_ void **ppv
);
Parâmetros
riid
Um ID de interface.
ppv
Um ponteiro para a última ID da interface que foi convertida com êxito.
Valor de retorno
true
se todas as operações de conversão tiverem êxito; caso contrário, false
.
ChainInterfaces::CastToUnknown
Converte o ponteiro da interface do tipo definido pelo parâmetro de modelo I0 para um ponteiro para IUnknown
.
__forceinline IUnknown* CastToUnknown();
Valor de retorno
Um ponteiro para IUnknown
.
ChainInterfaces::FillArrayWithIid
Armazena a ID da interface definida pelo parâmetro de modelo I0 em um local especificado em uma matriz especificada de IDs de interface.
__forceinline static void FillArrayWithIid(
_Inout_ unsigned long &index,
_In_ IID* iids
);
Parâmetros
index
Ponteiro para um valor de índice na matriz iids.
iids
Uma matriz de IDs de interface.
ChainInterfaces::IidCount
O número total de IDs de interface contidas nas interfaces especificadas pelos parâmetros de modelo I0 a 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;
Valor de retorno
O número total de IDs de interface.
Comentários
Os parâmetros de modelo I0 e I1 são necessários e os parâmetros I2 a I9 são opcionais. A contagem de IID de cada interface normalmente é 1.
ChainInterfaces::Verify
Verifica se cada interface definida pelos parâmetros de modelo de I0 a I9 herda de IUnknown
e/ou IInspectable
, e que I0 herda de I1 a I9.
WRL_NOTHROW __forceinline static void Verify();
Comentários
Se a operação de verificação falhar, uma mensagem de erro será emitida por static_assert
descrevendo a falha.
Os parâmetros de modelo I0 e I1 são necessários e os parâmetros I2 a I9 são opcionais.