Функция 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

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

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

[in] dwContext

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

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

[in] szProperty

Свойство запрашивается.

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

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

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

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

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

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

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

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

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

Недвижимость Description
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) указывает на продукт, который может обслуживаться неадминистраторами с помощью исправления контроля учетных записей пользователей (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 , только если значение lpValue также равно NULL. В противном случае функция возвращает ERROR_INVALID_PARAMETER.

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

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

Код возврата Description
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 или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
Минимальный поддерживаемый клиент Установщик 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".
целевая платформа Виндоус
Header msi.h
Library Msi.lib
DLL Msi.dll

См. также

ARPHELPLINK

ARPHELPTELEPHONE

ARPINSTALLLOCATION

ARPPRODUCTICON

ARPURLINFOABOUT

ARPURLUPDATEINFO

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

MsiConfigureFeature

MsiConfigureProduct

MsiConfigureProductEx

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

Коды пакетов

ProductCode

ProductID

ProductName

ProductVersion

Свойства

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

SourceDir

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