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


Функция MsiAdvertiseScriptW (msi.h)

Функция MsiAdvertiseScript копирует объявленный файл скрипта в указанные расположения.

Синтаксис

UINT MsiAdvertiseScriptW(
  [in] LPCWSTR szScriptFile,
  [in] DWORD   dwFlags,
  [in] PHKEY   phRegData,
  [in] BOOL    fRemoveItems
);

Параметры

[in] szScriptFile

Полный путь к файлу скрипта, созданному msiAdvertiseProduct или MsiAdvertiseProductEx.

[in] dwFlags

Следующие битовые флаги из объявления элемента управления SCRIPTFLAGS. Значение dwFlags может быть сочетанием следующих значений.

Flag Значение
SCRIPTFLAGS_CACHEINFO
0x001
Включите этот флаг, если нужно создать или удалить значки.
SCRIPTFLAGS_SHORTCUTS
0x004
Включите этот флаг, если нужно создать или удалить ярлыки.
SCRIPTFLAGS_MACHINEASSIGN
0x008
Включите этот флаг, если продукт будет назначен компьютеру.
SCRIPTFLAGS_REGDATA_CNFGINFO
0x020
Включите этот флаг, если необходимо записать или удалить сведения о конфигурации и управлении в данных реестра.
SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST
0x040
Включите этот флаг для принудительной проверки преобразований, перечисленных в скрипте, для ранее зарегистрированных преобразований для этого продукта. Обратите внимание, что конфликты преобразования обнаруживаются с помощью сравнения строк, которое не учитывает регистр и вычисляется между установками для пользователя и компьютера во всех контекстах. Если список преобразований в скрипте не соответствует преобразованиям, зарегистрированным для продукта, функция возвращает ERROR_INSTALL_TRANSFORM_FAILURE.
SCRIPTFLAGS_REGDATA_CLASSINFO
0x080
Включите этот флаг, если в реестре необходимо записать или удалить рекламные сведения, связанные с COM-классами.
SCRIPTFLAGS_REGDATA_EXTENSIONINFO
0x100
Включите этот флаг, если необходимо записать или удалить рекламные сведения в реестре, связанные с расширением.
SCRIPTFLAGS_REGDATA_APPINFO
0x180
Включите этот флаг, если необходимо записать или удалить рекламные сведения в реестре.
SCRIPTFLAGS_REGDATA
0x1A0
Включите этот флаг, если необходимо записать или удалить рекламные сведения в реестре.

[in] phRegData

Раздел реестра, в котором записываются временные сведения о данных реестра. Если этот параметр имеет значение NULL, данные реестра помещаются в соответствующий раздел в зависимости от того, является ли объявление для пользователя или компьютера. Если этот параметр не равен NULL, скрипт запишет данные реестра в указанном разделе реестра, а не в обычном расположении. В этом случае приложение не будет объявлено пользователю.

Обратите внимание, что этот раздел реестра нельзя использовать при создании объявления продукта для пользователя или компьютера, так как поставщик раздела реестра обычно удаляет этот раздел. Раздел реестра находится за пределами обычных расположений реестра для сведений о конфигурации оболочки, класса и .msi и не находится в HKEY_CLASSES_ROOT. Этот раздел реестра предназначен только для получения временных сведений о данных реестра в скрипте.

[in] fRemoveItems

Значение TRUE, если указанные элементы должны быть удалены, а не созданы.

Возвращаемое значение

Значение Значение
ERROR_SUCCESS
Функция успешно завершена.
ERROR_ACCESS_DENIED
Процесс вызова не выполнялся под учетной записью LocalSystem.
Ошибка, связанная с действием
См . коды ошибок.
Ошибка инициализации
Произошла ошибка, связанная с инициализацией.
ERROR_CALL_NOT_IMPLEMENTED
Эта функция доступна только в Windows 2000 и Windows XP.
 
 

Комментарии

Процесс, вызывающий эту функцию, должен выполняться под учетной записью LocalSystem. Чтобы объявить приложение для установки для каждого пользователя целевому пользователю, поток, вызывающий эту функцию, должен олицетворить целевого пользователя. Если поток, вызывающий эту функцию, не олицетворяет целевого пользователя, приложение объявляется всем пользователям для установки с повышенными привилегиями.

Примечание

Заголовок msi.h определяет MsiAdvertiseScript в качестве псевдонима, который автоматически выбирает версию 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

См. также раздел

Контекст установки