Функция 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.
Значение | Значение |
---|---|
|
Сведения об используемых файлах.
При получении этого сообщения должно отображаться диалоговое окно FilesInUse . |
|
Преждевременное завершение установки. |
|
Сообщения об ошибках регистрируются в журнале. |
|
Предупреждающие сообщения регистрируются в журнале. |
|
Запросы пользователей регистрируются в журнале. |
|
Сообщения о состоянии, которые не отображаются, регистрируются в журнале. |
|
Запрос на определение допустимого расположения источника. |
|
Сведения об используемых файлах. При получении этого сообщения должно отображаться диалоговое окно MsiRMFilesInUse . |
|
Недостаточно места на диске. |
|
Регистрируется начало новых действий установки. |
|
Запись данных с действием установки регистрируется в журнале. |
|
Параметры инициализации пользовательского интерфейса регистрируются в журнале. |
|
Сведения о индикаторе выполнения .
Это сообщение содержит сведения о единицах и общем количестве единиц. Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется. Дополнительные сведения см. в разделе MsiProcessMessage. |
|
Если это не является тихой установкой, инициализируется базовый пользовательский интерфейс .
Если это полная установка пользовательского интерфейса, полный пользовательский интерфейс еще не инициализирован. Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется. |
|
Если используется полный пользовательский интерфейс, полный пользовательский интерфейс завершается.
Если это не является тихой установкой, базовый пользовательский интерфейс не закончился. Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется. |
|
Отправляется перед отображением диалогового окна полного пользовательского интерфейса.
Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется. |
|
Начинается установка продукта.
Сообщение содержит productName и ProductCode. |
|
Установка продукта заканчивается.
Сообщение содержит значение ProductName, ProductCode и возвращаемое значение продукта. |
[in] pvContext
Указатель на контекст приложения, передаваемый в функцию обратного вызова.
Этот параметр можно использовать для проверки ошибок.
[out, optional] ppuiPrevHandler
Возвращает указатель на ранее заданную функцию обратного вызова, соответствующую спецификации INSTALLUI_HANDLER_RECORD , или значение NULL , если ранее не задан обратный вызов.
Возвращаемое значение
Код возврата | Описание |
---|---|
|
Функция успешно завершается. |
|
Это значение указывает, что предпринята попытка вызвать эту функцию из настраиваемого действия.
Эту функцию нельзя вызвать из настраиваемого действия. |
Комментарии
Эту функцию нельзя вызвать из пользовательских действий.
Внешний обработчик пользовательского интерфейса, включенный вызовом 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 и более ранних версий