estructura BIND_OPTS3 (objidl.h)
Contiene parámetros usados durante una operación de enlace de moniker.
Sintaxis
typedef struct tagBIND_OPTS3 {
DWORD cbStruct;
DWORD grfFlags;
DWORD grfMode;
DWORD dwTickCountDeadline;
DWORD dwTrackFlags;
DWORD dwClassContext;
LCID locale;
COSERVERINFO *pServerInfo;
HWND hwnd;
} BIND_OPTS3, *LPBIND_OPTS3;
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.
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 mediante la búsqueda de los datos originales aunque haya 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 de 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. Monikers normalmente pasa 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 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 .
hwnd
Identificador de la ventana que se convierte en el propietario de la interfaz de usuario de elevación, si procede. Si hwnd es NULL, COM llamará a la función GetActiveWindow para buscar un identificador de ventana asociado al subproceso actual. Este caso puede producirse si el cliente es un script, que no puede rellenar una estructura de BIND_OPTS3 . En este caso, COM intentará usar la ventana asociada al subproceso de script.
Comentarios
Una estructura BIND_OPTS3 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_OPTS3 al método IBindCtx::SetBindOptions . Los implementadores de Moniker pueden pasar una estructura de BIND_OPTS3 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 |