WeakReference (Clase)
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
Sintaxis
class WeakReference;
Comentarios
Representa una referencia débil que solo puede usarse con Windows Runtime o COM clásico. Una referencia débil representa un objeto que puede ser o no accesible.
Un objeto WeakReference
mantiene una referencia fuerte, que es un puntero a un objeto, y un recuento de referencias fuerte, que es el número de copias de la referencia fuerte que se ha distribuido con el método Resolve()
. Aunque el recuento de referencias fuertes es distinto de cero, la referencia fuerte es válida y el objeto es accesible. Cuando el recuento de referencias fuertes se convierte en cero, la referencia fuerte no es válida y el objeto no es accesible.
Un objeto WeakReference
se usa normalmente para representar un objeto cuya existencia se controla mediante una aplicación o un subproceso externo. Por ejemplo, construya un objeto WeakReference
a partir de una referencia a un objeto de archivo. Mientras el archivo esté abierto, la referencia segura será válida. Sin embargo, si el archivo está abierto, la referencia segura no será válida.
Los métodos WeakReference
son seguros para subprocesos.
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
WeakReference::WeakReference | Inicializa una nueva instancia de la clase WeakReference . |
WeakReference::~WeakReference | Desinicializa (destruye) la instancia actual de la clase WeakReference . |
Métodos públicos
Nombre | Descripción |
---|---|
WeakReference::DecrementStrongReference | Disminuye el recuento de referencias fuertes del objeto WeakReference actual. |
WeakReference::IncrementStrongReference | Incrementa el recuento de referencias fuertes del objeto WeakReference actual. |
WeakReference::Resolve | Establece el puntero especificado en el valor de referencia fuerte actual si el recuento de referencias fuertes es distinto de cero. |
WeakReference::SetUnknown | Establece la referencia fuerte del objeto WeakReference actual al puntero de interfaz especificado. |
Jerarquía de herencia
WeakReference
Requisitos
Encabezado: implements.h
Espacio de nombres:Microsoft::WRL::Details
WeakReference::~WeakReference
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
virtual ~WeakReference();
Valor devuelto
Comentarios
Desinicializa la instancia actual de la clase WeakReference
.
WeakReference::DecrementStrongReference
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
ULONG DecrementStrongReference();
Comentarios
Disminuye el recuento de referencias fuertes del objeto WeakReference
actual.
Cuando el recuento de referencias fuertes se convierte en cero, la referencia fuerte se establece en nullptr
.
Valor devuelto
Recuento de referencias fuerte reducido.
WeakReference::IncrementStrongReference
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
ULONG IncrementStrongReference();
Valor devuelto
Recuento de referencias fuerte incrementado.
Comentarios
Incrementa el recuento de referencias fuertes del objeto WeakReference
actual.
WeakReference::Resolve
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
STDMETHOD(Resolve)
(REFIID riid,
_Deref_out_opt_ IInspectable **ppvObject
);
Parámetros
riid
Id. de interfaz.
ppvObject
Cuando se completa esta operación, una copia de la referencia fuerte actual si el recuento de referencias fuertes es distinto de cero.
Valor devuelto
S_OK si esta operación se realiza correctamente y el recuento de referencias fuertes es cero. El parámetro ppvObject se establece en
nullptr
.S_OK si esta operación se realiza correctamente y el recuento de referencias fuertes es distinto de cero. El parámetro ppvObject se establece en la referencia fuerte.
De lo contrario, un valor HRESULT que indica el motivo por el que se produjo un error en esta operación.
Comentarios
Establece el puntero especificado en el valor de referencia fuerte actual si el recuento de referencias fuertes es distinto de cero.
WeakReference::SetUnknown
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
void SetUnknown(
_In_ IUnknown* unk
);
Parámetros
unk
Puntero a la interfaz IUnknown
de un objeto.
Comentarios
Establece la referencia fuerte del objeto WeakReference
actual al puntero de interfaz especificado.
WeakReference::WeakReference
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
WeakReference();
Comentarios
Inicializa una nueva instancia de la clase WeakReference
.
El puntero de referencia fuerte para el objeto WeakReference
se inicializa en nullptr
y el recuento de referencias fuertes se inicializa en 1.