Функция MsiOpenPackageExA (msi.h)
Функция MsiOpenPackageEx открывает пакет для использования с функциями, которые обращаются к базе данных продукта. Функция MsiCloseHandle должна вызываться с дескриптором, если дескриптор больше не нужен.
Синтаксис
UINT MsiOpenPackageExA(
[in] LPCSTR szPackagePath,
[in] DWORD dwOptions,
[out] MSIHANDLE *hProduct
);
Параметры
[in] szPackagePath
Путь к пакету.
[in] dwOptions
Битовые флаги, указывающие, следует ли игнорировать состояние компьютера. Передайте 0 (ноль), чтобы использовать поведение MsiOpenPackage .
Константа | Значение |
---|---|
|
Игнорируйте состояние компьютера при создании дескриптора продукта. |
[out] hProduct
Указатель на переменную, получающую дескриптор продукта.
Возвращаемое значение
Значение | Значение |
---|---|
|
Сведения о конфигурации повреждены. |
|
Не удалось открыть продукт. |
|
Установщик Windows не разрешает установку из подключения к удаленному рабочему столу. |
|
В функцию передается недопустимый параметр. |
|
Функция успешно завершается. |
Если эта функция завершается сбоем, она может вернуть код системной ошибки. Дополнительные сведения см. в разделе Системные коды ошибок.
Комментарии
Чтобы создать дескриптор продукта с ограниченным доступом, который не зависит от текущего состояния компьютера и не может изменить текущее состояние компьютера, используйте MsiOpenPackageEx с MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE, заданными в dwOptions.
Обратите внимание, что если параметр dwOptions имеет значение MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE или 1, MsiOpenPackageEx игнорирует текущее состояние компьютера при создании дескриптора продукта. Если значение dwOptions равно 0, MsiOpenPackageEx совпадает с MsiOpenPackage и создает дескриптор продукта, зависящий от того, установлен ли пакет, указанный в szPackagePath , на компьютере.
Ограниченный дескриптор, созданный с помощью MsiOpenPackageEx с MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE, разрешает только выполнение диалогов, подмножества стандартных действий и настраиваемых действий, которые задают свойства ( тип настраиваемого действия 35, тип настраиваемого действия 51 и тип настраиваемого действия 19). Ограниченный дескриптор не позволяет использовать пользовательские действия, запускающие библиотеки динамической компоновки, исполняемые файлы или скрипты.
Вы можете вызвать MsiDoAction для следующих стандартных действий с помощью ограниченного дескриптора. Все остальные действия возвращают ERROR_FUNCTION_NOT_CALLED при вызове с ограниченным дескриптором.
- АДМИНИСТРАТОР
- РЕКЛАМИРОВАТЬ
- УСТАНОВИТЬ
- ПОСЛЕДОВАТЕЛЬНОСТИ
- Действие AppSearch
- CCPSearch
- CostFinalize
- CostInitialize
- FileCost
- FindRelatedProducts
- Действие IsolateComponents
- LaunchConditions
- MigrateFeatureStates
- ResolveSource
- RMCCPSearch
- ValidateProductID
Примечание
Заголовок msi.h определяет MsiOpenPackageEx в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Установщик 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. |
Целевая платформа | Windows |
Header | msi.h |
Библиотека | Msi.lib |
DLL | Msi.dll |