Freigeben über


CreateBindCtx-Funktion (objbase.h)

Gibt einen Zeiger auf eine Implementierung von IBindCtx (ein Bindungskontextobjekt) zurück. Dieses Objekt speichert Informationen zu einem bestimmten Monikerbindungsvorgang.

Syntax

HRESULT CreateBindCtx(
  [in]  DWORD reserved,
  [out] LPBC  *ppbc
);

Parameter

[in] reserved

Dieser Parameter ist reserviert und muss 0 sein.

[out] ppbc

Adresse einer IBindCtx*-Zeigervariable, die den Schnittstellenzeiger auf das neue Bindungskontextobjekt empfängt. Wenn die Funktion erfolgreich ist, ist der Aufrufer für den Aufruf von Release im Bindungskontext verantwortlich. Ein NULL-Wert für den Bindungskontext gibt an, dass ein Fehler aufgetreten ist.

Rückgabewert

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

Hinweise

CreateBindCtx wird am häufigsten beim Binden eines Monikers (Suchen und Abrufen eines Zeigers auf eine Schnittstelle durch Identifizierung durch einen Moniker) verwendet, wie in den folgenden Schritten:

  1. Rufen Sie einen Zeiger auf einen Bindungskontext ab, indem Sie die CreateBindCtx-Funktion aufrufen.
  2. Rufen Sie die IMoniker::BindToObject-Methode für den Moniker auf, und rufen Sie einen Schnittstellenzeiger auf das Objekt ab, auf das der Moniker verweist.
  3. Geben Sie den Bindungskontext frei.
  4. Verwenden Sie den Schnittstellenzeiger.
  5. Lassen Sie den Schnittstellenzeiger los.
Das folgende Codefragment veranschaulicht diese Schritte.
// pMnk is an IMoniker * that points to a previously acquired moniker
IInterface *pInterface;
IBindCtx *pbc;
 
CreateBindCtx( 0, &pbc );
pMnk->BindToObject( pbc, NULL, IID_IInterface, &pInterface );
pbc->Release();

// pInterface now points to the object; safe to use pInterface
pInterface->Release();

Bindungskontexte werden auch in anderen Methoden der IMoniker-Schnittstelle neben IMoniker::BindToObject und in der MkParseDisplayName-Funktion verwendet.

Ein Bindungskontext behält Verweise auf die Objekte bei, die während des Bindungsvorgangs gebunden sind, wodurch die gebundenen Objekte aktiv bleiben (der Server des Objekts wird ausgeführt), bis der Bindungskontext freigegeben wird. Die Wiederverwendung eines Bindungskontexts, wenn nachfolgende Vorgänge an dasselbe Objekt gebunden werden, kann die Leistung verbessern. Sie sollten den Bindungskontext jedoch so schnell wie möglich freigeben, da Sie die Objekte möglicherweise unnötig aktiviert halten.

Ein Bindungskontext enthält eine BIND_OPTS-Struktur , die Parameter enthält, die für alle Schritte in einem Bindungsvorgang gelten. Wenn Sie mit CreateBindCtx einen Bindungskontext erstellen, werden die Felder der BIND_OPTS-Struktur wie folgt initialisiert.

cbStruct = sizeof(BIND_OPTS) 
grfFlags = 0 
grfMode = STGM_READWRITE 
dwTickCountDeadline = 0

Sie können die IBindCtx::SetBindOptions-Methode aufrufen, um diese Standardwerte zu ändern.

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

Weitere Informationen

Ibindctx

Imoniker

MkParseDisplayName