Partilhar via


Classe RuntimeClass

Representa uma classe WinRT ou COM que herda as interfaces especificadas e fornece o suporte de referência fraca e Windows Runtime, COM clássico e especificado.

Essa classe fornece a implementação clichê das classes WinRT e COM, fornecendo a implementação de QueryInterface, AddRef, Release etc., gerencia a contagem de referência do módulo e tem suporte para fornecer a fábrica de classes para objetos ativantes.

Sintaxe

template <typename ...TInterfaces> class RuntimeClass
template <unsigned int classFlags, typename ...TInterfaces> class RuntimeClass;

Parâmetros

classFlags
Parâmetro opcional. Uma combinação de um ou mais RuntimeClassType valores de enumeração. A __WRL_CONFIGURATION_LEGACY__ macro pode ser definida para alterar o valor padrão de para todas as classes de tempo de classFlags execução no projeto. Se definidas, RuntimeClass as instâncias não são ágeis por padrão. Quando não definidas, RuntimeClass as instâncias são ágeis por padrão. Para evitar ambiguidade, sempre especifique o Microsoft::WRL::FtmBase in TInterfaces ou RuntimeClassType::InhibitFtmBase. Se InhibitFtmBase e FtmBase ambos forem usados, o objeto será ágil.

TInterfaces
A lista de interfaces que o objeto implementa além IUnknowndo , IInspectable ou outras interfaces controladas pelo RuntimeClassType. Ele também pode listar outras classes a serem derivadas, notadamente Microsoft::WRL::FtmBase para tornar o objeto Agile e fazer com que ele seja implementado IMarshal.

Membros

RuntimeClassInitialize
Uma função que inicializa o objeto se o MakeAndInitialize modelo de função for usado para construir o objeto. Ele retorna S_OK se o objeto foi inicializado com êxito ou um código de erro COM se a inicialização falhou. O código de erro COM é propagado como o valor retornado de MakeAndInitialize. O RuntimeClassInitialize método não será chamado se o Make modelo de função for usado para construir o objeto.

Construtores públicos

Nome Descrição
RuntimeClass::RuntimeClass Inicializa a instância atual da classe RuntimeClass.
RuntimeClass::~RuntimeClass Desinicializa a instância atual da classe RuntimeClass.

Métodos públicos

Nome Descrição
RuntimeClass::AddRef Incrementa a contagem de referência para o objeto RuntimeClass atual.
RuntimeClass::DecrementReference Diminui a contagem de referência para o objeto RuntimeClass atual.
RuntimeClass::GetIids Obtém uma matriz que pode conter as IDs de interface implementadas pelo objeto RuntimeClass atual.
RuntimeClass::GetRuntimeClassName Obtém o nome da classe de runtime do objeto RuntimeClass atual.
RuntimeClass::GetTrustLevel Obtém o nível de confiança do objeto RuntimeClass atual.
RuntimeClass::GetWeakReference Obtém um ponteiro para o objeto de referência fraco para o objeto RuntimeClass atual.
RuntimeClass::InternalAddRef Incrementa a contagem de referência para o objeto RuntimeClass atual.
RuntimeClass::QueryInterface Recupera um ponteiro para a ID de interface especificada.
RuntimeClass::Release Executa uma operação de versão COM no objeto RuntimeClass atual.

Hierarquia de herança

A hierarquia é um detalhe de implementação.

Requisitos

Cabeçalho: implements.h

Namespace: Microsoft::WRL

RuntimeClass::~RuntimeClass

Desinicializa a instância atual da classe RuntimeClass.

virtual ~RuntimeClass();

RuntimeClass::AddRef

Incrementa a contagem de referência para o objeto RuntimeClass atual.

STDMETHOD_(
   ULONG,
   AddRef
)();

Valor retornado

S_OK se for bem-sucedido; caso contrário, um HRESULT que indica o erro.

RuntimeClass::DecrementReference

Diminui a contagem de referência para o objeto RuntimeClass atual.

ULONG DecrementReference();

Valor retornado

S_OK se for bem-sucedido; caso contrário, um HRESULT que indica o erro.

RuntimeClass::GetIids

Obtém uma matriz que pode conter as IDs de interface implementadas pelo objeto RuntimeClass atual.

STDMETHOD(
   GetIids
)
   (_Out_ ULONG *iidCount,
   _Deref_out_ _Deref_post_cap_(*iidCount) IID **iids);

Parâmetros

iidCount
Quando essa operação for concluída, o número total de elementos na matriz iids.

iids
Quando essa operação for concluída, um ponteiro para uma matriz de IDs de interface.

Valor retornado

S_OK se for bem-sucedido, caso contrário, E_OUTOFMEMORY.

RuntimeClass::GetRuntimeClassName

Obtém o nome da classe de runtime do objeto RuntimeClass atual.

STDMETHOD( GetRuntimeClassName )(
    _Out_ HSTRING* runtimeName
);

Parâmetros

runtimeName
Quando essa operação for concluída, o nome de classe de runtime.

Valor retornado

S_OK se for bem-sucedido; caso contrário, um HRESULT que indica o erro.

Comentários

Um erro de declaração é emitido se __WRL_STRICT__ ou __WRL_FORCE_INSPECTABLE_CLASS_MACRO__ não estiver definido.

RuntimeClass::GetTrustLevel

Obtém o nível de confiança do objeto RuntimeClass atual.

STDMETHOD(GetTrustLevel)(
    _Out_ TrustLevel* trustLvl
);

Parâmetros

trustLvl
Quando essa operação for concluída, o nível de confiança do objeto RuntimeClass atual.

Valor retornado

Sempre S_OK.

Comentários

Um erro de declaração é emitido se __WRL_STRICT__ ou __WRL_FORCE_INSPECTABLE_CLASS_MACRO__ não estiver definido.

RuntimeClass::GetWeakReference

Obtém um ponteiro para o objeto de referência fraco para o objeto RuntimeClass atual.

STDMETHOD(
   GetWeakReference
)(_Deref_out_ IWeakReference **weakReference);

Parâmetros

weakReference
Quando essa operação for concluída, um ponteiro para um objeto de referência fraco.

Valor retornado

Sempre S_OK.

RuntimeClass::InternalAddRef

Incrementa a contagem de referência para o objeto RuntimeClass atual.

ULONG InternalAddRef();

Valor retornado

A contagem de referência resultante.

RuntimeClass::QueryInterface

Recupera um ponteiro para a ID de interface especificada.

STDMETHOD(
   QueryInterface
)
   (REFIID riid,
   _Deref_out_ void **ppvObject);

Parâmetros

riid
Um ID de interface.

ppvObject
Quando essa operação for concluída, um ponteiro para a interface especificada pelo riid parâmetro.

Valor retornado

S_OK se for bem-sucedido; caso contrário, um HRESULT que indica o erro.

RuntimeClass::Release

Executa uma operação de versão COM no objeto RuntimeClass atual.

STDMETHOD_(
   ULONG,
   Release
)();

Valor retornado

S_OK se for bem-sucedido; caso contrário, um HRESULT que indica o erro.

Comentários

Se a contagem de referência se tornar zero, o objeto RuntimeClass será excluído.

RuntimeClass::RuntimeClass

Inicializa a instância atual da classe RuntimeClass.

RuntimeClass();