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:
- Obtenga un puntero a un contexto de enlace mediante una llamada a la función CreateBindCtx .
- Llame al método IMoniker::BindToObject en el moniker, recuperando un puntero de interfaz al objeto al que hace referencia el moniker.
- Libere el contexto de enlace.
- Use el puntero de interfaz.
- Libere el puntero de interfaz.
// 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 |