Функция MsiGetComponentPathW (msi.h)
Функция MsiGetComponentPath возвращает полный путь к установленному компоненту. Если путь к ключу для компонента является разделом реестра, возвращается раздел реестра.
Синтаксис
INSTALLSTATE MsiGetComponentPathW(
[in] LPCWSTR szProduct,
[in] LPCWSTR szComponent,
[out] LPWSTR lpPathBuf,
[in, out] LPDWORD pcchBuf
);
Параметры
[in] szProduct
Указывает код продукта для клиентского продукта.
[in] szComponent
Указывает идентификатор компонента, который будет находиться.
[out] lpPathBuf
Указатель на переменную, которая получает путь к компоненту. Этот параметр может быть нулевым. Если компонент является разделом реестра, корневые элементы реестра представляются числовым образом. Если это путь к подразделу реестра, в конце пути к ключу имеется обратная косая черта. Если это путь к разделу значения реестра, обратная косая черта в конце отсутствует. Например, путь к реестру в 32-разрядной операционной системе HKEY_CURRENT_USER\SOFTWARE\Microsoft возвращается как "01:\SOFTWARE\Microsoft". Корневые элементы реестра, возвращаемые в 32-разрядных операционных системах, определяются, как показано в следующей таблице.
Root | Значение |
---|---|
|
00 |
|
01 |
|
02 |
|
03 |
[in, out] pcchBuf
Указатель на переменную, указывающую размер буфера в символах, на который указывает параметр lpPathBuf . На входных данных это полный размер буфера, включая пробел для завершающего символа NULL. Если переданный буфер слишком мал, возвращаемое число не включает завершающий символ NULL.
Если lpPathBuf имеет значение NULL, pcchBuf может иметь значение NULL.
Возвращаемое значение
Функция MsiGetComponentPath возвращает следующие значения.
Значение | Значение |
---|---|
|
Запрашиваемый компонент отключен на компьютере. |
|
Компонент не установлен. |
|
Один из параметров функции недопустим. |
|
Компонент устанавливается локально. |
|
Компонент устанавливается для запуска из источника. |
|
Источник компонента недоступен. |
|
Код продукта или идентификатор компонента неизвестен. |
Комментарии
При успешном выполнении функции MsiGetComponentPath параметр pcchBuf содержит длину строки в lpPathBuf.
Функция MsiGetComponentPath может возвращать INSTALLSTATE_ABSENT или INSTALL_STATE_UNKNOWN по следующим причинам:
- INSTALLSTATE_ABSENT
Приложение не удостовериться, что компонент установлен, вызвав MsiUseFeature и, при необходимости, MsiConfigureFeature.
- INSTALLSTATE_UNKNOWN
Функция не опубликована. Приложение должно определить это ранее, вызвав MsiQueryFeatureState или MsiEnumFeatures. Приложение выполняет эти вызовы во время инициализации. Приложение должно использовать только функции, которые известны как опубликованные. Так как INSTALLSTATE_UNKNOWN также должны были быть возвращены MsiUseFeature , либо MsiUseFeature не был вызван, либо его возвращаемое значение не было правильно проверено.
Примечание
Заголовок msi.h определяет MsiGetComponentPath в качестве псевдонима, который автоматически выбирает версию 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 |