|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
VerInstallFile
The VerInstallFile function attempts to install the specified file based on information returned from the VerFindFile function. VerInstallFile decompresses the file, if necessary, assigns a unique filename, and checks for errors, such as outdated files.
As with the other file installation functions, VerInstallFile will only work with Win32 file images. 16-bit Windows file images are not supported.
DWORD VerInstallFile(
DWORD uFlags, // bit flags that condition function behavior LPTSTR szSrcFileName, // file to install LPTSTR szDestFileName, // new name of file to install LPTSTR szSrcDir, // source directory of file to install LPTSTR szDestDir, // directory in which to install file LPTSTR szCurDir, // directory where file is currently installed LPTSTR szTmpFile, // receives name of temporary copy of file used during installation PUINT lpuTmpFileLen // size of string in szTmpFile );
Parameters
uFlags
Contains a bitmask of flags. This parameter can be one of the following values:
Flag Description VIFF_FORCEINSTALL Installs the file regardless of mismatched version numbers. The function checks only for physical errors during installation. VIFF_DONTDELETEOLD Installs the file without deleting the previously installed file, if the previously installed file is not in the destination directory.
All other values are reserved.
szSrcFileName
Points to the name of the file to be installed. This is the filename in the directory pointed to by the szSrcDir parameter; the filename can include only the filename and extension, not a path.
szDestFileName
Points to the name VerInstallFile will give the new file upon installation. This filename may be different from the filename in the szSrcFileName directory. The new name should include only the filename and extension, not a path.
szSrcDir
Points to a buffer that contains the name of the directory where the new file is found.
szDestDir
Points to a buffer that contains the name of the directory where the new file should be installed. VerFindFile returns this value in its szDestDir parameter.
szCurDir
Points to a buffer that contains the name of the directory where the preexisting version of this file is found. VerFindFile returns this value in its szCurDir parameter.
szTmpFile
Points to a buffer that should be empty upon the initial call to VerInstallFile. The function fills the buffer with the name of a temporary copy of the source file. The buffer should be at least _MAX_PATH characters long, although this is not required.
lpuTmpFileLen
Points to a variable that contains the length of the szTmpFile buffer. This pointer must not be NULL. When the function returns, lpuTmpFileLen contains the size, in characters, of the data returned in szTmpFile, including the terminating null character. If the buffer is too small to contain all the data, lpuTmpFileLen will be the size of the buffer required to hold the data.
Return Values
The return value is a bitmask that indicates exceptions. It can be one or more of the following values:
Value Meaning VIF_TEMPFILE The temporary copy of the new file is in the destination directory. The cause of failure is reflected in other flags. VIF_MISMATCH The new and preexisting files differ in one or more attributes. This error can be overridden by calling VerInstallFile again with the VIFF_FORCEINSTALL flag set. VIF_SRCOLD The file to install is older than the preexisting file. This error can be overridden by calling VerInstallFile again with the VIFF_FORCEINSTALL flag set. VIF_DIFFLANG The new and preexisting files have different language or code-page values. This error can be overridden by calling VerInstallFile again with the VIFF_FORCEINSTALL flag set. VIF_DIFFCODEPG The new file requires a code page that cannot be displayed by the version of Windows currently running. This error can be overridden by calling VerInstallFile with the VIFF_FORCEINSTALL flag set. VIF_DIFFTYPE The new file has a different type, subtype, or operating system from the preexisting file. This error can be overridden by calling VerInstallFile again with the VIFF_FORCEINSTALL flag set. VIF_WRITEPROT The preexisting file is write protected. This error can be overridden by calling VerInstallFile again with the VIFF_FORCEINSTALL flag set. VIF_FILEINUSE The preexisting file is in use by Windows and cannot be deleted. VIF_OUTOFSPACE The function cannot create the temporary file due to insufficient disk space on the destination drive. VIF_ACCESSVIOLATION A read, create, delete, or rename operation failed due to an access violation. VIF_SHARINGVIOLATION A read, create, delete, or rename operation failed due to a sharing violation. VIF_CANNOTCREATE The function cannot create the temporary file. The specific error may be described by another flag. VIF_CANNOTDELETE The function cannot delete the destination file, or cannot delete the existing version of the file located in another directory. If the VIF_TEMPFILE bit is set, the installation failed, and the destination file probably cannot be deleted. VIF_CANNOTDELETECUR The existing version of the file could not be deleted and VIFF_DONTDELETEOLD was not specified. VIF_CANNOTRENAME The function cannot rename the temporary file, but already deleted the destination file. VIF_OUTOFMEMORY The function cannot complete the requested operation due to insufficient memory. Generally, this means the application ran out of memory attempting to expand a compressed file. VIF_CANNOTREADSRC The function cannot read the source file. This could mean that the path was not specified properly. VIF_CANNOTREADDST The function cannot read the destination (existing) files. This prevents the function from examining the file's attributes. VIF_BUFFTOOSMALL The szTmpFile buffer was too small to contain the name of the temporary source file. When the function returns, lpuTmpFileLen contains the size of the buffer required to hold the filename.
All other values are reserved.
Remarks
VerInstallFile copies the file from the source directory to the destination directory. If szCurDir indicates that a previous version of the file exists on the system, VerInstallFile compares the files' version stamp information. If the previously installed version of the file is more recent than the new version, or if the files' attributes are significantly different, for example, if they are in different languages, then VerInstallFile returns with one or more recoverable error codes.
VerInstallFile leaves the temporary file in the destination directory. The application can either override the error or delete the temporary file. If the application overrides the error, VerInstallFile deletes the previously installed version and renames the temporary file with the original filename.
See Also
VerFindFile
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
VerInstallFile
Функция VerInstallFile пытается устанавливать определенный файл основанный в информации возвращанной из функции VerFindFile. VerInstallFile СНИЖАЕТ давление файл, если необходимо, назначает уникальные filename, и чеки ошибок, как например, устарелые файлы.
Как и другая файловая установка функционирует, VerInstallFile только будет работать с файловыми образами Win32. файловые образы 16- бита Windows не поддерживаны.
DWORD VerInstallFile(
DWORD uFlags, // БИТОВЫЕ флаги, которые оценивают функциональное поведение LPTSTR szSrcFileName, // файл, чтобы устанавливать LPTSTR szDestFileName, // новое имя файла, чтобы устанавливать LPTSTR szSrcDir, // исходный директорий файла, чтобы устанавливать LPTSTR szDestDir, // директорий, чтобы устанавливать файл LPTSTR szCurDir, // директорий где файл к настоящему времени установлен LPTSTR szTmpFile, // имя приемников временной копии файла использовалось в течение размера установки PUINT lpuTmpFileLen // строки в szTmpFile );
Параметры
uFlags
Содержит bitmask флагов. Этот параметр может быть одним из следующего величин:
Описание Флага VIFF_FORCEINSTALL Устанавливает файл независимо от несовпадающих номеров версии. Функция проверяет только на наличие физических ошибок в течение установки. VIFF_DONTDELETEOLD Устанавливает файл не удаляя прежде включенный файл, если прежде включенный файл - не в директории расположения.
Все другие величины зарезервированы.
szSrcFileName
Точки на имя файла, которые нужно устанавливаться. Это - filename в директории указанном, чтобы параметром szSrcDir; filename мочь включить только filename и расширение, не путь.
szDestFileName
Точки на имя VerInstallFile даст новый файл в установке. Это filename может отличаться от filename в директории szSrcFileName. Новое имя должно включить только filename и расширение, не путь.
szSrcDir
Точки на буфер, которые содержат имя директория где новый файл обнаружен.
szDestDir
Точки на буфер, которые содержат имя директория где новый файл должен быть установлен. VerFindFile ВОЗВРАЩАЕТ эту величину в свой параметр szDestDir.
szCurDir
Точки на буфер, которые содержат имя директория где предшествующая версия этого файла обнаружена. VerFindFile ВОЗВРАЩАЕТ эту величину в свой параметр szCurDir.
szTmpFile
Точки на буфер, которые должны быть пустыми на начальном вызове на VerInstallFile. Функция заполняет буфер именем временной копии исходного файла. Буфер должен быть по крайней мере _MAX_PATH символы долго (длиной), хотя это не потребовался.
lpuTmpFileLen
Точки на переменную, которые содержат длину буфера szTmpFile. Этот указатель не должен быть НЕДЕЙСТВИТЕЛЕН. Когда функция возвращает, lpuTmpFileLen содержит размер, в символах, данных возвращанных в szTmpFile, включая завершающий недействительный символ. Если буфер слишком небольшой, чтобы содержать все данные, lpuTmpFileLen будет размером буфера требовавшегося, чтобы держать данные.
Обратные Величины
Обратная величина является bitmask, который указывает исключения. Это может быть одно или более из следующего величин:
Значение Величины VIF_TEMPFILE временная копия нового файла - в директории расположения. Причина неудачи отражена на других флагах. VIF_MISMATCH новый и предшествующий файлы отличаются в одном или более атрибутах. Эта ошибка может быть overridden вызывая VerInstallFile снова с флагом VIFF_FORCEINSTALL установленным. VIF_SRCOLD файл, чтобы устанавливать, более старо чем предшествующий файл. Эта ошибка может быть overridden вызывая VerInstallFile снова с флагом VIFF_FORCEINSTALL установленным. VIF_DIFFLANG новый и предшествующий файлы имеют другие языковые или кодовые-страничные величины. Эта ошибка может быть overridden вызывая VerInstallFile снова с флагом VIFF_FORCEINSTALL установленным. VIF_DIFFCODEPG новый файл требует кодовую страницу, которая не может быть отображена версией Windows к настоящему времени работающей. Эта ошибка может быть overridden вызывая VerInstallFile с флагом VIFF_FORCEINSTALL установленным. VIF_DIFFTYPE новый файл имеет другой тип, подтип, или операционную систему из предшествующего файла. Эта ошибка может быть overridden вызывая VerInstallFile снова с флагом VIFF_FORCEINSTALL установленным. VIF_WRITEPROT предшествующий файл является записью защищенной. Эта ошибка может быть overridden вызывая VerInstallFile снова с флагом VIFF_FORCEINSTALL установленным. VIF_FILEINUSE предшествующий файл используется Windows и не мочь быть удалено. VIF_OUTOFSPACE функция не может создать временный файл из-за недостаточного дискового пространства на приемном накопителе. VIF_ACCESSVIOLATION чтение, создает, удаляет, или переименовывает операцию потерпевшую неудачу из-за нарушения доступа. VIF_SHARINGVIOLATION чтение, создает, удаляет, или переименовывает операцию потерпевшую неудачу из-за использующего нарушения. VIF_CANNOTCREATE функция не может создать временный файл. Специфическая ошибка может быть описана другим флагом. VIF_CANNOTDELETE функция не может удалить файл расположения, или не может удалить существующую версию файла расположенного в другом директории. Если бит VIF_TEMPFILE установлен, установка терпела неудачу, и файл расположения вероятно не может быть удален. VIF_CANNOTDELETECUR существующая версия файла не могла удалена и VIFF_DONTDELETEOLD не был определен. VIF_CANNOTRENAME функция не может переименовать временный файл, но уже удаливший файл расположения. VIF_OUTOFMEMORY функция не может завершить запрошенную операцию из-за недостаточной памяти. Обычно, это означает что приложение испытывает недостаток памяти, пытающейся, чтобы расширять сжатый файл. VIF_CANNOTREADSRC функция не может прочитать исходный файл. Это могло бы означать, что путь не определялся правильно. VIF_CANNOTREADDST функция не может прочитать файлы расположения (существовать). Это мешает функцию чтобы изучать атрибуты файла. VIF_BUFFTOOSMALL буфер szTmpFile был слишком небольшим, чтобы содержать имя временного исходного файла. Когда функция возвращает, lpuTmpFileLen содержит размер буфера требовавшегося, чтобы держать filename.
Все другие величины зарезервированы.
Замечания
VerInstallFile КОПИРУЕТ файл от исходного директория до директория расположения. Если szCurDir указывает, что предшествующая версия файла существует в системе, VerInstallFile сравнивает информацию марки версии файлов. Если прежде включенная версия файла более последняя чем новая версия, или если атрибуты файлов значительно другие, например, если они - в других языках, тогда возврат VerInstallFile с одним или более исправимыми кодами ошибки.
VerInstallFile ОСТАВЛЯЕТ временный файл в директории расположения. Приложение может или аннулировать ошибку или удалять временный файл. Если приложение аннулирует ошибку, VerInstallFile удаляет прежде включенную версию и переименовывает временный файл с оригинальным filename.
Смотри Также
VerFindFile
|
|
|
|
| |