Classe WeakReference
Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.
Sintaxe
class WeakReference;
Comentários
Representa uma referência fraca que pode ser usada pelo Windows Runtime ou pelo COM clássico. Uma referência fraca representa um objeto que pode ou não estar acessível.
Um objeto WeakReference
mantém uma referência forte, que é um ponteiro para um objeto e uma contagem de referência forte, que é o número de cópias da referência forte que foram distribuídas pelo método Resolve()
. Embora a contagem de referência forte não seja zero, a referência forte será válida e o objeto será acessível. Quando a contagem de referência forte se torna zero, a referência forte fica inválida e o objeto fica inacessível.
Um objeto WeakReference
normalmente é usado para representar um objeto cuja existência é controlada por um thread ou aplicativo externo. Por exemplo, construa um objeto WeakReference
a partir de uma referência a um objeto de arquivo. Enquanto o arquivo está aberto, a referência forte é válida. Mas se o arquivo for fechado, a referência forte se tornará inválida.
Os métodos WeakReference
são thread-safe.
Membros
Construtores públicos
Nome | Descrição |
---|---|
WeakReference::WeakReference | Inicializa uma nova instância da classe WeakReference . |
WeakReference::~WeakReference | Desinicializa (destrói) a instância atual da classe WeakReference . |
Métodos públicos
Nome | Descrição |
---|---|
WeakReference::DecrementStrongReference | Diminui a forte contagem de referência do objeto atual WeakReference . |
WeakReference::IncrementStrongReference | Incrementa a forte contagem de referência do objeto atual WeakReference . |
WeakReference::Resolve | Define o ponteiro especificado para o valor de referência forte atual se a contagem de referência forte não for zero. |
WeakReference::SetUnknown | Define a referência forte do objeto WeakReference atual para o ponteiro de interface especificado. |
Hierarquia de herança
WeakReference
Requisitos
Cabeçalho: implements.h
Namespace: Microsoft::WRL::Details
WeakReference::~WeakReference
Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.
virtual ~WeakReference();
Valor de retorno
Comentários
Desinicializa a instância atual da classe WeakReference
.
WeakReference::DecrementStrongReference
Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.
ULONG DecrementStrongReference();
Comentários
Diminui a forte contagem de referência do objeto atual WeakReference
.
Quando a contagem de referência forte se torna zero, a referência forte é definida como nullptr
.
Valor de retorno
A contagem de referência forte diminuída.
WeakReference::IncrementStrongReference
Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.
ULONG IncrementStrongReference();
Valor de retorno
A contagem de referência forte incrementada.
Comentários
Incrementa a forte contagem de referência do objeto atual WeakReference
.
WeakReference::Resolve
Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.
STDMETHOD(Resolve)
(REFIID riid,
_Deref_out_opt_ IInspectable **ppvObject
);
Parâmetros
riid
Um ID de interface.
ppvObject
Quando essa operação for concluída, uma cópia da referência forte atual se a contagem de referência forte for diferente de zero.
Valor de retorno
S_OK se essa operação for bem-sucedida e a contagem de referência forte for zero. O parâmetro ppvObject é definido como
nullptr
.S_OK se essa operação for bem-sucedida e a contagem de referência forte for diferente de zero. O parâmetro ppvObject é definido como a referência forte.
Caso contrário, um HRESULT que indica o motivo pelo qual esta operação falhou.
Comentários
Define o ponteiro especificado para o valor de referência forte atual se a contagem de referência forte não for zero.
WeakReference::SetUnknown
Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.
void SetUnknown(
_In_ IUnknown* unk
);
Parâmetros
unk
Um ponteiro para a interface IUnknown
de um objeto.
Comentários
Define a referência forte do objeto WeakReference
atual para o ponteiro de interface especificado.
WeakReference::WeakReference
Suporta a infraestrutura WRL e não se destina a ser usado diretamente do seu código.
WeakReference();
Comentários
Inicializa uma nova instância da classe WeakReference
.
O ponteiro de referência forte para o objeto WeakReference
é inicializado como nullptr
e a contagem de referência forte é inicializada como 1.