Share via


estructura BIND_OPTS2 (objidl.h)

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

Sintaxis

typedef struct tagBIND_OPTS2 {
  DWORD        cbStruct;
  DWORD        grfFlags;
  DWORD        grfMode;
  DWORD        dwTickCountDeadline;
  DWORD        dwTrackFlags;
  DWORD        dwClassContext;
  LCID         locale;
  COSERVERINFO *pServerInfo;
} BIND_OPTS2, *LPBIND_OPTS2;

Miembros

cbStruct

Tamaño de esta estructura, en bytes.

grfFlags

Marcas que controlan 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 para STGM_READWRITE.

dwTickCountDeadline

Hora del reloj por 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 ninguna 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 se deben registrar bajo 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 llamadores 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.

dwTrackFlags

Un moniker puede usar este valor durante el seguimiento de vínculos. Si se han movido los datos persistentes originales a los que hace referencia el moniker, el moniker puede intentar restablecer el vínculo buscando los datos originales a través de algún mecanismo adecuado. Este miembro proporciona información adicional sobre cómo se debe resolver el vínculo. Consulte la documentación del parámetro fFlags en IShellLink::Resolve.

La implementación del moniker de archivos com usa el mecanismo de vínculo de shell para restablecer vínculos y pasa estas marcas a IShellLink::Resolve.

dwClassContext

Contexto de clase, tomado de la enumeración CLSCTX , que se va a usar para crear instancias del objeto. Los monikers normalmente pasan este valor al parámetro dwClsContext de CoCreateInstance.

locale

Valor LCID que indica la preferencia del cliente por la configuración regional que va a usar el objeto al que están enlazando. Un moniker pasa este valor a IClassActivator::GetClassObject.

pServerInfo

Puntero a una estructura COSERVERINFO . Este miembro permite a los clientes que llaman a IMoniker::BindToObject especificar la información del servidor. Los clientes pueden pasar una estructura de BIND_OPTS2 al método IBindCtx::SetBindOptions . Si se especifica un nombre de servidor en la estructura COSERVERINFO , el enlace de moniker se reenviará al equipo especificado. SetBindOptions solo copia los miembros de estructura de BIND_OPTS2, no la estructura COSERVERINFO y los punteros que contiene. Los autores de llamadas no pueden liberar ninguno de estos punteros hasta que se libere el contexto de enlace. El nuevo moniker de clase com no respeta actualmente la marca pServerInfo .

Comentarios

Una estructura BIND_OPTS2 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 (usan 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 usarlo en el enlace de un moniker. Si desea modificar los valores de estas opciones de enlace, puede hacerlo pasando una estructura de BIND_OPTS2 al método IBindCtx::SetBindOptions . Los implementadores de moniker pueden pasar una estructura de BIND_OPTS2 al método IBindCtx::GetBindOptions para recuperar los valores de estas opciones de enlace.

Requisitos

Requisito Value
Cliente mínimo compatible compilación 20348 de Windows 10
Servidor mínimo compatible compilación 20348 de Windows 10
Encabezado objidl.h

Consulte también

BIND_OPTS3

CreateBindCtx

IBindCtx

Imoniker