Функция 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
Указатель на переменную, указывающую размер буфера, на который указывает
[out] lpApplicationDataBuf
Указатель на буфер, который получает зарегистрированные приложения данные для квалификатора. Этот параметр может иметь значение NULL.
[in, out] pcchApplicationDataBuf
Указатель на переменную, указывающую размер буфера в символах, на который указывает параметр lpApplicationDataBuf. В входных данных этот размер должен содержать завершающийся пустой символ. При возврате значение не включает пустой символ. Этот параметр может иметь значение NULL, только если параметр lpApplicationDataBuf имеет значение NULL.
Ценность | Значение |
---|---|
|
Данные конфигурации повреждены. |
|
Недопустимый параметр был передан функции. |
|
Буфер слишком мал для хранения запрошенных данных. |
|
Возвращаемых квалификаторов нет. |
|
В системе недостаточно памяти для завершения операции. Доступно в Windows Server 2003. |
|
Было перечислено значение. |
|
Указанный компонент неизвестен. |
Чтобы перечислить квалификаторы, приложение должно изначально вызывать функцию msiEnumComponentQualifiers с параметром iIndex равным нулю. Затем приложение должно увеличить параметр iIndex и вызвать MsiEnumComponentQualifiers, пока не будет больше квалификаторов (т. е. пока функция не вернет ERROR_NO_MORE_ITEMS).
Когда msiEnumComponentQualifiers возвращается, параметр pcchQualifierBuf содержит длину строки квалификатора, хранящейся в буфере. Возвращаемое число не включает завершающийся символ NULL. Если буфер недостаточно велик, MsiEnumComponentQualifiers возвращает ERROR_MORE_DATA, и этот параметр содержит размер строки в символах без подсчета null символов. Тот же механизм применяется к 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". |
целевая платформа | Виндоус |
заголовка | msi.h |
библиотеки |
Msi.lib |
DLL | Msi.dll |