Función CreateBindCtx (objbase.h)

Devuelve un puntero a una implementación de IBindCtx (un objeto de contexto de enlace). Este objeto almacena información sobre una operación de enlace de moniker determinada.

Sintaxis

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

Parámetros

[in] reserved

Este parámetro está reservado y debe ser 0.

[out] ppbc

Dirección de una variable de puntero IBindCtx* que recibe el puntero de interfaz al nuevo objeto de contexto de enlace. Cuando la función se realiza correctamente, el autor de la llamada es responsable de llamar a Release en el contexto de enlace. Un valor NULL para el contexto de enlace indica que se produjo un error.

Valor devuelto

Esta función puede devolver los valores devueltos estándar E_OUTOFMEMORY y S_OK.

Comentarios

CreateBindCtx se usa normalmente en el proceso de enlazar un moniker (localizar y obtener un puntero a una interfaz mediante su identificación a través de un moniker), como en los pasos siguientes:

  1. Obtenga un puntero a un contexto de enlace mediante una llamada a la función CreateBindCtx .
  2. Llame al método IMoniker::BindToObject en el moniker, recuperando un puntero de interfaz al objeto al que hace referencia el moniker.
  3. Libere el contexto de enlace.
  4. Use el puntero de interfaz.
  5. Libere el puntero de interfaz.
En el fragmento de código siguiente se muestran estos pasos.
// 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(); 

Los contextos de enlace también se usan en otros métodos de la interfaz IMoniker además de IMoniker::BindToObject y en la función MkParseDisplayName .

Un contexto de enlace conserva las referencias a los objetos enlazados durante la operación de enlace, lo que hace que los objetos enlazados permanezcan activos (manteniendo el servidor del objeto en ejecución) hasta que se libere el contexto de enlace. Reutilizar un contexto de enlace cuando las operaciones posteriores se enlazan al mismo objeto pueden mejorar el rendimiento. Sin embargo, debe liberar el contexto de enlace lo antes posible, ya que podría mantener los objetos activados innecesariamente.

Un contexto de enlace contiene una estructura de BIND_OPTS , que contiene parámetros que se aplican a todos los pasos de una operación de enlace. Al crear un contexto de enlace mediante CreateBindCtx, los campos de la estructura BIND_OPTS se inicializan de la siguiente manera.

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

Puede llamar al método IBindCtx::SetBindOptions para modificar estos valores predeterminados.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado objbase.h
Library Ole32.lib
Archivo DLL Ole32.dll

Consulte también

IBindCtx

Imoniker

MkParseDisplayName