Функция 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 указывает текущего пользователя.
[in] dwContext
Контекст установки запрашиваемого экземпляра продукта.
[in] szComponentCode
Указывает запрашиваемый компонент. Идентификатор GUID кода компонента, который находится в столбце ComponentID таблицы Component .
[out] pdwState
Состояние установки компонента для указанного экземпляра продукта. Этот параметр может возвращать одно из следующих значений или значение NULL.
Значение | Значение |
---|---|
|
Компонент устанавливается локально. |
|
Компонент устанавливается для запуска из источника. |
Возвращаемое значение
Функция MsiQueryComponentState возвращает следующие значения.
Значение | Значение |
---|---|
|
Вызывающий процесс должен иметь права администратора для получения сведений о продукте, установленном для пользователя, отличного от текущего пользователя. |
|
Данные конфигурации повреждены. |
|
В функцию передан недопустимый параметр. |
|
Функция успешно завершена. |
|
Идентификатор компонента не идентифицирует известный компонент. |
|
Код продукта не идентифицирует известный продукт. |
|
Ошибки, которые нельзя приписать ни одному коду ошибки Windows. |
|
Буфер слишком мал, чтобы получить идентификатор безопасности пользователя. |
Дополнительные сведения см. в разделе Отображаемые сообщения об ошибках.
Комментарии
Примечание
Заголовок 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 и более ранних версий