Partager via


WeakReference, classe

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

Syntaxe

class WeakReference;

Notes

Représente une référence faible qui peut être utilisée avec Windows Runtime ou COM classique. Une référence faible représente un objet qui peut être accessible ou non.

Un WeakReference objet conserve une référence forte, qui est un pointeur vers un objet, et un nombre de références forts, qui est le nombre de copies de la référence forte qui ont été distribuées par la Resolve() méthode. Bien que le nombre de références fortes soit différent de zéro, la référence forte est valide et l’objet est accessible. Lorsque le nombre de références fortes devient égal à zéro, la référence forte n’est pas valide et l’objet est inaccessible.

Un WeakReference objet est généralement utilisé pour représenter un objet dont l’existence est contrôlée par un thread externe ou une application. Par exemple, construisez un WeakReference objet à partir d’une référence à un objet de fichier. Pendant que le fichier est ouvert, la référence forte est valide, mais si le fichier est fermé, la référence forte devient non valide.

Les WeakReference méthodes sont thread safe.

Membres

Constructeurs publics

Nom Description
WeakReference ::WeakReference Initialise une nouvelle instance de la classe WeakReference.
WeakReference ::~WeakReference Déinitialise (détruit) l’instance actuelle de la WeakReference classe.

Méthodes publiques

Nom Description
WeakReference ::D ecrementStrongReference Décrémente le nombre de références forts de l’objet actuel WeakReference .
WeakReference ::IncrementStrongReference Incrémente le nombre de références forts de l’objet actuel WeakReference .
WeakReference ::Resolve Définit le pointeur spécifié sur la valeur de référence forte actuelle si le nombre de références fortes n’est pas égal à zéro.
WeakReference ::SetUnknown Définit la référence forte de l’objet actuel WeakReference au pointeur d’interface spécifié.

Hiérarchie d'héritage

WeakReference

Spécifications

En-tête : implements.h

Namespace : Microsoft ::WRL ::D etails

WeakReference ::~WeakReference

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

virtual ~WeakReference();

Valeur de retour

Notes

Désinitialise l’instance actuelle de la WeakReference classe.

WeakReference ::D ecrementStrongReference

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

ULONG DecrementStrongReference();

Notes

Décrémente le nombre de références forts de l’objet actuel WeakReference .

Lorsque le nombre de références fortes devient zéro, la référence forte est définie sur nullptr.

Valeur de retour

Nombre de références fortes décrémentées.

WeakReference ::IncrementStrongReference

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

ULONG IncrementStrongReference();

Valeur de retour

Nombre de références fortes incrémentées.

Notes

Incrémente le nombre de références forts de l’objet actuel WeakReference .

WeakReference ::Resolve

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

STDMETHOD(Resolve)
   (REFIID riid,
   _Deref_out_opt_ IInspectable **ppvObject
);

Paramètres

riid
ID d’interface.

ppvObject
Une fois cette opération terminée, une copie de la référence forte actuelle si le nombre de références fortes est différent de zéro.

Valeur de retour

  • S_OK si cette opération réussit et que le nombre de références forts est égal à zéro. Le paramètre ppvObject est défini sur nullptr.

  • S_OK si cette opération réussit et que le nombre de références forts est différent de zéro. Le paramètre ppvObject est défini sur la référence forte.

  • Sinon, HRESULT qui indique la raison pour laquelle cette opération a échoué.

Notes

Définit le pointeur spécifié sur la valeur de référence forte actuelle si le nombre de références fortes n’est pas égal à zéro.

WeakReference ::SetUnknown

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

void SetUnknown(
   _In_ IUnknown* unk
);

Paramètres

unk
Pointeur vers l’interface IUnknown d’un objet.

Notes

Définit la référence forte de l’objet actuel WeakReference au pointeur d’interface spécifié.

WeakReference ::WeakReference

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

WeakReference();

Notes

Initialise une nouvelle instance de la classe WeakReference.

Le pointeur de référence fort de l’objet WeakReference est initialisé nullptret le nombre de références forts est initialisé à 1.