Поделиться через


Функция 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
Начинается установка продукта.

Сообщение содержит имя продукта и ProductCode.

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

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

См. также

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