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

Функция MsiGetProductInfoEx возвращает сведения о продукте для объявленных и установленных продуктов. Эта функция может извлекать сведения

об экземпляре продукта, установленного под учетной записью пользователя, отличной от текущего пользователя.

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

Эта функция является расширением функции MsiGetProductInfo .

Синтаксис

UINT MsiGetProductInfoExA(
  [in]                LPCSTR            szProductCode,
  [in]                LPCSTR            szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                LPCSTR            szProperty,
  [out, optional]     LPSTR             szValue,
  [in, out, optional] LPDWORD           pcchValue
);

Параметры

[in] szProductCode

Guid ProductCode экземпляра продукта, к которому выполняется запрос.

[in] szUserSid

Идентификатор безопасности (SID) учетной записи, под которой существует экземпляр запрашиваемого продукта. Значение NULL указывает идентификатор безопасности текущего пользователя.

SID Значение
NULL
Текущий пользователь, выполнивший вход.
Идентификатор безопасности пользователя
Перечисление для конкретного пользователя в системе. Пример идентификатора безопасности пользователя — "S-1-3-64-2415071341-1358098788-3127455600-2561".
 
Примечание Специальная строка идентификатора безопасности "S-1-5-18" (система) не может использоваться для перечисления продуктов, установленных как на компьютере. Если параметр dwContext имеет значение "MSIINSTALLCONTEXT_MACHINE", значение szUserSid должно иметь значение NULL.
 

[in] dwContext

Контекст установки запрашиваемого экземпляра продукта.

Имя Значение
MSIINSTALLCONTEXT_USERMANAGED
Извлекает свойство продукта для управляемого экземпляра продукта на пользователя.
MSIINSTALLCONTEXT_USERUNMANAGED
Извлекает свойство продукта для неуправляемого экземпляра продукта на пользователя.
MSIINSTALLCONTEXT_MACHINE
Извлекает свойство продукта для экземпляра продукта на каждом компьютере.

[in] szProperty

Запрашиваемое свойство.

Извлекаемое свойство. Свойства в следующей таблице можно получить только из уже установленных приложений. Все обязательные свойства гарантированно будут доступны, но другие свойства доступны только в том случае, если свойство задано. Дополнительные сведения см. в разделе
Обязательные свойства и свойства.

Свойство Значение
INSTALLPROPERTY_PRODUCTSTATE
Состояние продукта, возвращаемого в строковой форме: "1" для объявленного и "5" для установленного.
INSTALLPROPERTY_HELPLINK
Ссылка на поддержку. Дополнительные сведения см. в свойстве ARPHELPLINK .
INSTALLPROPERTY_HELPTELEPHONE
Телефон службы поддержки. Дополнительные сведения см. в свойстве ARPHELPTELEPHONE .
INSTALLPROPERTY_INSTALLDATE
Время последнего получения службы для этого продукта. Значение этого свойства заменяется при каждом применении исправления или удалении из продукта или при использовании параметра командной строки /v для восстановления продукта. Если продукт не получил никаких исправлений или исправлений, это свойство содержит время установки этого продукта на этом компьютере.
INSTALLPROPERTY_INSTALLEDLANGUAGE
Установленный язык.

Установщик Windows 4.5 и более ранних версий: Не поддерживается.

INSTALLPROPERTY_INSTALLEDPRODUCTNAME
Имя установленного продукта. Дополнительные сведения см. в разделе Свойство ProductName .
INSTALLPROPERTY_INSTALLLOCATION
Расположение установки. Дополнительные сведения см. в описании свойства ARPINSTALLLOCATION .
INSTALLPROPERTY_INSTALLSOURCE
Источник установки. Дополнительные сведения см. в разделе Свойство SourceDir .
INSTALLPROPERTY_LOCALPACKAGE
Локальный кэшированный пакет.
INSTALLPROPERTY_PUBLISHER
Издатель. Дополнительные сведения см. в свойстве Manufacturer .
INSTALLPROPERTY_URLINFOABOUT
Сведения о URL-адресе. Дополнительные сведения см. в свойстве ARPURLINFOABOUT .
INSTALLPROPERTY_URLUPDATEINFO
Сведения об обновлении URL-адреса. Дополнительные сведения см. в свойстве ARPURLUPDATEINFO .
INSTALLPROPERTY_VERSIONMINOR
Дополнительная версия продукта, производная от свойства ProductVersion .
INSTALLPROPERTY_VERSIONMAJOR
Основная версия продукта, производная от свойства ProductVersion .
INSTALLPROPERTY_VERSIONSTRING
Версия продукта. Дополнительные сведения см. в свойстве ProductVersion .
 

Чтобы получить идентификатор продукта, зарегистрированного владельца или зарегистрированную компанию из установленных приложений, задайте для szProperty одно из следующих текстовых строковых значений.

Значение Описание
ProductID Идентификатор продукта. Дополнительные сведения см. в разделе Свойство ProductID .
RegCompany Компания, зарегистрированная для использования продукта.
RegOwner Владелец, зарегистрированный для использования продукта.
 

Чтобы получить тип экземпляра продукта, задайте для szProperty следующее значение. Это свойство доступно для объявленных или установленных продуктов.

Значение Описание
Тип экземпляра Отсутствующее значение или значение 0 (ноль) указывает на обычную установку продукта. Значение одного (1) указывает на продукт, установленный с помощью преобразования нескольких экземпляров и свойства MSINEWINSTANCE . Дополнительные сведения см. в разделе Установка нескольких экземпляров продуктов и исправлений.
 

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

Свойство Описание
INSTALLPROPERTY_TRANSFORMS Преобразования.
INSTALLPROPERTY_LANGUAGE Язык продукта.
INSTALLPROPERTY_PRODUCTNAME Понятное название продукта. Дополнительные сведения см. в разделе Свойство ProductName .
INSTALLPROPERTY_ASSIGNMENTTYPE Равно 0 (ноль), если продукт объявляется или устанавливается на пользователя.

Равно одному (1), если продукт объявляется или устанавливается на каждом компьютере для всех пользователей.

INSTALLPROPERTY_PACKAGECODE Идентификатор пакета, из который устанавливается продукт. Дополнительные сведения см. в разделе Свойства Коды пакетов .
INSTALLPROPERTY_VERSION Версия продукта, производная от свойства ProductVersion .
INSTALLPROPERTY_PRODUCTICON Основной значок пакета. Дополнительные сведения см. в описании свойства ARPPRODUCTICON .
INSTALLPROPERTY_PACKAGENAME Имя исходного пакета установки.
INSTALLPROPERTY_AUTHORIZED_LUA_APP Значение 1 (1) указывает на продукт, который может обслуживаться неадминистраторами с помощью исправлений контроля учетных записей (UAC). Отсутствующее значение или значение 0 (ноль) означает, что исправление с минимальными привилегиями не включено. Доступно в установщике Windows 3.0 или более поздней версии.

[out, optional] szValue

Указатель на буфер, получающий значение свойства. Этот буфер должен быть достаточно большим, чтобы в нем содержались сведения. Если буфер слишком мал, функция возвращает ERROR_MORE_DATA и присваивает *pcchValue числу TCHAR в значении, не включая завершающий символ NULL.

Если lpValue имеет значение NULL , а pcchValue — допустимый указатель, функция возвращает ERROR_SUCCESS и задает *pcchValue число TCHAR в значении, не включая завершающий символ NULL. Затем функцию можно вызвать еще раз, чтобы получить значение, с буфером lpValue , достаточно большим, чтобы содержать *pcchValue + 1 символ.

Если lpValue и pcchValue имеют значение NULL, функция возвращает ERROR_SUCCESS , если значение существует, без извлечения значения.

[in, out, optional] pcchValue

Указатель на переменную, указывающую количество TCHAR в буфере lpValue . При возврате функции для этого параметра устанавливается размер запрошенного значения независимо от того, копирует ли функция значение в указанный буфер. Размер возвращается как число TCHAR в запрошенном значении, не включая завершающий символ NULL.

Для этого параметра можно задать значение NULL , только если lpValue также имеет значение NULL. В противном случае функция возвращает ERROR_INVALID_PARAMETER.

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

Функция MsiGetProductInfoEx возвращает следующие значения.

Код возврата Описание
ERROR_ACCESS_DENIED
Вызывающий процесс должен иметь права администратора для получения сведений о продукте, установленном для пользователя, отличного от текущего пользователя.
ERROR_BAD_CONFIGURATION
Данные конфигурации повреждены.
ERROR_INVALID_PARAMETER
В функцию передается недопустимый параметр.
ERROR_MORE_DATA
Буфер слишком мал для хранения запрошенных данных.
ERROR_SUCCESS
Функция успешно завершена.
ERROR_UNKNOWN_PRODUCT
Продукт не является исключением или удален.
ERROR_UNKNOWN_PROPERTY
Свойство нераспознано.
Примечание Функция MsiGetProductInfo возвращает ERROR_UNKNOWN_PROPERTY , если запрашиваемое приложение объявлено и не установлено.
 
ERROR_FUNCTION_FAILED
Непредвиденный внутренний сбой.

Комментарии

При возврате функции MsiGetProductInfoEx параметр pcchValue содержит длину строки, хранящейся в буфере. Возвращаемое число не включает завершающий символ NULL. Если буфер недостаточно велик, MsiGetProductInfoEx возвращает ERROR_MORE_DATA, а параметр pcchValue содержит размер строки в TCHAR без подсчета символа NULL.

Функция MsiGetProductInfoEx (INSTALLPROPERTY_LOCALPACKAGE) возвращает путь к кэшированному пакету. Кэшированный пакет предназначен только для внутреннего использования. Установки в режиме обслуживания должны вызываться с помощью функций MsiConfigureFeature, MsiConfigureProduct или MsiConfigureProductEx .

Функция MsiGetProductInfo возвращает ERROR_UNKNOWN_PROPERTY , если запрашиваемое приложение объявлено и не установлено. Например, если приложение объявлено и не установлено, запрос INSTALLPROPERTY_INSTALLLOCATION возвращает ошибку ERROR_UNKNOWN_PROPERTY.

Примечание

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

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

ARPHELPLINK

ARPHELPTELEPHONE

ARPINSTALLLOCATION

ARPPRODUCTICON

ARPURLINFOABOUT

ARPURLUPDATEINFO

Производителя

MsiConfigureFeature

MsiConfigureProduct

MsiConfigureProductEx

Не поддерживается в установщике Windows 2.0 и более ранних версий

Коды пакетов

ProductCode

ProductID

ProductName

ProductVersion

Свойства

Обязательные свойства

SourceDir

Функции состояния системы