estructura BIND_OPTS (objidl.h)

Contiene parámetros usados durante una operación de enlace de moniker.

La estructura BIND_OPTS2 o BIND_OPTS3 se puede usar en lugar de la estructura BIND_OPTS .

Sintaxis

typedef struct tagBIND_OPTS {
  DWORD cbStruct;
  DWORD grfFlags;
  DWORD grfMode;
  DWORD dwTickCountDeadline;
} BIND_OPTS, *LPBIND_OPTS;

Miembros

cbStruct

Tamaño de esta estructura, en bytes.

grfFlags

Marca que controla aspectos de las operaciones de enlace de moniker. Este valor es cualquier combinación de las marcas de bits de la enumeración BIND_FLAGS . La función CreateBindCtx inicializa este miembro en cero.

grfMode

Marcadores que deben utilizarse al abrir el archivo que contiene el objeto identificado por el moniker. Los valores posibles son las constantes STGM. La operación de enlace usa estas marcas en la llamada a IPersistFile::Load al cargar el archivo. Si el objeto ya se está ejecutando, la operación de enlace omite estas marcas. La función CreateBindCtx inicializa este campo en STGM_READWRITE.

dwTickCountDeadline

Hora del reloj en la que el autor de la llamada desea que se complete la operación de enlace, en milisegundos. Este miembro permite al autor de la llamada limitar el tiempo de ejecución de una operación cuando la velocidad es de importancia principal. Un valor de cero indica que no hay fecha límite. Los autores de llamadas suelen usar esta funcionalidad al llamar al método IMoniker::GetTimeOfLastChange , aunque también se puede aplicar a otras operaciones. La función CreateBindCtx inicializa este campo en cero.

Las fechas límite típicas permiten unos cientos de milisegundos de ejecución. Esta fecha límite es una recomendación, no un requisito; sin embargo, las operaciones que superan su fecha límite en una gran cantidad pueden provocar retrasos para el usuario final. Cada implementación de moniker debe intentar completar su operación según la fecha límite o producir un error MK_E_EXCEEDEDDEADLINE.

Si una operación de enlace supera su fecha límite porque uno o varios objetos que necesita no se están ejecutando, la implementación del moniker debe registrar los objetos responsables en el contexto de enlace mediante IBindCtx::RegisterObjectParam. Los objetos deben registrarse en los nombres de parámetro "ExceededDeadline", "ExceededDeadline1", "ExceededDeadline2", etc. Si el autor de la llamada encuentra más adelante el objeto en la tabla de objetos en ejecución, el autor de la llamada puede reintentar la operación de enlace.

La función GetTickCount indica el número de milisegundos desde el inicio del sistema y se ajusta a cero después de 2^31 milisegundos. Por lo tanto, los autores de llamadas deben tener cuidado de no pasar accidentalmente un valor cero (lo que indica que no hay fecha límite) y las implementaciones de moniker deben tener en cuenta los problemas de ajuste del reloj.

Comentarios

Una estructura BIND_OPTS se almacena en un contexto de enlace; cada componente de un moniker compuesto usa el mismo contexto de enlace, lo que permite pasar los mismos parámetros a todos los componentes de un moniker compuesto. Consulte IBindCtx para obtener más información sobre los contextos de enlace.

Los clientes de Moniker (usen un moniker para adquirir un puntero de interfaz a un objeto) normalmente no necesitan especificar valores para los miembros de esta estructura. La función CreateBindCtx crea un contexto de enlace con las opciones de enlace establecidas en valores predeterminados adecuados para la mayoría de las situaciones; La función BindMoniker hace lo mismo al crear un contexto de enlace para su uso en el enlace de un moniker. Si desea modificar los valores de estas opciones de enlace, puede hacerlo pasando una estructura de BIND_OPTS al método IBindCtx::SetBindOptions . Los implementadores de Moniker pueden pasar una estructura de BIND_OPTS al método IBindCtx::GetBindOptions para recuperar los valores de estas opciones de enlace.

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]
Encabezado objidl.h

Consulte también

CreateBindCtx

IBindCtx

Imoniker