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


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

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

Синтаксис

INSTALLSTATE MsiLocateComponentW(
  [in]      LPCWSTR szComponent,
  [out]     LPWSTR  lpPathBuf,
  [in, out] LPDWORD pcchBuf
);

Параметры

[in] szComponent

Указывает идентификатор компонента, который будет находиться.

[out] lpPathBuf

Указатель на переменную, которая получает путь к компоненту. Переменная содержит завершающий символ NULL.

[in, out] pcchBuf

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

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

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

Значение Значение
INSTALLSTATE_NOTUSED
Запрашиваемый компонент отключен на компьютере.
INSTALLSTATE_ABSENT
Компонент не установлен. См. заметки.
INSTALLSTATE_INVALIDARG
Один из параметров функции недопустим.
INSTALLSTATE_LOCAL
Компонент устанавливается локально.
INSTALLSTATE_MOREDATA
Предоставленный буфер был слишком мал.
INSTALLSTATE_SOURCE
Компонент устанавливается для запуска из источника.
INSTALLSTATE_SOURCEABSENT
Источник компонента недоступен.
INSTALLSTATE_UNKNOWN
Код продукта или идентификатор компонента неизвестен. См. заметки.

Комментарии

Функция MsiLocateComponent может возвращать INSTALLSTATE_ABSENT или INSTALL_STATE_UNKNOWN по следующим причинам:

  • INSTALLSTATE_ABSENT

    Приложение не удостовериться, что компонент установлен, вызвав MsiUseFeature и, при необходимости, MsiConfigureFeature.

  • INSTALLSTATE_UNKNOWN

    Функция не опубликована. Приложение должно определить это ранее, вызвав MsiQueryFeatureState или MsiEnumFeatures. Приложение выполняет эти вызовы во время инициализации. Приложение должно использовать только функции, которые известны как опубликованные. Так как INSTALLSTATE_UNKNOWN также должны были быть возвращены MsiUseFeature , либо MsiUseFeature не был вызван, либо его возвращаемое значение не было правильно проверено.

Примечание

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

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

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