Функция VerInstallFileA (winver.h)
Устанавливает указанный файл на основе сведений, возвращаемых из функции VerFindFile. VerInstallFile распаковывает файл, при необходимости назначает уникальное имя файла и проверяет наличие ошибок, таких как устаревшие файлы.
Синтаксис
DWORD VerInstallFileA(
[in] DWORD uFlags,
[in] LPCSTR szSrcFileName,
[in] LPCSTR szDestFileName,
[in] LPCSTR szSrcDir,
[in] LPCSTR szDestDir,
[in] LPCSTR szCurDir,
[out] LPSTR szTmpFile,
[in, out] PUINT puTmpFileLen
);
Параметры
[in] uFlags
Тип: DWORD
Этот параметр может быть одним из следующих значений. Все остальные биты зарезервированы.
[in] szSrcFileName
Тип: LPCTSTR
Имя установленного файла. Это имя файла в каталоге, на которое указывает параметр szSrcDir; Имя файла может включать только имя файла и расширение, а не путь.
[in] szDestFileName
Тип: LPCTSTR
Имя VerInstallFile даст новый файл после установки. Это имя файла может отличаться от имени файла в каталоге szSrcFileName. Новое имя должно содержать только имя файла и расширение, а не путь.
[in] szSrcDir
Тип: LPCTSTR
Имя каталога, в котором можно найти файл.
[in] szDestDir
Тип: LPCTSTR
Имя каталога, в котором должен быть установлен файл. VerFindFile возвращает это значение в параметре szDestDir.
[in] szCurDir
Тип: LPCTSTR
Имя каталога, в котором можно найти предварительную версию этого файла. VerFindFile возвращает это значение в параметре szCurDir.
[out] szTmpFile
Тип: LPTSTR
Имя временной копии исходного файла. Буфер должен быть по крайней мере _MAX_PATH символов длиной, хотя это не обязательно, и должно быть пустым для входных данных.
[in, out] puTmpFileLen
Тип: PUINT
Длина буфера szTmpFile
Когда функция возвращается, lpuTmpFileLen получает размер в символах данных, возвращаемых в szTmpFile, включая завершающий символ NULL. Если буфер слишком мал, чтобы содержать все данные, lpuTmpFileLen будет размером буфера, необходимого для хранения данных.
Возвращаемое значение
Тип: DWORD
Возвращаемое значение представляет собой битовую маску, указывающую исключения. Это может быть одно или несколько следующих значений. Все остальные значения зарезервированы.
Возврат кода или значения | Описание |
---|---|
|
Сбой операции чтения, создания, удаления или переименования из-за нарушения доступа. |
|
Буфер szTmpFile |
|
Функция не может создать временный файл. Конкретная ошибка может быть описана другим флагом. |
|
Функция не может удалить целевой файл или удалить существующую версию файла, расположенную в другом каталоге. Если установлен VIF_TEMPFILE бит, установка завершилась ошибкой, а целевой файл, вероятно, не удается удалить. |
|
Не удалось удалить существующую версию файла, а VIFF_DONTDELETEOLD не указана. |
|
Функция не может загрузить файл шкафа. |
|
Функция не может загрузить сжатый файл. |
|
Функция не может считывать конечные (существующие) файлы. Это предотвращает проверку атрибутов файла функцией. |
|
Функция не может считывать исходный файл. Это может означать, что путь не указан должным образом. |
|
Функция не может переименовать временный файл, но уже удалила целевой файл. |
|
Для нового файла требуется кодовая страница, которая не может отображаться версией системы, запущенной в данный момент. Эта ошибка может быть переопределена путем вызова VerInstallFile с набором флагов VIFF_FORCEINSTALL. |
|
Новые и существующие файлы имеют разные языковые или кодовые значения. Эта ошибка может быть переопределена путем вызова VerInstallFile с набором флагов VIFF_FORCEINSTALL. |
|
Новый файл имеет другой тип, подтип или операционную систему из предварительного файла. Эта ошибка может быть переопределена путем вызова VerInstallFile с набором флагов VIFF_FORCEINSTALL. |
|
Существующий файл используется системой и не может быть удален. |
|
Новые и существующие файлы отличаются в одном или нескольких атрибутах. Эта ошибка может быть переопределена путем вызова VerInstallFile с набором флагов VIFF_FORCEINSTALL. |
|
Функция не может завершить запрошенную операцию из-за нехватки памяти. Как правило, это означает, что приложению не хватает памяти, пытающейся развернуть сжатый файл. |
|
Функция не может создать временный файл из-за нехватки места на целевом диске. |
|
Не удалось выполнить операцию чтения, создания, удаления или переименования из-за нарушения общего доступа. |
|
Файл, который необходимо установить, старше, чем существующий файл. Эта ошибка может быть переопределена путем вызова VerInstallFile с набором флагов VIFF_FORCEINSTALL. |
|
Временная копия нового файла находится в целевом каталоге. Причина сбоя отражается в других флагах. |
|
Существующий файл защищен записью. Эта ошибка может быть переопределена путем вызова VerInstallFile с набором флагов VIFF_FORCEINSTALL. |
Замечания
Эта функция работает на 16-, 32-разрядных и 64-разрядных образах файлов.
VerInstallFile копирует файл из исходного каталога в целевой каталог. Если szCurDir указывает, что предыдущая версия файла существует в системе, VerInstallFile сравнивает сведения о метке версии файлов. Если ранее установленная версия файла является более последней, чем новая версия, или если атрибуты файлов значительно отличаются, например, если они находятся на разных языках, то VerInstallFile возвращается с одним или несколькими кодами ошибок, которые можно восстановить.
VerInstallFile оставляет временный файл в целевом каталоге. Приложение может переопределить ошибку или удалить временный файл. Если приложение переопределяет ошибку, VerInstallFile удаляет ранее установленную версию и переименовывает временный файл с исходным именем файла.
Заметка
Заголовок winver.h определяет VerInstallFile как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winver.h (включая Windows.h) |
библиотеки |
Version.lib |
DLL | Api-ms-win-core-version-l1-1-0.dll |
См. также
концептуальные
Справочник