Compartir a través de


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.