WeakReference-Klasse
Unterstützt die WRL-Infrastruktur und soll nicht direkt aus Ihrem Code verwendet werden.
Syntax
class WeakReference;
Hinweise
Stellt einen schwachen Verweis dar, der mit dem Windows-Runtime oder der klassischen COM verwendet werden kann. Ein schwacher Verweis repräsentiert ein Objekt, auf das möglicherweise zugegriffen werden kann.
Ein WeakReference
Objekt verwaltet einen starken Verweis, bei dem es sich um einen Zeiger auf ein Objekt handelt, und eine starke Bezugsanzahl, bei der es sich um die Anzahl der Kopien des starken Verweises handelt, die von der Resolve()
Methode verteilt wurden. Während die starke Bezugsanzahl nicht null ist, ist der starke Verweis gültig und auf das Objekt kann zugegriffen werden. Wenn die Anzahl der starken Verweise null wird, ist der starke Verweis ungültig, und auf das Objekt kann nicht zugegriffen werden.
Ein WeakReference
Objekt wird in der Regel verwendet, um ein Objekt darzustellen, dessen Vorhandensein von einem externen Thread oder einer externen Anwendung gesteuert wird. Erstellen Sie z. B. ein WeakReference
Objekt aus einem Verweis auf ein Dateiobjekt. Solange die Datei geöffnet ist, ist der starke Verweis gültig. Wenn die Datei aber geschlossen wird, wird der starke Verweis ungültig.
Die WeakReference
Methoden sind threadsicher.
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
WeakReference::WeakReference | Initialisiert eine neue Instanz der WeakReference -Klasse. |
WeakReference::~WeakReference | Deinitialisiert (zerstört) die aktuelle Instanz der WeakReference Klasse. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
WeakReference::D ecrementStrongReference | Erhöht die starke Referenzanzahl des aktuellen WeakReference Objekts. |
WeakReference::IncrementStrongReference | Erhöht die starke Referenzanzahl des aktuellen WeakReference Objekts. |
WeakReference::Resolve | Legt den angegebenen Zeiger auf den aktuellen starken Bezugswert fest, wenn die Anzahl der starken Verweise nicht null ist. |
WeakReference::SetUnknown | Legt den starken Verweis des aktuellen WeakReference Objekts auf den angegebenen Schnittstellenzeiger fest. |
Vererbungshierarchie
WeakReference
Anforderungen
Header: implements.h
Namespace: Microsoft::WRL::D etails
WeakReference::~WeakReference
Unterstützt die WRL-Infrastruktur und soll nicht direkt aus Ihrem Code verwendet werden.
virtual ~WeakReference();
Rückgabewert
Bemerkungen
Deinitialisiert die aktuelle Instanz der WeakReference
Klasse.
WeakReference::D ecrementStrongReference
Unterstützt die WRL-Infrastruktur und soll nicht direkt aus Ihrem Code verwendet werden.
ULONG DecrementStrongReference();
Hinweise
Erhöht die starke Referenzanzahl des aktuellen WeakReference
Objekts.
Wenn die Anzahl der starken Verweise null wird, wird der starke Verweis auf nullptr
.
Rückgabewert
Die dekrementierte starke Referenzanzahl.
WeakReference::IncrementStrongReference
Unterstützt die WRL-Infrastruktur und soll nicht direkt aus Ihrem Code verwendet werden.
ULONG IncrementStrongReference();
Rückgabewert
Die inkrementierte starke Referenzanzahl.
Hinweise
Erhöht die starke Referenzanzahl des aktuellen WeakReference
Objekts.
WeakReference::Resolve
Unterstützt die WRL-Infrastruktur und soll nicht direkt aus Ihrem Code verwendet werden.
STDMETHOD(Resolve)
(REFIID riid,
_Deref_out_opt_ IInspectable **ppvObject
);
Parameter
riid
Eine Schnittstellen-ID.
ppvObject
Wenn dieser Vorgang abgeschlossen ist, wird eine Kopie des aktuellen starken Verweises angezeigt, wenn die Anzahl der starken Verweise nicht null ist.
Rückgabewert
S_OK, wenn dieser Vorgang erfolgreich ist und die starke Bezugsanzahl null ist. Der ppvObject-Parameter ist auf
nullptr
.S_OK, wenn dieser Vorgang erfolgreich ist und die starke Bezugsanzahl ungleich Null ist. Der ppvObject-Parameter wird auf den starken Verweis festgelegt.
Andernfalls gibt ein HRESULT an, das angibt, warum dieser Vorgang fehlgeschlagen ist.
Hinweise
Legt den angegebenen Zeiger auf den aktuellen starken Bezugswert fest, wenn die Anzahl der starken Verweise nicht null ist.
WeakReference::SetUnknown
Unterstützt die WRL-Infrastruktur und soll nicht direkt aus Ihrem Code verwendet werden.
void SetUnknown(
_In_ IUnknown* unk
);
Parameter
unkunk
Ein Zeiger auf die IUnknown
Schnittstelle eines Objekts.
Hinweise
Legt den starken Verweis des aktuellen WeakReference
Objekts auf den angegebenen Schnittstellenzeiger fest.
WeakReference::WeakReference
Unterstützt die WRL-Infrastruktur und soll nicht direkt aus Ihrem Code verwendet werden.
WeakReference();
Hinweise
Initialisiert eine neue Instanz der WeakReference
-Klasse.
Der starke Verweiszeiger für das WeakReference
Objekt wird initialisiert und die starke Bezugsanzahl wird auf 1 initialisiert nullptr
.