Поделиться через


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

Функция MsiGetFeatureInfo возвращает описательные сведения для компонента.

Синтаксис

UINT MsiGetFeatureInfoA(
  [in]                MSIHANDLE hProduct,
  [in]                LPCSTR    szFeature,
  [out, optional]     LPDWORD   lpAttributes,
  [out, optional]     LPSTR     lpTitleBuf,
  [in, out, optional] LPDWORD   pcchTitleBuf,
  [out, optional]     LPSTR     lpHelpBuf,
  [in, out, optional] LPDWORD   pcchHelpBuf
);

Параметры

[in] hProduct

Дескриптор продукта, которому принадлежит функция. Этот дескриптор получен из MsiOpenProduct.

[in] szFeature

Код компонента для компонента, о котором должны быть возвращены сведения.

[out, optional] lpAttributes

Указатель на расположение, содержащее один или несколько следующих флагов атрибутов.

INSTALLFEATUREATTRIBUTE_FAVORLOCAL (1)

INSTALLFEATUREATTRIBUTE_FAVORSOURCE (2)

INSTALLFEATUREATTRIBUTE_FOLLOWPARENT (4)

INSTALLFEATUREATTRIBUTE_FAVORADVERTISE (8)

INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE (16)

INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE (32)

Дополнительные сведения см. в разделе
Таблица признаков. Значения, возвращаемые MsiGetFeatureInfo , в два раза больше значений в столбце Атрибуты таблицы признаков.

[out, optional] lpTitleBuf

Указатель на буфер для получения локализованного имени компонента, соответствующего полю Title в таблице признаков.

Это необязательный параметр, он может содержать значение NULL.

[in, out, optional] pcchTitleBuf

В качестве входных данных — размер lpTitleBuf. В качестве выходных данных — количество символов, возвращаемых в lpTitleBuf. На входных данных это полный размер буфера и включает пробел для завершающего символа NULL. Если переданный буфер слишком мал, возвращаемое число не включает завершающий символ NULL.

[out, optional] lpHelpBuf

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

[in, out, optional] pcchHelpBuf

В качестве входных данных — размер lpHelpBuf. В качестве выходных данных — количество символов, возвращаемых в lpHelpBuf. На входных данных это полный размер буфера и включает пробел для завершающего символа NULL. Если переданный буфер слишком мал, возвращаемое число не включает завершающий символ NULL.

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

Код возврата Описание
ERROR_INVALID_HANDLE
Недопустимый дескриптор продукта.
ERROR_INVALID_PARAMETER
Один из параметров является недопустимым.
ERROR_MORE_DATA
Буфер слишком мал для хранения запрошенных данных.
ERROR_SUCCESS
Функция возвращает успешно.
ERROR_UNKNOWN_FEATURE
Эта функция неизвестна.

Комментарии

Размер буфера для функции MsiGetFeatureInfo должен включать дополнительный символ для завершающего символа NULL. Если буфер слишком мал, возвращаемая строка усекается со значением NULL, а размер буфера содержит количество символов во всей строке, не включая завершающий символ NULL. Дополнительные сведения см. в разделе Вызов функций базы данных из программ.

Примечание

Заголовок msi.h определяет MsiGetFeatureInfo в качестве псевдонима, который автоматически выбирает версию 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

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

Функции запросов к продукту