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

Функция MsiSetExternalUIRecord включает внешний обработчик пользовательского интерфейса.

Синтаксис

UINT MsiSetExternalUIRecord(
  [in]            INSTALLUI_HANDLER_RECORD  puiHandler,
  [in]            DWORD                     dwMessageFilter,
  [in]            LPVOID                    pvContext,
  [out, optional] PINSTALLUI_HANDLER_RECORD ppuiPrevHandler
);

Параметры

[in] puiHandler

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

Чтобы отключить текущий внешний обработчик пользовательского интерфейса, вызовите функцию с этим параметром, имеющим значение NULL .

[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

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

Этот параметр можно использовать для проверки ошибок.

[out, optional] ppuiPrevHandler

Возвращает указатель на ранее заданную функцию обратного вызова, соответствующую спецификации INSTALLUI_HANDLER_RECORD , или значение NULL , если ранее не задан обратный вызов.

Возвращаемое значение

Код возврата Описание
ERROR_SUCCESS
Функция успешно завершается.
ERROR_CALL_NOT_IMPLEMENTED
Это значение указывает, что предпринята попытка вызвать эту функцию из настраиваемого действия.

Эту функцию нельзя вызвать из настраиваемого действия.

Комментарии

Эту функцию нельзя вызвать из пользовательских действий.

Внешний обработчик пользовательского интерфейса, включенный вызовом MsiSetExternalUIRecord , получает сообщения в формате объекта записи. Внешний обработчик пользовательского интерфейса, включенный вызовом MsiSetExternalUI , получает сообщения в формате строки. Внешний пользовательский интерфейс всегда вызывается перед внутренним пользовательским интерфейсом установщика Windows. Включенный внешний пользовательский интерфейс на основе записей вызывается перед любым внешним интерфейсом на основе строк. Если внешний обработчик пользовательского интерфейса на основе записей возвращает значение 0 (ноль), сообщение отправляется в любой включенный внешний обработчик пользовательского интерфейса на основе строк. Если внешний обработчик пользовательского интерфейса возвращает ненулевое значение, внутренний обработчик пользовательского интерфейса установщика Windows подавляется, а сообщения считаются обработанными.

Эта функция хранит заданные внешние пользовательские интерфейсы. Чтобы заменить текущий внешний обработчик пользовательского интерфейса предыдущим, вызовите функцию и укажите INSTALLUI_HANDLER_RECORD в качестве параметра puiHandler и 0 (ноль) в качестве параметра dwMessageFilter .

Обработчик внешнего пользовательского интерфейса, на который указывает параметр puiHandler , не имеет полного контроля над внешним пользовательским интерфейсом, если не вызывается MsiSetInternalUI с параметром dwUILevel , имеющим значение INSTALLUILEVEL_NONE. Если msiSetInternalUI не вызывается, уровень внутреннего пользовательского интерфейса по умолчанию INSTALLUILEVEL_BASIC. В результате все сообщения, не обрабатываемые обработчиком внешнего пользовательского интерфейса, обрабатываются установщиком Windows. Начальное значение "Подготовка к установке. . Диалоговое окно ." всегда отображается, даже если обработчик внешнего пользовательского интерфейса обрабатывает все сообщения. MsiSetExternalUI следует вызывать только из приложения начальной загрузки . Невозможно вызвать MsiSetExternalUI из настраиваемого действия.

Чтобы отключить этот внешний обработчик пользовательского интерфейса, вызовите MsiSetExternalUIRecord со значением NULL для параметра puiHandler .

Установщик Windows 2.0 и Установщик Windows 3.0: Не поддерживается. Функция MsiSetExternalUIRecord доступна начиная с установщика Windows 3.1.

Дополнительные сведения об использовании внешнего обработчика на основе записей см. в разделе Мониторинг установки с помощью MsiSetExternalUIRecord.

Требования

   
Минимальная версия клиента Установщик 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, см. в статье Требования к установщику Windows Run-Time.
Целевая платформа Windows
Header msi.h
Библиотека Msi.lib
DLL Msi.dll

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

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

Не поддерживается в установщике Windows 3.0 и более ранних версий