Share via


CreateBindCtx, fonction (objbase.h)

Retourne un pointeur vers une implémentation de IBindCtx (objet de contexte de liaison). Cet objet stocke des informations sur une opération de liaison de moniker particulière.

Syntaxe

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

Paramètres

[in] reserved

Ce paramètre est réservé et doit être 0.

[out] ppbc

Adresse d’une variable pointeur IBindCtx* qui reçoit le pointeur d’interface vers le nouvel objet de contexte de liaison. Lorsque la fonction réussit, l’appelant est chargé d’appeler Release sur le contexte de liaison. Une valeur NULL pour le contexte de liaison indique qu’une erreur s’est produite.

Valeur retournée

Cette fonction peut retourner les valeurs de retour standard E_OUTOFMEMORY et S_OK.

Remarques

CreateBindCtx est le plus couramment utilisé dans le processus de liaison d’un moniker (localisation et obtention d’un pointeur vers une interface en l’identifiant via un moniker), comme dans les étapes suivantes :

  1. Obtenez un pointeur vers un contexte de liaison en appelant la fonction CreateBindCtx .
  2. Appelez la méthode IMoniker ::BindToObject sur le moniker, en récupérant un pointeur d’interface vers l’objet auquel le moniker fait référence.
  3. Libérez le contexte de liaison.
  4. Utilisez le pointeur d’interface.
  5. Relâchez le pointeur d’interface.
Le fragment de code suivant illustre ces étapes.
// 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(); 

Les contextes de liaison sont également utilisés dans d’autres méthodes de l’interface IMoniker en plus de IMoniker ::BindToObject et dans la fonction MkParseDisplayName .

Un contexte de liaison conserve les références aux objets liés pendant l’opération de liaison, ce qui fait que les objets liés restent actifs (en maintenant le serveur de l’objet en cours d’exécution) jusqu’à ce que le contexte de liaison soit libéré. La réutilisation d’un contexte de liaison lorsque les opérations suivantes sont liées au même objet peut améliorer les performances. Toutefois, vous devez libérer le contexte de liaison dès que possible, car vous pouvez conserver les objets activés inutilement.

Un contexte de liaison contient une structure BIND_OPTS , qui contient des paramètres qui s’appliquent à toutes les étapes d’une opération de liaison. Lorsque vous créez un contexte de liaison à l’aide de CreateBindCtx, les champs de la structure BIND_OPTS sont initialisés comme suit.

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

Vous pouvez appeler la méthode IBindCtx ::SetBindOptions pour modifier ces valeurs par défaut.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête objbase.h
Bibliothèque Ole32.lib
DLL Ole32.dll

Voir aussi

IBindCtx

IMoniker

MkParseDisplayName