Функция MsiSetExternalUIA (msi.h)

Функция MsiSetExternalUI включает внешний обработчик пользовательского интерфейса. Этот внешний обработчик пользовательского интерфейса вызывается перед обычным внутренним обработчиком пользовательского интерфейса. Внешний обработчик пользовательского интерфейса имеет возможность подавлять внутренний пользовательский интерфейс, возвращая ненулевое значение, указывающее, что он обработал сообщения. Дополнительные сведения см. в разделе Сведения о пользовательском интерфейсе.

Синтаксис

INSTALLUI_HANDLERA MsiSetExternalUIA(
  [in] INSTALLUI_HANDLERA puiHandler,
  [in] DWORD              dwMessageFilter,
  [in] LPVOID             pvContext
);

Параметры

[in] puiHandler

Задает функцию обратного вызова, соответствующую спецификации INSTALLUI_HANDLER .

[in] dwMessageFilter

Указывает, какие сообщения следует обрабатывать с помощью внешнего обработчика сообщений. Если внешний обработчик возвращает ненулевой результат, то это сообщение не будет отправлено в пользовательский интерфейс, а вместо этого будет зарегистрировано, если ведение журнала включено. Дополнительные сведения см. в статье о функции MsiEnableLog .

Значение Значение
INSTALLLOGMODE_FILESINUSE
Сведения об используемых файлах. При получении этого сообщения должно отображаться диалоговое окно FilesInUse .
INSTALLLOGMODE_FATALEXIT
Преждевременное завершение установки.
INSTALLLOGMODE_ERROR
Сообщения об ошибках регистрируются в журнале.
INSTALLLOGMODE_WARNING
Предупреждающие сообщения регистрируются в журнале.
INSTALLLOGMODE_USER
Запросы пользователей регистрируются в журнале.
INSTALLLOGMODE_INFO
Сообщения о состоянии, которые не отображаются, регистрируются.
INSTALLLOGMODE_RESOLVESOURCE
Запрос на определение допустимого расположения источника.
INSTALLLOGMODE_RMFILESINUSE
Сведения об используемых файлах. При получении этого сообщения должно отобразиться диалоговое окно MsiRMFilesInUse .
INSTALLLOGMODE_OUTOFDISKSPACE
Недостаточно места на диске.
INSTALLLOGMODE_ACTIONSTART
Регистрируется начало новых действий установки.
INSTALLLOGMODE_ACTIONDATA
Запись данных с действием установки записывается в журнал.
INSTALLLOGMODE_COMMONDATA
Параметры инициализации пользовательского интерфейса регистрируются в журнале.
INSTALLLOGMODE_PROGRESS
Сведения о индикаторе выполнения . Это сообщение содержит сведения о единицах и общем количестве единиц. Описание формата сообщения см. в разделе Функция MsiProcessMessage . Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется в журнале.
INSTALLLOGMODE_INITIALIZE
Если установка выполняется не в автоматическом режиме, инициализирован базовый пользовательский интерфейс . Если это полная установка пользовательского интерфейса , полный пользовательский интерфейс еще не инициализирован. Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется в журнале.
INSTALLLOGMODE_TERMINATE
Если используется полный пользовательский интерфейс , полный пользовательский интерфейс завершается. Если установка не выполняется в автоматическом режиме, базовый пользовательский интерфейс еще не завершен. Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется в журнале.
INSTALLLOGMODE_SHOWDIALOG
Отправляется перед отображением полного диалогового окна пользовательского интерфейса . Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется в журнале.
INSTALLLOGMODE_INSTALLSTART
Начинается установка продукта.

Сообщение содержит productName и ProductCode.

INSTALLLOGMODE_INSTALLEND
Установка продукта заканчивается.

Сообщение содержит 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

См. также раздел

Интерфейс и функции ведения журнала