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

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

Синтаксис

UINT MsiQueryComponentStateA(
  [in]  LPCSTR            szProductCode,
  [in]  LPCSTR            szUserSid,
  [in]  MSIINSTALLCONTEXT dwContext,
  [in]  LPCSTR            szComponentCode,
  [out] INSTALLSTATE      *pdwState
);

Параметры

[in] szProductCode

Указывает GUID ProductCode для продукта, содержащего компонент.

[in] szUserSid

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

Тип идентификатора безопасности Значение
NULL
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] szComponentCode

Указывает запрашиваемый компонент. Идентификатор GUID кода компонента, который находится в столбце ComponentID таблицы Component .

[out] pdwState

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

Значение Значение
INSTALLSTATE_LOCAL
Компонент устанавливается локально.
INSTALLSTATE_SOURCE
Компонент устанавливается для запуска из источника.

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

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

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

Дополнительные сведения см. в разделе Отображаемые сообщения об ошибках.

Комментарии

Примечание

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

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

Компонент

Отображаемые сообщения об ошибках

Функции выбора установщика

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

ProductCode