Функция MsiEnumComponentQualifiersW (msi.h)
Функция MsiEnumComponentQualifiers перечисляет объявленные квалификаторы для данного компонента. Эта функция извлекает один квалификатор при каждом вызове.
Синтаксис
UINT MsiEnumComponentQualifiersW(
[in] LPCWSTR szComponent,
[in] DWORD iIndex,
[out] LPWSTR lpQualifierBuf,
[in, out] LPDWORD pcchQualifierBuf,
[out] LPWSTR 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 |