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

Функция MsiProvideQualifiedComponent возвращает полный путь к компоненту для соответствующего компонента и выполняет необходимую установку. При необходимости эта функция запрашивает источник и увеличивает количество использования для компонента.

Синтаксис

UINT MsiProvideQualifiedComponentA(
  [in]      LPCSTR  szCategory,
  [in]      LPCSTR  szQualifier,
  [in]      DWORD   dwInstallMode,
  [out]     LPSTR   lpPathBuf,
  [in, out] LPDWORD pcchPathBuf
);

Параметры

[in] szCategory

Указывает идентификатор компонента для запрошенного компонента. Это может быть не GUID для самого компонента, а сервер, предоставляющий правильные функциональные возможности, как в столбце ComponentId таблицы PublishComponent.

[in] szQualifier

Задает квалификатор в список компонентов рекламы (из таблицы PublishComponent).

[in] dwInstallMode

Определяет режим установки. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
INSTALLMODE_DEFAULT
Укажите компонент и выполните установку, необходимую для предоставления компонента. Если файл ключа компонента в запрошенном компоненте или родительском компоненте отсутствует, переустановите компонент с помощью MsiReinstallFeature со следующими битами флагов: REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA и REINSTALLMODE_SHORTCUT.
INSTALLMODE_EXISTING
Укажите компонент только в том случае, если функция существует. В противном случае верните ERROR_FILE_NOT_FOUND.

Этот режим проверяет, существует ли файл ключа компонента.

INSTALLMODE_NODETECTION
Укажите компонент только в том случае, если функция существует. В противном случае верните ERROR_FILE_NOT_FOUND.

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

сочетание флагов REINSTALLMODE
Вызовите MsiReinstallFeature , чтобы переустановить компонент, используя этот параметр для параметра dwReinstallMode , а затем укажите компонент.
INSTALLMODE_NOSOURCERESOLUTION
Укажите компонент, только если состояние установки компонента INSTALLSTATE_LOCAL. Если состояние установки компонента INSTALLSTATE_SOURCE, верните ERROR_INSTALL_SOURCE_ABSENT. В противном случае возвращается ERROR_FILE_NOT_FOUND. Этот режим только проверяет, зарегистрирован ли компонент, и не проверяет, существует ли файл ключа.

[out] lpPathBuf

Указатель на переменную, которая получает путь к компоненту. Этот параметр может быть нулевым.

[in, out] pcchPathBuf

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

Если lpPathBuf имеет значение NULL, pcchBuf может иметь значение NULL.

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

Значение Значение
ERROR_INDEX_ABSENT
Квалификатор компонента недопустим или отсутствует.
ERROR_SUCCESS
Функция успешно завершена.
ERROR_FILE_NOT_FOUND
Функция отсутствует или не работает. Эта ошибка возвращается для dwInstallMode = INSTALLMODE_EXISTING.
ERROR_UNKNOWN_COMPONENT
Указанный компонент неизвестен.
Ошибка, связанная с действием
См . коды ошибок.
Ошибка инициализации
Произошла ошибка, связанная с инициализацией.

Комментарии

При успешном выполнении функции MsiProvideQualifiedComponent параметр pcchPathBuf содержит длину строки в lpPathBuf.

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

Примечание

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

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

Функции, зависящие от компонентов

Отображаемые сообщения об ошибках

Код ошибки

Ошибка инициализации

Установка нескольких пакетов