Freigeben über


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.