Función MsiProcessMessage (msiquery.h)

La función MsiProcessMessage envía un registro de error al instalador para su procesamiento.

Sintaxis

int MsiProcessMessage(
  [in] MSIHANDLE      hInstall,
  [in] INSTALLMESSAGE eMessageType,
  [in] MSIHANDLE      hRecord
);

Parámetros

[in] hInstall

Controle la instalación proporcionada a una acción personalizada de DLL o obtenida a través de MsiOpenPackage, MsiOpenPackageEx o MsiOpenProduct.

[in] eMessageType

El parámetro eMessage debe ser un valor que especifique uno de los siguientes tipos de mensaje. Para mostrar un cuadro de mensaje con botones o iconos de inserción, use operadores OR para agregar INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING o INSTALLMESSAGE_USER a los estilos de cuadro de mensaje estándar usados por las funciones MessageBox y MessageBoxEx . Para obtener más información, vea los comentarios a continuación.

Valor Significado
INSTALLMESSAGE_FATALEXIT
Terminación prematura, posiblemente memoria insuficiente irrecuperable.
INSTALLMESSAGE_ERROR
Mensaje de error con formato,
 
[1] es el número de mensaje de la tabla error.
INSTALLMESSAGE_WARNING
Mensaje de advertencia con formato,
 
[1] es el número de mensaje de la tabla error.
INSTALLMESSAGE_USER
Mensaje de solicitud de usuario,
 
[1] es el número de mensaje de la tabla error.
INSTALLMESSAGE_INFO
Mensaje informativo para el registro,
 
no se va a mostrar.
INSTALLMESSAGE_FILESINUSE
Lista de archivos actualmente en uso que deben cerrarse antes de reemplazarse.
INSTALLMESSAGE_RESOLVESOURCE
Solicitud para determinar una ubicación de origen válida.
INSTALLMESSAGE_RMFILESINUSE
Lista de archivos actualmente en uso que deben cerrarse antes de reemplazarse. 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_OUTOFDISKSPACE
Mensaje de espacio en disco insuficiente.
INSTALLMESSAGE_ACTIONSTART
Progreso: inicio de la acción,
 
[1] nombre de acción,
 
[2] descripción,
 
Plantilla [3] para mensajes ACTIONDATA.
INSTALLMESSAGE_ACTIONDATA
Datos de la acción. Los campos de registro corresponden a la plantilla del mensaje ACTIONSTART.
INSTALLMESSAGE_PROGRESS
Información de la barra de progreso. Consulte la descripción de los campos de registro a continuación.
INSTALLMESSAGE_COMMONDATA
Para habilitar el botón Cancelar, establezca [1] en 2 y [2] en 1.

Para deshabilitar el botón Cancelar, establezca [1] en 2 y [2] en 0.

[in] hRecord

Controle un registro que contenga el formato y los datos del mensaje.

Valor devuelto

Esta función devuelve int.

Comentarios

La función MsiProcessMessage realiza las operaciones de registro habilitadas y aplaza la ejecución. Puede habilitar selectivamente el registro para varios tipos de mensajes.

Para INSTALLMESSAGE_FATALEXIT, INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING y mensajes de INSTALLMESSAGE_USER, si el campo 0 no está establecido, el campo 1 debe establecerse en el código de error correspondiente al mensaje de error de la tabla Error. A continuación, el mensaje se da formato mediante la plantilla de la tabla Error antes de pasarlo al controlador de interfaz de usuario para su presentación.

Registrar campos para los mensajes de la barra de progreso

A continuación se describen los campos de registro cuando eMessageType está establecido en INSTALLMESSAGE_PROGRESS. El campo 1 especifica el tipo del mensaje de progreso. El significado de los demás campos depende del valor de este campo. Los valores posibles que se pueden establecer en el campo 1 son los siguientes.
Valor del campo 1 Descripción del campo 1
0 Restablece la barra de progreso y establece el número total esperado de tics en la barra.
1 Proporciona información relacionada con los mensajes de progreso que enviará la acción actual.
2 Incrementa la barra de progreso.
3 Habilita una acción (como CustomAction) para agregar tics al número total esperado de progreso de la barra de progreso.
 

El significado del campo 2 depende del valor del campo 1 como se indica a continuación.

Valor del campo 1 Descripción del campo 2
0 Número total esperado de tics en la barra de progreso.
1 Número de tics que mueve la barra de progreso para cada mensaje ActionData enviado por la acción actual. Este campo se omite si el campo 3 es 0.
2 Número de tics que se ha movido la barra de progreso.
3 Número de tics que se van a agregar al progreso total esperado.
 

El significado del campo 3 depende del valor del campo 1 como se indica a continuación.

Valor del campo 1 Valor del campo 3 Descripción del campo 3
0 0 Barra de progreso hacia delante (de izquierda a derecha)
  1 Barra de progreso hacia atrás (de derecha a izquierda)
1 0 La acción actual enviará mensajes explícitos de ProgressReport.
  1 Incremente la barra de progreso por el número de tics especificados en el campo 2 cada vez que la acción actual envía un mensaje ActionData.
2 No utilizado  
3 No utilizado  
 

El significado del campo 4 depende del valor del campo 1 como se indica a continuación.

Valor del campo 1 Valor del campo 4 Descripción del campo 4
0 0 La ejecución está en curso. En este caso, la UI podría calcular y mostrar el tiempo restante.
  1 Creación del script de ejecución. En este caso, la UI podría mostrar un mensaje de “por favor, espere” mientras el instalador finaliza la preparación de la instalación.
1 No utilizado  
2 No utilizado  
3 No utilizado  
 

Para obtener más información y un ejemplo de código, vea Agregar acciones personalizadas a la barra de progreso.

Presentación de cuadros de mensaje

Para mostrar un cuadro de mensaje con botones de inserción o iconos, use operadores OR para agregar INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING o INSTALLMESSAGE_USER con las opciones de cuadro de mensaje usadas por MessageBox y MessageBoxEx. Las opciones de botón de inserción disponibles son MB_OK, MB_OKCANCEL, MB_ABORTRETRYIGNORE, MB_YESNOCANCEL, MB_YESNO y MB_RETRYCANCEL. Las opciones de botón predeterminada disponibles son MB_DEFBUTTON1, MB_DEFBUTTON2 y MB_DEFBUTTON3. Las opciones de icono disponibles son MB_ICONERROR, MB_ICONQUESTION, MB_ICONWARNING y MB_ICONINFORMATION. Si no se especifica ninguna opción de icono, Windows Installer elige un estilo de icono predeterminado basado en el tipo de mensaje.

Por ejemplo, la siguiente llamada a MsiProcessMessage envía un mensaje de INSTALLMESSAGE_ERROR con el icono de MB_ICONWARNING y los botones de MB_ABORTRETRYCANCEL.

PMSIHANDLE hInstall;
PMSIHANDLE hRec;
MsiProcessMessage(hInstall, 
                  INSTALLMESSAGE(INSTALLMESSAGE_ERROR|MB_ABORTRETRYIGNORE|MB_ICONWARNING),
                  hRec);

Si una acción personalizada llama a MsiProcessMessage, la acción personalizada debe ser capaz de controlar una cancelación por parte del usuario y debe devolver ERROR_INSTALL_USEREXIT.

Para obtener más información sobre el envío de mensajes con MsiProcessMessage, consulta El envío de mensajes a Windows Installer mediante MsiProcessMessage.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 en Windows Server 2008 o Windows Vista. Windows Installer en Windows Server 2003 o Windows XP
Plataforma de destino Windows
Encabezado msiquery.h
Library Msi.lib
Archivo DLL Msi.dll

Consulte también

Funciones de acción del instalador

Envío de mensajes a Windows Installer mediante MsiProcessMessage