Análisis de mensajes de Windows Installer
Un controlador de interfaz de usuario externo puede procesar la lista de mensajes del instalador especificados por el parámetro dwMessagedFilter de la función MsiSetExternalUI. Algunos de estos mensajes contienen cadenas que se pueden usar directamente, y puede que sea necesario que el controlador de interfaz de usuario externo analice y procese otros mensajes para que sean de utilidad. Puede que el controlador de interfaz de usuario externo solo tenga que supervisar los mensajes de Windows Installer, sin realizar ninguna operación que afecte a la instalación.
Los siguientes mensajes de Windows Installer contienen cadenas que pueden mostrarse mediante un cuadro de diálogo y que no necesitan ningún procesamiento adicional. Estos mensajes contienen una lista de los botones e iconos que se van a mostrar en un cuadro de diálogo. Puede usar los valores de MB_ICONMASK, MB_DEFMASK y MB_TYPEMASK para especificar los iconos y botones.
-
INSTALLMESSAGE_FATALEXIT
-
La instalación ha finalizado de forma prematura.
-
INSTALLMESSAGE_ERROR
-
Mensaje de error con formato.
-
INSTALLMESSAGE_WARNING
-
Mensaje de advertencia con formato.
-
INSTALLMESSAGE_INFO
-
Mensaje de registro con formato.
-
INSTALLMESSAGE_USER
-
Mensaje de usuario con formato.
-
INSTALLMESSAGE_OUTOFDISKSPACE
-
Mensaje con formato que indica una situación de espacio en disco insuficiente.
El controlador de usuario externo puede usar los siguientes mensajes de Windows Installer para supervisar una secuencia de la interfaz de usuario de Windows Installer. El instalador muestra estos mensajes al principio de una secuencia de interfaz de usuario de Windows Installer, en cada cuadro de diálogo que se vaya abriendo y al final de la secuencia de la interfaz de usuario. No se requiere ningún procesamiento para usar estos mensajes.
-
INSTALLMESSAGE_TERMINATE
-
Este mensaje indica el final de la secuencia de interfaz de usuario. La cadena es una cadena nula.
-
INSTALLMESSAGE_INITIALIZE
-
Este mensaje indica que se ha iniciado la secuencia de interfaz de usuario. La cadena es una cadena nula.
-
INSTALLMESSAGE_SHOWDIALOG
-
La cadena contiene el nombre del cuadro de diálogo actual.
Los siguientes mensajes de Windows Installer requieren un procesamiento adicional por parte del controlador de interfaz de usuario externo.
-
INSTALLMESSAGE_RESOLVESOURCE
-
El controlador de interfaz de usuario externo debe devolver 0 y permitir que Windows Installer controle el mensaje. El controlador de interfaz de usuario externo puede supervisar este mensaje, pero no debe realizar ninguna acción que afecte a la instalación.
-
INSTALLMESSAGE_FILESINUSE
-
La interfaz de usuario externa debe mostrar un cuadro de diálogo FilesInUse en respuesta a este mensaje.
-
INSTALLMESSAGE_RMFILESINUSE
-
La interfaz de usuario externa debe mostrar un cuadro de diálogo MsiRMFilesInUse en respuesta a este mensaje. Disponible a partir de la versión 4.0 de Windows Installer. Para obtener más información sobre este mensaje, vea Uso del Administrador de reinicio con una interfaz de usuario externa.
-
INSTALLMESSAGE_ACTIONSTART
-
Este mensaje proporciona información sobre la acción actual. El formato es "Action [1]: [2]. [3]", donde se usan dos puntos para separar el campo 1 y el campo 2, y un punto para separar el campo 2 y el campo 3. El campo [1] contiene la hora a la que se inició la acción con el formato de propiedad Time. El campo [2] contiene el nombre de la acción de la tabla de secuencia. El campo [3] proporciona una descripción la acción, extraída de la tabla ActionText o de la función MsiProcessMessage.
-
INSTALLMESSAGE_ACTIONDATA
-
El formato de esta cadena se especifica mediante el valor de Template proporcionado en la tabla ActionText o por la función MsiProcessMessage. Puede haber un número ilimitado de mensajes INSTALLMESSAGE_ACTIONDATA después del mensaje INSTALLMESSAGE_ACTIONSTART.
-
INSTALLMESSAGE_COMMONDATA
-
Este mensaje tiene tres subtipos: Language, Caption y CancelShow. La cadena puede tener tres campos delimitados por un número seguido de dos puntos. Todos los campos son obligatorios. El mensaje puede ser una cadena NULL o vacía ("").
-
Language
-
El campo 1 contiene el valor 0 para indicar que esta cadena contiene información del idioma. El campo 2 contiene un valor de Idioma que es un identificador de idioma numérico (LANGID). El campo 3 es un valor que representa una página de códigos ANSI.
-
Caption
-
El campo 1 contiene el valor 1 para indicar que esta cadena incluye el texto de un subtítulo o un título. El campo 2 contiene texto que un controlador de interfaz de usuario externo puede usar como subtítulo o título de un cuadro de diálogo. El campo 3 es NULL o una cadena vacía (""). El campo 3 puede estar ausente en el mensaje de Leyenda.
-
CancelShow
-
El campo 1 contiene el valor 2 para indicar que esta cadena contiene información sobre si se va a mostrar el botón Cancelar. Si el botón Cancelar debe estar oculto, el campo 2 contiene el valor 0. Si el botón Cancelar debe estar visible, el campo 2 contiene el valor 1.
-
-
INSTALLMESSAGE_PROGRESS
-
Este mensaje tiene cuatro subtipos: Reset, ActionInfo, ProgressReport y ProgressAddition. El controlador externo no debe actuar a raíz de ninguno de estos mensajes hasta que no se reciba el primer mensaje de progreso Reset. Esto proporciona una estimación del número total de tics de la barra de progreso.
-
Restablecer
-
El campo 1 contiene el valor 0 para indicar un restablecimiento de la barra de progreso. El campo 2 contiene el número total de tics en la barra de progreso. El campo 3 contiene el valor 0 para hacer avanzar la barra de progreso. El campo 3 contiene el valor 1 para hacer retroceder la barra de progreso. Un valor 0 en el campo 4 significa que la instalación está en curso; se puede calcular el tiempo restante que queda. Un valor 1 en el campo 4 significa que el script se está ejecutando; puede aparecer un mensaje "Espere...". La estimación del número total de tics es una aproximación y puede ser inexacta.
-
ActionInfo
-
El campo 1 contiene el valor 1 para indicar que esta cadena contiene información de la acción. El campo 2 contiene el número de tics que la barra de progreso se desplaza por cada mensaje ActionData enviado por la acción actual. Si el campo 3 contiene el valor 0, omita el campo 2. Si el campo 3 contiene el valor 1, incremente la barra de progreso por el número de tics del campo 2 por cada mensaje ActionData enviado por la acción actual. El campo 4 no se usa.
-
ProgressReport
-
El campo 1 contiene el valor 2 para indicar que esta cadena contiene información del progreso. El campo 2 contiene el número de tics que la barra de progreso se ha desplazado. El campo 3 no se usa. El campo 4 no se usa.
-
ProgressAddition
-
El campo 1 contiene el valor 3 para indicar que una acción puede agregar tics a la barra de progreso. El campo 2 contiene el número de tics que se van a agregar al recuento total de tics de progreso previsto. El campo 3 no se usa. El campo 4 no se usa.
-