Share via


BindMoniker-Funktion (objbase.h)

Sucht ein Objekt mithilfe seines Monikers, aktiviert das Objekt, wenn es inaktiv ist, und ruft einen Zeiger auf die angegebene Schnittstelle für dieses Objekt ab.

Syntax

HRESULT BindMoniker(
  [in]  LPMONIKER pmk,
  [in]  DWORD     grfOpt,
  [in]  REFIID    iidResult,
  [out] LPVOID    *ppvResult
);

Parameter

[in] pmk

Ein Zeiger auf den Moniker des Objekts. Siehe IMoniker.

[in] grfOpt

Dieser Parameter ist für die zukünftige Verwendung reserviert und muss 0 sein.

[in] iidResult

Der Schnittstellenbezeichner, der für die Kommunikation mit dem -Objekt verwendet werden soll.

[out] ppvResult

Die Adresse der Zeigervariable, die den in iidResult angeforderten Schnittstellenzeiger empfängt. Nach erfolgreicher Rückgabe enthält *ppvResult den angeforderten Schnittstellenzeiger. Wenn ein Fehler auftritt, ist *ppvResultNULL. Wenn der Aufruf erfolgreich ist, ist der Aufrufer dafür verantwortlich, den Zeiger mit einem Aufruf der IUnknown::Release-Methode des Objekts freizugeben.

Rückgabewert

Diese Funktion kann die folgenden Fehlercodes oder einen der von der IMoniker::BindToObject-Methode zurückgegebenen Fehlerwerte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Das Objekt wurde gefunden und bei Bedarf aktiviert, und ein Zeiger auf die angeforderte Schnittstelle wurde zurückgegeben.
MK_E_NOOBJECT
Das Vom Moniker-Objekt identifizierte Objekt konnte nicht gefunden werden.

Hinweise

BindMoniker ist eine Hilfsfunktion, die als bequeme Möglichkeit für einen Client bereitgestellt wird, der über den Moniker eines Objekts verfügt, um einen Zeiger auf eine der Schnittstellen dieses Objekts abzurufen. BindMoniker packt die folgenden Aufrufe:

CreateBindCtx(0, &pbc); 
pmk->BindToObject(pbc, NULL, riid, ppvObj);

CreateBindCtx erstellt ein Bindkontextobjekt, das die Systemimplementierung von IBindContext unterstützt. Der pmk-Parameter ist tatsächlich ein Zeiger auf die IMoniker-Implementierung für ein Moniker-Objekt. Die BindToObject-Methode dieser Implementierung stellt den Zeiger auf den angeforderten Schnittstellenzeiger bereit.

Wenn Sie mehrere Moniker in schneller Folge binden und wissen, dass diese Moniker dasselbe Objekt aktivieren, ist es möglicherweise effizienter, die IMoniker::BindToObject-Methode direkt aufzurufen, sodass Sie dasselbe Bindungskontextobjekt für alle Moniker verwenden können. Weitere Informationen finden Sie in der IBindCtx-Schnittstelle .

Containeranwendungen, die es ihren Dokumenten erlauben, verknüpfte Objekte zu enthalten, sind ein spezieller Client, der in der Regel keine direkten Aufrufe von IMoniker-Methoden ausführt. Stattdessen bearbeitet der Client die verknüpften Objekte über die IOleLink-Schnittstelle . Der Standardhandler implementiert diese Schnittstelle und ruft bei Bedarf die entsprechenden IMoniker-Methoden auf.

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 objbase.h
Bibliothek Ole32.lib
DLL Ole32.dll
APIs ext-ms-win-com-ole32-l1-1-5 (eingeführt in Windows 10, Version 10.0.15063)

Weitere Informationen

CreateBindCtx

IMoniker::BindToObject