Функция MsiGetComponentPathA (msi.h)
Функция msiGetComponentPath
Синтаксис
INSTALLSTATE MsiGetComponentPathA(
[in] LPCSTR szProduct,
[in] LPCSTR szComponent,
[out] LPSTR lpPathBuf,
[in, out] LPDWORD pcchBuf
);
Параметры
[in] szProduct
Задает код продукта для клиентского продукта.
[in] szComponent
Указывает идентификатор компонента, который должен находиться.
[out] lpPathBuf
Указатель на переменную, получающую путь к компоненту. Этот параметр может иметь значение NULL. Если компонент является разделом реестра, корни реестра представлены числовым образом. Если это путь к подразделу реестра, в конце пути ключа имеется обратная косая черта. Если это путь к разделу значения реестра, обратная косая черта отсутствует в конце. Например, путь реестра к 32-разрядной операционной системе HKEY_CURRENT_USER\SOFTWARE\Microsoft возвращается как "01:\SOFTWARE\Microsoft". Корни реестра, возвращаемые в 32-разрядных операционных системах, определяются, как показано в следующей таблице.
Корень | Значение |
---|---|
|
00 |
|
01 |
|
02 |
|
03 |
[in, out] pcchBuf
Указатель на переменную, указывающую размер буфера в символах, на который указывает параметр lpPathBuf. В входных данных это полный размер буфера, включая пробел для конца символа NULL. Если буфер, переданный слишком маленьким, возвращаемое число не включает завершающий символ NULL.
Если lpPathBuf имеет значение NULL, pcchBuf может иметь значение NULL.
Возвращаемое значение
Функция MsiGetComponentPath возвращает следующие значения.
Ценность | Значение |
---|---|
|
Запрошенный компонент отключен на компьютере. |
|
Компонент не установлен. |
|
Один из параметров функции недопустим. |
|
Компонент устанавливается локально. |
|
Компонент устанавливается для запуска из источника. |
|
Источник компонента недоступен. |
|
Код продукта или идентификатор компонента неизвестен. |
Замечания
После успешного выполнения функции MsiGetComponentPath параметр pcchBu f содержит длину строки в 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". |
целевая платформа | Виндоус |
заголовка | msi.h |
библиотеки |
Msi.lib |
DLL | Msi.dll |
См. также
функций