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

Функция MsiEnumComponentQualifiers перечисляет объявленные квалификаторы для данного компонента. Эта функция получает один квалификатор при каждом вызове.

Синтаксис

UINT MsiEnumComponentQualifiersA(
  [in]      LPCSTR  szComponent,
  [in]      DWORD   iIndex,
  [out]     LPSTR   lpQualifierBuf,
  [in, out] LPDWORD pcchQualifierBuf,
  [out]     LPSTR   lpApplicationDataBuf,
  [in, out] LPDWORD pcchApplicationDataBuf
);

Параметры

[in] szComponent

Указывает компонент, квалификаторы которого необходимо перечислить.

[in] iIndex

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

[out] lpQualifierBuf

Указатель на буфер, получающий код квалификатора.

[in, out] pcchQualifierBuf

Указатель на переменную, указывающую размер (в символах) буфера, на который указывает параметр lpQualifierBuf . На входных данных этот размер должен включать завершающий символ NULL. При возврате значение не включает символ NULL.

[out] lpApplicationDataBuf

Указатель на буфер, который получает зарегистрированные в приложении данные для квалификатора. Этот параметр может быть нулевым.

[in, out] pcchApplicationDataBuf

Указатель на переменную, указывающую размер (в символах) буфера, на который указывает параметр lpApplicationDataBuf . На входных данных этот размер должен включать завершающий символ NULL. При возврате значение не включает символ NULL. Этот параметр может иметь значение NULL, только если параметр lpApplicationDataBuf имеет значение NULL.

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

Значение Значение
ERROR_BAD_CONFIGURATION
Данные конфигурации повреждены.
ERROR_INVALID_PARAMETER
В функцию передан недопустимый параметр.
ERROR_MORE_DATA
Буфер слишком мал для хранения запрошенных данных.
ERROR_NO_MORE_ITEMS
Возвращаемые квалификаторы отсутствуют.
ERROR_NOT_ENOUGH_MEMORY
В системе недостаточно памяти для выполнения операции. Доступно в Windows Server 2003.
ERROR_SUCCESS
Значение перечислено.
ERROR_UNKNOWN_COMPONENT
Указанный компонент неизвестен.

Комментарии

Чтобы перечислить квалификаторы, приложение должно сначала вызвать функцию MsiEnumComponentQualifiers с параметром iIndex , равным нулю. Затем приложение должно увеличить параметр iIndex и вызывать MsiEnumComponentQualifiers , пока не будет больше квалификаторов (т. е. пока функция не вернет ERROR_NO_MORE_ITEMS).

При возврате MsiEnumComponentQualifiers параметр pcchQualifierBuf содержит длину строки квалификатора, хранящейся в буфере. Возвращаемое число не включает завершающий символ NULL. Если буфер недостаточно велик, MsiEnumComponentQualifiers возвращает ERROR_MORE_DATA, а этот параметр содержит размер строки в символах без подсчета пустого символа. Тот же механизм применяется к pcchDescriptionBuf.

При выполнении нескольких вызовов MsiEnumComponentQualifiers для перечисления всех объявленных квалификаторов компонента каждый вызов должен выполняться из одного потока.

Примечание

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

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

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