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

Функция MsiGetProductInfoFromScript возвращает сведения о продукте для файла скрипта установщика Windows.

Синтаксис

UINT MsiGetProductInfoFromScriptA(
  [in]      LPCSTR  szScriptFile,
  [out]     LPSTR   lpProductBuf39,
  [out]     LANGID  *plgidLanguage,
  [out]     LPDWORD pdwVersion,
  [out]     LPSTR   lpNameBuf,
  [in, out] LPDWORD pcchNameBuf,
  [out]     LPSTR   lpPackageBuf,
  [in, out] LPDWORD pcchPackageBuf
);

Параметры

[in] szScriptFile

Строка, завершающаяся значением NULL, указывающая полный путь к файлу скрипта. Файл скрипта — это скрипт объявления, созданный путем вызова MsiAdvertiseProduct или MsiAdvertiseProductEx.

[out] lpProductBuf39

Указывает на буфер, который получает код продукта. Буфер должен содержать 39 символов. Первые 38 символов предназначены для GUID кода продукта, а последний — для завершающего символа NULL.

[out] plgidLanguage

Указывает на переменную, которая получает язык продукта.

[out] pdwVersion

Указывает на буфер, который получает версию продукта.

[out] lpNameBuf

Указывает на буфер, получающий название продукта. Буфер содержит завершающий символ NULL.

[in, out] pcchNameBuf

Указывает на переменную, указывающую размер буфера в символах, на который указывает параметр lpNameBuf . Этот размер должен включать завершающий символ NULL. При возврате функции эта переменная содержит длину строки, хранящейся в буфере. Возвращаемое число не включает завершающий символ NULL. Если буфер недостаточно велик, функция возвращает ERROR_MORE_DATA, а переменная содержит размер строки в символах без подсчета нулевого символа.

[out] lpPackageBuf

Указывает на буфер, который получает имя пакета. Буфер содержит завершающий символ NULL.

[in, out] pcchPackageBuf

Указывает на переменную, указывающую размер буфера в символах, на который указывает параметр lpPackageNameBuf . Этот размер должен включать завершающий символ NULL. При возврате функции эта переменная содержит длину строки, хранящейся в буфере. Возвращаемое число не включает завершающий символ NULL. Если буфер недостаточно велик, функция возвращает ERROR_MORE_DATA, а переменная содержит размер строки в символах без подсчета нулевого символа.

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

Значение Значение
ERROR_SUCCESS
Функция успешно завершена.
ERROR_INVALID_PARAMETER
В функцию передан недопустимый аргумент.
ERROR_MORE_DATA
Буфер был слишком мал для хранения всего значения.
ERROR_INSTALL_FAILURE
Не удалось получить сведения о скрипте.
ERROR_CALL_NOT_IMPLEMENTED
Эта функция доступна только в Windows 2000 и Windows XP.

Комментарии

Примечание

Заголовок msi.h определяет MsiGetProductInfoFromScript в качестве псевдонима, который автоматически выбирает версию 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.
Целевая платформа Windows
Header msi.h
Библиотека Msi.lib
DLL Msi.dll