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


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

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

Синтаксис

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

Параметры

[in] szProductCode

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

[in] szUserSid

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

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

[in] dwContext

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

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

[in] szComponentCode

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

[out] pdwState

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

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

Требования

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

См. также

компонента

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

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

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

ProductCode