Функция 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
Указатель на переменную, указывающую размер (в символах) буфера, на который указывает параметр lpQualifierBuf . На входных данных этот размер должен включать завершающий символ NULL. При возврате значение не включает символ NULL.
[out] lpApplicationDataBuf
Указатель на буфер, который получает зарегистрированные в приложении данные для квалификатора. Этот параметр может быть нулевым.
[in, out] pcchApplicationDataBuf
Указатель на переменную, указывающую размер (в символах) буфера, на который указывает параметр lpApplicationDataBuf . На входных данных этот размер должен включать завершающий символ NULL. При возврате значение не включает символ NULL. Этот параметр может иметь значение NULL, только если параметр lpApplicationDataBuf имеет значение NULL.
Возвращаемое значение
Значение | Значение |
---|---|
|
Данные конфигурации повреждены. |
|
В функцию передан недопустимый параметр. |
|
Буфер слишком мал для хранения запрошенных данных. |
|
Возвращаемые квалификаторы отсутствуют. |
|
В системе недостаточно памяти для выполнения операции. Доступно в Windows Server 2003. |
|
Значение перечислено. |
|
Указанный компонент неизвестен. |
Комментарии
Чтобы перечислить квалификаторы, приложение должно сначала вызвать функцию 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 |