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é nullptr
et le nombre de références forts est initialisé à 1.