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


Функция MsiGetTargetPathA (msiquery.h)

Функция MsiGetTargetPath возвращает полный целевой путь для папки в таблице каталогов .

Синтаксис

UINT MsiGetTargetPathA(
  [in]      MSIHANDLE hInstall,
  [in]      LPCSTR    szFolder,
  [out]     LPSTR     szPathBuf,
  [in, out] LPDWORD   pcchPathBuf
);

Параметры

[in] hInstall

Дескриптор установки, предоставленного пользовательскому действию DLL или полученному через MsiOpenPackage, MsiOpenPackageExили MsiOpenProduct.

[in] szFolder

Строка, завершающая значение NULL, указывающая запись таблицы каталога . Если каталог является корневым каталогом, это может быть значение из столбца DefaultDir. В противном случае это должно быть значение из столбца каталога.

[out] szPathBuf

Указатель на буфер, получающий полный целевой путь, завершающий значение NULL. Не пытайтесь определить размер буфера, передав значение NULL (value=0) для szPathBuf. Размер буфера можно получить, передав пустую строку (например, ""). Затем функция возвращает ERROR_MORE_DATA и pcchPathBuf содержит требуемый размер буфера в TCHARs, не включая завершающийся символ NULL. При возвращении ERROR_SUCCESS pcchPathBuf содержит количество TCHAR, записанных в буфер, не включая завершающийся символ NULL.

[in, out] pcchPathBuf

Указатель на переменную, указывающую размер, в TCHARsбуфера, на который указывает переменная szPathBuf Когда функция возвращает ERROR_SUCCESS, эта переменная содержит размер данных, скопированных в szPathBuf, не включая завершающийся символ NULL. Если szPathBuf недостаточно большой, функция возвращает ERROR_MORE_DATA и сохраняет требуемый размер, не включая завершающийся символ NULL, в переменной, на которую указывает pcchPathBuf.

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

Функция msiGetTargetPath возвращает следующие значения:

Замечания

Если возвращается ERROR_MORE_DATA, параметр, являющийся указателем, дает размер буфера, необходимого для хранения строки. Если возвращается ERROR_SUCCESS, оно дает количество символов, записанных в буфер строки. Таким образом, можно получить размер буфера, передав пустую строку (например, "") для параметра, указывающего буфер. Не пытайтесь определить размер буфера, передав значение NULL (значение=0).

Перед вызовом этой функции установщик должен сначала запустить действие CostInitialize, действие FileCostи действие CostFinalize. Дополнительные сведения см. в разделе Вызов функций базы данных из программ.

MsiGetTargetPath возвращает путь по умолчанию целевого каталога, созданного в пакете, если текущее расположение целевого объекта недоступно для установки. Например, если во время установки обслуживания целевой каталог в сетевом расположении недоступен, установщик сбрасывает пути целевого каталога обратно в значения по умолчанию. Чтобы получить фактический путь к целевому каталогу в этом случае, вызовите MsiProvideComponent для компонента, который, как известно, был установлен в каталог и задайте dwInstallMode значение INSTALLMODE_NODETECTION.

Дополнительные сведения см. в разделе вызов функций базы данных из программ.

Если функция завершается ошибкой, можно получить расширенные сведения об ошибке с помощью MsiGetLastErrorRecord.

Заметка

Заголовок msiquery.h определяет MsiGetTargetPath как псевдоним, который автоматически выбирает версию 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
целевая платформа Виндоус
заголовка msiquery.h
библиотеки Msi.lib
DLL Msi.dll

См. также

Функции расположения установщика

передачи null в качестве аргумента функций установщика Windows