Implementa estrutura
Implementa QueryInterface
e GetIid
para as interfaces especificadas.
Sintaxe
template <
typename I0,
typename I1 = Details::Nil,
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 __declspec(novtable) Implements :
Details::ImplementsHelper<
RuntimeClassFlags<WinRt>,
typename Details::InterfaceListHelper<
I0, I1, I2, I3, I4, I5, I6, I7, I8, I9
>::TypeT
>,
Details::ImplementsBase;
template <
int flags,
typename I0,
typename I1,
typename I2,
typename I3,
typename I4,
typename I5,
typename I6,
typename I7,
typename I8
>
struct __declspec(novtable) Implements<
RuntimeClassFlags<flags>,
I0, I1, I2, I3, I4, I5, I6, I7, I8> :
Details::ImplementsHelper<
RuntimeClassFlags<flags>,
typename Details::InterfaceListHelper<
I0, I1, I2, I3, I4, I5, I6, I7, I8
>::TypeT
>,
Details::ImplementsBase;
Parâmetros
I0
A ID do ordinal zero. (Obrigatório)
I1
A ID da primeira interface. (Opcional)
I2
A segunda ID da interface. (Opcional)
I3
A terceira ID da interface. (Opcional)
I4
A quarta ID da interface. (Opcional)
I5
A quinta ID da interface. (Opcional)
I6
A sexta ID da interface. (Opcional)
I7
A sétima ID da interface. (Opcional)
I8
A oitava ID da interface. (Opcional)
I9
A nona ID da interface. (Opcional)
sinalizadores
Sinalizadores de configuração para a classe. Uma ou mais enumerações RuntimeClassType especificadas em uma estrutura RuntimeClassFlags.
Comentários
Deriva da lista de interfaces especificadas e implementa modelos auxiliares para QueryInterface
e GetIid
.
Cada parâmetro de interface de I0 a I9 deve derivar do IUnknown
, IInspectable
ou do modelo ChainInterfaces. O parâmetro flags determina se o suporte é gerado para IUnknown
ou IInspectable
.
Membros
Typedefs públicos
Nome | Descrição |
---|---|
ClassFlags |
Um sinônimo de RuntimeClassFlags<WinRt> . |
Métodos protegidos
Nome | Descrição |
---|---|
Implements::CanCastTo | Obtém um ponteiro para a interface especificada. |
Implements::CastToUnknown | Obtém um ponteiro para a interface subjacente IUnknown . |
Implements::FillArrayWithIid | Insere a ID da interface especificada pelo parâmetro de modelo de zero atual no elemento de matriz especificado. |
Constantes protegidas
Nome | Descrição |
---|---|
Implements::IidCount | Contém o número de IDs de interface implementadas. |
Hierarquia de herança
I0
ChainInterfaces
I0
ImplementsBase
ImplementsHelper
Implements
Requisitos
Cabeçalho: implements.h
Namespace: Microsoft::WRL
Implements::CanCastTo
Obtém um ponteiro para a interface especificada.
__forceinline HRESULT CanCastTo(
REFIID riid,
_Deref_out_ void **ppv
);
Parâmetros
riid
Uma referência para uma ID de interface.
ppv
Se tiver êxito, um ponteiro para a interface especificada por riid.
Valor de retorno
S_OK se tiver êxito; caso contrário, um HRESULT que indica o erro, como E_NOINTERFACE.
Comentários
Essa é uma função auxiliar interna que executa uma operação QueryInterface.
Implements::CastToUnknown
Obtém um ponteiro para a interface subjacente IUnknown
.
__forceinline IUnknown* CastToUnknown();
Valor de retorno
Essa operação é sempre bem-sucedida, e retorna o ponteiro IUnknown
.
Comentários
Função auxiliar interna.
Implements::FillArrayWithIid
Insere a ID da interface especificada pelo parâmetro de modelo de zero atual no elemento de matriz especificado.
__forceinline static void FillArrayWithIid(
unsigned long &index,
_In_ IID* iids
);
Parâmetros
index
Um índice baseado em zero que indica o elemento de matriz inicial para essa operação. Quando essa operação for concluída, o índice será incrementado em 1.
iids
Uma matriz do tipo IID.
Comentários
Função auxiliar interna.
Implements::IidCount
Contém o número de IDs de interface implementadas.
static const unsigned long IidCount;