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:
- Rufen Sie einen Zeiger auf einen Bindungskontext ab, indem Sie die CreateBindCtx-Funktion aufrufen.
- 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.
- Geben Sie den Bindungskontext frei.
- Verwenden Sie den Schnittstellenzeiger.
- Lassen Sie den Schnittstellenzeiger los.
// 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 |