Función MsiSetExternalUIRecord (msi.h)
La función MsiSetExternalUIRecord habilita un controlador externo de interfaz de usuario (UI).
Sintaxis
UINT MsiSetExternalUIRecord(
[in] INSTALLUI_HANDLER_RECORD puiHandler,
[in] DWORD dwMessageFilter,
[in] LPVOID pvContext,
[out, optional] PINSTALLUI_HANDLER_RECORD ppuiPrevHandler
);
Parámetros
[in] puiHandler
Especifica una función de devolución de llamada que se ajusta a la especificación de INSTALLUI_HANDLER_RECORD .
Para deshabilitar el controlador de interfaz de usuario externo actual, llame a la función con este parámetro establecido en un valor NULL .
[in] dwMessageFilter
Especifica los mensajes que se van a controlar mediante el controlador de mensajes externo. Si el controlador externo devuelve un resultado distinto de cero, ese mensaje no se envía a la interfaz de usuario, en su lugar, el mensaje se registra si el registro está habilitado. Para obtener más información, consulte MsiEnableLog.
Valor | Significado |
---|---|
|
Archivos en la información de uso.
Cuando se recibe este mensaje, se debe mostrar un cuadro de diálogo FilesInUse . |
|
Terminación prematura de la instalación. |
|
Los mensajes de error se registran. |
|
Los mensajes de advertencia se registran. |
|
Las solicitudes de usuario se registran. |
|
Los mensajes de estado que no se muestran se registran. |
|
Solicitud para determinar una ubicación de origen válida. |
|
Archivos en la información de uso. Cuando se recibe este mensaje, se debe mostrar un cuadro de diálogo MsiRMFilesInUse . |
|
No hay suficiente espacio en disco. |
|
Se registra el inicio de las nuevas acciones de instalación. |
|
Se registra el registro de datos con la acción de instalación. |
|
Se registran los parámetros para la inicialización de la interfaz de usuario. |
|
Información de la barra progreso .
Este mensaje incluye información sobre las unidades hasta ahora y el número total de unidades. Este mensaje solo se envía a una interfaz de usuario externa y no se registra. Para obtener más información, consulte MsiProcessMessage. |
|
Si no se trata de una instalación silenciosa, se inicializa la interfaz de usuario básica .
Si se trata de una instalación completa de la interfaz de usuario, la interfaz de usuario completa aún no se inicializa. Este mensaje solo se envía a una interfaz de usuario externa y no se registra. |
|
Si se usa una interfaz de usuario completa, ha finalizado la interfaz de usuario completa.
Si no se trata de una instalación silenciosa, la interfaz de usuario básica no ha finalizado. Este mensaje solo se envía a una interfaz de usuario externa y no se registra. |
|
Se envió antes de mostrar el cuadro de diálogo Interfaz de usuario completa.
Este mensaje solo se envía a una interfaz de usuario externa y no se registra. |
|
Comienzo de la instalación del producto.
El mensaje contiene el ProductName y ProductCode del producto. |
|
Finalización de la instalación del producto.
El mensaje contiene el valor ProductName, ProductCode y el valor devuelto del producto. |
[in] pvContext
Puntero a un contexto de aplicación que se pasa a la función de devolución de llamada.
Este parámetro se puede usar para la comprobación de errores.
[out, optional] ppuiPrevHandler
Devuelve el puntero a la función de devolución de llamada establecida anteriormente que se ajusta a la especificación de INSTALLUI_HANDLER_RECORD o NULL si no se ha establecido previamente ninguna devolución de llamada.
Valor devuelto
Código devuelto | Descripción |
---|---|
|
La función se completa correctamente. |
|
Este valor indica que se intenta llamar a esta función desde una acción personalizada.
No se puede llamar a esta función desde una acción personalizada. |
Comentarios
No se puede llamar a esta función desde Acciones personalizadas.
El controlador de interfaz de usuario externo habilitado llamando a MsiSetExternalUIRecord recibe mensajes con el formato de un objeto Record. El controlador de interfaz de usuario externo habilitado llamando a MsiSetExternalUI recibe mensajes con el formato de una cadena. Siempre se llama a una interfaz de usuario externa antes de la interfaz de usuario interna de Windows Installer. Se llama a una interfaz de usuario externa basada en registros habilitada antes de cualquier interfaz de usuario externa basada en cadenas. Si el controlador de interfaz de usuario externo basado en registros devuelve 0 (cero), el mensaje se envía a cualquier controlador de interfaz de usuario externo basado en cadenas habilitado. Si el controlador de interfaz de usuario externo devuelve un valor distinto de cero, se suprime el controlador de interfaz de usuario interno de Windows Installer y se consideran los mensajes que se tratan.
Esta función almacena las interfaces de usuario externas que ha establecido. Para reemplazar el controlador de interfaz de usuario externo actual por un controlador anterior, llame a la función y especifique el INSTALLUI_HANDLER_RECORD como el parámetro puiHandler y 0 (cero) como parámetro dwMessageFilter .
El controlador de interfaz de usuario externo al que apunta el parámetro puiHandler no tiene control total sobre la interfaz de usuario externa a menos que se llame a MsiSetInternalUI con el parámetro dwUILevel establecido en INSTALLUILEVEL_NONE. Si no se llama a MsiSetInternalUI , el nivel de interfaz de usuario interno tiene como valor predeterminado INSTALLUILEVEL_BASIC. Como resultado, Windows Installer controla cualquier mensaje no controlado por el controlador de interfaz de usuario externo. Inicial "Preparación para la instalación. . El cuadro de diálogo ." siempre aparece aunque el controlador de interfaz de usuario externo controle todos los mensajes. MsiSetExternalUI solo debe llamarse desde una aplicación de arranque . No se puede llamar a MsiSetExternalUI desde una acción personalizada.
Para deshabilitar este controlador de interfaz de usuario externo, llame a MsiSetExternalUIRecord con un valor NULL para el parámetro puiHandler .
Windows Installer 2.0 y Windows Installer 3.0: No se admite. La función MsiSetExternalUIRecord está disponible a partir de Windows Installer 3.1.
Para obtener más información sobre el uso de un controlador externo basado en registros, consulte Supervisión de una instalación mediante MsiSetExternalUIRecord.
Requisitos
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. Consulte Requisitos de Windows Installer en tiempo de ejecución para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer. |
Plataforma de destino | Windows |
Encabezado | msi.h |
Library | Msi.lib |
Archivo DLL | Msi.dll |
Consulte también
Funciones de interfaz y registro
No se admite en Windows Installer 3.0 ni en versiones anteriores