Функция MsiSetExternalUIA (msi.h)
Функция MsiSetExternalUI включает внешний обработчик пользовательского интерфейса. Этот внешний обработчик пользовательского интерфейса вызывается перед обычным внутренним обработчиком пользовательского интерфейса. Внешний обработчик пользовательского интерфейса имеет возможность подавлять внутренний пользовательский интерфейс, возвращая ненулевое значение, указывающее, что он обработал сообщения. Дополнительные сведения см. в разделе Сведения о пользовательском интерфейсе.
Синтаксис
INSTALLUI_HANDLERA MsiSetExternalUIA(
[in] INSTALLUI_HANDLERA puiHandler,
[in] DWORD dwMessageFilter,
[in] LPVOID pvContext
);
Параметры
[in] puiHandler
Задает функцию обратного вызова, соответствующую спецификации INSTALLUI_HANDLER .
[in] dwMessageFilter
Указывает, какие сообщения следует обрабатывать с помощью внешнего обработчика сообщений. Если внешний обработчик возвращает ненулевой результат, то это сообщение не будет отправлено в пользовательский интерфейс, а вместо этого будет зарегистрировано, если ведение журнала включено. Дополнительные сведения см. в статье о функции MsiEnableLog .
Значение | Значение |
---|---|
|
Сведения об используемых файлах. При получении этого сообщения должно отображаться диалоговое окно FilesInUse . |
|
Преждевременное завершение установки. |
|
Сообщения об ошибках регистрируются в журнале. |
|
Предупреждающие сообщения регистрируются в журнале. |
|
Запросы пользователей регистрируются в журнале. |
|
Сообщения о состоянии, которые не отображаются, регистрируются. |
|
Запрос на определение допустимого расположения источника. |
|
Сведения об используемых файлах. При получении этого сообщения должно отобразиться диалоговое окно MsiRMFilesInUse . |
|
Недостаточно места на диске. |
|
Регистрируется начало новых действий установки. |
|
Запись данных с действием установки записывается в журнал. |
|
Параметры инициализации пользовательского интерфейса регистрируются в журнале. |
|
Сведения о индикаторе выполнения . Это сообщение содержит сведения о единицах и общем количестве единиц. Описание формата сообщения см. в разделе Функция MsiProcessMessage . Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется в журнале. |
|
Если установка выполняется не в автоматическом режиме, инициализирован базовый пользовательский интерфейс . Если это полная установка пользовательского интерфейса , полный пользовательский интерфейс еще не инициализирован. Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется в журнале. |
|
Если используется полный пользовательский интерфейс , полный пользовательский интерфейс завершается. Если установка не выполняется в автоматическом режиме, базовый пользовательский интерфейс еще не завершен. Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется в журнале. |
|
Отправляется перед отображением полного диалогового окна пользовательского интерфейса . Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется в журнале. |
|
Начинается установка продукта.
Сообщение содержит productName и ProductCode. |
|
Установка продукта заканчивается.
Сообщение содержит productName, ProductCode и возвращаемое значение. |
[in] pvContext
Указатель на контекст приложения, который передается функции обратного вызова. Этот параметр можно использовать для проверки ошибок.
Возвращаемое значение
Возвращаемое значение — это ранее заданный внешний обработчик или ноль (0), если ранее заданный обработчик не был установлен.
Комментарии
Чтобы восстановить предыдущий обработчик пользовательского интерфейса, выполняется второй вызов MsiSetExternalUI с помощью INSTALLUI_HANDLER , возвращенного первым вызовом MsiSetExternalUI и указанием нуля (0) для dwMessageFilter.
Обработчик внешнего пользовательского интерфейса, на который указывает параметр puiHandler , не имеет полного контроля над внешним пользовательским интерфейсом, если только msiSetInternalUI не вызывается с параметром dwUILevel , имеющим значение INSTALLUILEVEL_NONE. Если msiSetInternalUI не вызывается, уровень внутреннего пользовательского интерфейса по умолчанию INSTALLUILEVEL_BASIC. В результате все сообщения, не обрабатываемые обработчиком внешнего пользовательского интерфейса, обрабатываются установщиком Windows. Начальное значение "Подготовка к установке. . Диалоговое окно ." всегда отображается, даже если обработчик внешнего пользовательского интерфейса обрабатывает все сообщения.
MsiSetExternalUI следует вызывать только из приложения начальной загрузки . Невозможно вызвать MsiSetExternalUI из настраиваемого действия.
Примечание
Заголовок msi.h определяет MsiSetExternalUI в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или установщик Windows 4.5 в Windows Server 2008 или Windows Vista. Установщик Windows в Windows Server 2003 или Windows XP. Сведения о минимальном пакете обновления Windows, необходимом для версии установщика Windows, см. в разделе Требования к установщику Windows Run-Time. |
Целевая платформа | Windows |
Header | msi.h |
Библиотека | Msi.lib |
DLL | Msi.dll |