Функция MsiSetExternalUIA (msi.h)
Функция msiSetExternalUI включает внешний обработчик пользовательского интерфейса. Этот внешний обработчик пользовательского интерфейса вызывается перед обычным внутренним обработчиком пользовательского интерфейса. Внешний обработчик пользовательского интерфейса имеет возможность подавлять внутренний пользовательский интерфейс, возвращая ненулевое значение, указывающее, что он обрабатывал сообщения. Дополнительные сведения см. в опользовательского интерфейса.
Синтаксис
INSTALLUI_HANDLERA MsiSetExternalUIA(
[in] INSTALLUI_HANDLERA puiHandler,
[in] DWORD dwMessageFilter,
[in] LPVOID pvContext
);
Параметры
[in] puiHandler
Задает функцию обратного вызова, соответствующую спецификации INSTALLUI_HANDLER.
[in] dwMessageFilter
Указывает, какие сообщения обрабатываются с помощью внешнего обработчика сообщений. Если внешний обработчик возвращает ненулевой результат, то сообщение не будет отправлено в пользовательский интерфейс, вместо этого сообщение будет зарегистрировано, если ведение журнала включено. Дополнительные сведения см. в функции MsiEnableLog.
Ценность | Значение |
---|---|
|
Файлы в сведениях об использовании. При получении этого сообщения должно отображаться диалоговое окно |
|
Преждевременное завершение установки. |
|
Сообщения об ошибках регистрируются. |
|
Сообщения предупреждения регистрируются. |
|
Запросы пользователя регистрируются. |
|
Сообщения о состоянии, которые не отображаются, регистрируются. |
|
Запрос на определение допустимого исходного расположения. |
|
Файлы в сведениях об использовании. При получении этого сообщения должно отображаться диалоговое окно msiRMFilesInUse |
|
Недостаточно места на диске. |
|
Начало новых действий установки регистрируется. |
|
Запись данных с действием установки регистрируется. |
|
Параметры инициализации пользовательского интерфейса регистрируются. |
|
сведения о индикаторе выполнения. Это сообщение содержит сведения об единицах до сих пор и общем количестве единиц. Описание формата сообщения см. в функции MsiProcessMessage. Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется. |
|
Если это не тихая установка, инициализирована базовый пользовательский. Если это полная установка пользовательского интерфейса, то полный пользовательский интерфейс еще не инициализирован. Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется. |
|
Если используется полный пользовательского интерфейса, завершено полного пользовательского интерфейса. Если это не тихая установка, базовый пользовательский интерфейс еще не закончился. Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется. |
|
Отправлено до отображения диалогового окна полного пользовательского интерфейса. Это сообщение отправляется только во внешний пользовательский интерфейс и не регистрируется. |
|
Начинается установка продукта.
Сообщение содержит имя продукта и ProductCode. |
|
Установка продукта заканчивается.
Сообщение содержит значение ProductName, ProductCode и возвращаемое значение продукта. |
[in] pvContext
Указатель на контекст приложения, передаваемый функции обратного вызова. Этот параметр можно использовать для проверки ошибок.
Возвращаемое значение
Возвращаемое значение — это ранее заданный внешний обработчик или ноль (0), если ранее не было заданного обработчика.
Замечания
Чтобы восстановить предыдущий обработчик пользовательского интерфейса, второй вызов выполняется для MsiSetExternalUI с помощью INSTALLUI_HANDLER, возвращаемого первым вызовом MsiSetExternalUI и указанием нуля (0) для dwMessageFilter.
Внешний обработчик пользовательского интерфейса, на который указывает параметр puiHandler, не имеет полного контроля над внешним пользовательским интерфейсом, если только MsiSetInternalUI вызывается с параметром dwUILevel значение INSTALLUILEVEL_NONE. Если MsiSetInternalUI не вызывается, уровень внутреннего пользовательского интерфейса по умолчанию INSTALLUILEVEL_BASIC. В результате все сообщения, не обрабатываемые внешним обработчиком пользовательского интерфейса, обрабатываются установщиком Windows. Начальное "Подготовка к установке". . Диалоговое окно всегда отображается, даже если внешний обработчик пользовательского интерфейса обрабатывает все сообщения.
MsiSetExternalUI следует вызывать только из приложения Bootstrapping. Невозможно вызвать 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". |
целевая платформа | Виндоус |
заголовка | msi.h |
библиотеки |
Msi.lib |
DLL | Msi.dll |
См. также
Функции интерфейса и ведения журнала