Инициализация приложения
Чтобы включить функции установщика, приложение должно вызывать ряд функций при инициализации. Для получения дополнительной информации см. раздел , посвящённый механизму установки. Ниже описано, как использовать установщик для инициализации приложения:
Инициализация приложения
Вызовите функцию MsiGetProductCode, чтобы приложение могло идентифицировать себя установщику.
Код продукта является обязательным параметром для многих функций установщика.
Вызовите функцию MsiGetUserInfo для сбора сведений о пользователе при первом запуске приложения.
Если вызов MsiGetUserInfo завершается ошибкой, вызовите функцию MsiCollectUserInfo для сбора сведений о пользователе.
При необходимости отобразите пользовательский интерфейс по умолчанию, вызвав функцию MsiSetInternalUI.
Чтобы создать собственный пользовательский интерфейс, зарегистрируйте его в установщике, вызвав функцию MsiSetExternalUI.
Вызовите функцию MsiEnableLog, чтобы задать уровень ведения журнала.
Предоставляйте пользователю доступные функции, перечисляя функции приложения. Вы можете перечислить функции следующими способами:
- Запрашивайте установщик по отдельным функциям. Например, прежде чем приложение рисует кнопку или элемент меню, приложение вызывает функцию MsiQueryFeatureState, чтобы установщик смог проверить доступность функции.
- Можно перечислить все доступные функции за раз, вызвав функцию MsiEnumFeatures. Чтобы использовать эту функцию, приложение должно вызывать MsiEnumFeatures многократно при добавке индекса.
Получите подробные сведения о текущей установке путем многократного вызова следующих функций перечисления, добавив переменную индекса для каждого вызова:
- Вызовите функцию MsiEnumProducts, чтобы перечислить продукты, зарегистрированные в установщике.
- Вызовите функцию MsiEnumComponents для перечисления компонентов.
- Вызовите функцию MsiEnumComponentQualifiers, чтобы перечислить квалификаторы компонентов.
- Вызовите функциюmsiEnumClients, чтобы перечислить продукты для определенного компонента.
Если возвращаемое значение функции перечисления ERROR_SUCCESS, все еще есть больше элементов для перечисления, и функция должна вызываться снова с добавочной переменной индекса. Если возвращаемое значение ERROR_NO_MORE_ITEMS, то все элементы перечислены, и функцию не следует вызывать снова.