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 |
---|---|
|
Terminación prematura, posiblemente memoria insuficiente irrecuperable. |
|
Mensaje de error con formato, |
|
Mensaje de advertencia con formato, |
|
Mensaje de solicitud de usuario, |
|
Mensaje informativo para el registro, |
|
Lista de archivos actualmente en uso que deben cerrarse antes de reemplazarse. |
|
Solicitud para determinar una ubicación de origen válida. |
|
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. |
|
Mensaje de espacio en disco insuficiente. |
|
Progreso: inicio de la acción, |
|
Datos de la acción. Los campos de registro corresponden a la plantilla del mensaje ACTIONSTART. |
|
Información de la barra de progreso. Consulte la descripción de los campos de registro a continuación. |
|
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