IBindCtx::RegisterObjectBound-Methode (objidl.h)

Registriert ein Objekt beim Bindungskontext, um sicherzustellen, dass das Objekt aktiv bleibt, bis der Bindungskontext freigegeben wird.

Syntax

HRESULT RegisterObjectBound(
  [in] IUnknown *punk
);

Parameter

[in] punk

Ein Zeiger auf die IUnknown-Schnittstelle für das Objekt, das als gebunden registriert wird.

Rückgabewert

Diese Methode kann die Standardrückgabewerte E_OUTOFMEMORY und S_OK zurückgeben.

Hinweise

Benutzer, die eine neue Monikerklasse (über eine Implementierung der IMoniker-Schnittstelle ) schreiben, sollten diese Methode immer dann aufrufen, wenn die Implementierung ein -Objekt aktiviert. Dies geschieht am häufigsten beim Binden eines Monikers, aber es kann auch beim Abrufen des Anzeigenamens eines Monikers, beim Analysieren eines Anzeigenamens in einen Moniker oder beim Abrufen des Zeitpunkts der letzten Änderung eines Objekts auftreten.

RegisterObjectBound ruft AddRef auf, um einen zusätzlichen Verweis auf das Objekt zu erstellen. Sie müssen jedoch weiterhin Ihre eigene Kopie des Zeigers freigeben. Wenn Sie diese Methode zweimal für dasselbe Objekt aufrufen, werden zwei Verweise auf dieses Objekt erstellt. Sie können einen Verweis freigeben, der durch einen Aufruf dieser Methode abgerufen wurde, indem Sie IBindCtx::RevokeObjectBound aufrufen. Alle Verweise, die im Bindungskontext gespeichert sind, werden freigegeben, wenn der Bindungskontext selbst freigegeben wird.

Das Aufrufen von RegisterObjectBound zum Registrieren eines Objekts mit einem Bindungskontext hält das Objekt aktiv, bis der Bindungskontext freigegeben wird. Die Wiederverwendung eines Bindungskontexts in einer nachfolgenden Bindungsoperation (entweder für einen anderen Teil desselben zusammengesetzten Monikers oder für einen anderen Moniker) kann den nachfolgenden Bindungsvorgang effizienter gestalten, da das Objekt nicht erneut geladen werden muss. Dies verbessert die Leistung jedoch nur, wenn der nachfolgende Bindungsvorgang einige der gleichen Objekte wie das ursprüngliche erfordert, sodass Sie die mögliche Leistungsverbesserung durch die Wiederverwendung eines Bindungskontexts gegen die Kosten für die unnötige Aktivierung von Objekten abwägen müssen.

IBindCtx bietet keine Methode zum Abrufen eines Zeigers auf ein Objekt, das mit RegisterObjectBound registriert ist. Vorausgesetzt, das Objekt hat sich bei der ausgeführten Objekttabelle registriert, können Monikerimplementierungen IRunningObjectTable::GetObject aufrufen, um einen Zeiger auf das Objekt abzurufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile objidl.h

Weitere Informationen

Ibindctx

IRunningObjectTable::GetObject