VerInstallFile

【勇芳软件工作室】汉化HomePreviousNext

VerInstallFile功能根据VerFindFile功能返回的信息尝试安装指定的文件。VerInstallFile解压缩文件,如有必要,分配唯一的文件名,并检查错误,如过时的文件。

与其他文件安装功能一样,VerInstallFile只能与Win32文件映像配合使用。不支持16位Windows文件映像。

DWORD VerInstallFile(bg-Latn

DWORD 【uFlags】,//位标志,表示条件函数行为
LPTSTR 【szSrcFileName】,//要安装的文件
LPTSTR 【szDestFileName】,//要安装的文件的新名称
LPTSTR 【szSrcDir】,//要安装的文件的源目录
LPTSTR 【szDestDir】,//安装文件的目录
LPTSTR 【szCurDir】,//当前安装文件的目录
LPTSTR 【szTmpFile】,//接收安装过程中使用的文件的临时副本的名称
PUINT 【lpuTmpFileLen】// szTmpFile中的字符串大小
); 

参数

【uFlags】

包含一个标志的位掩码。此参数可以是以下值之一:

描述
VIFF_FORCEINSTALL安装文件,不管版本号不一致。该函数仅在安装过程中检查物理错误。
VIFF_DONTDELETEOLD如果以前安装的文件不在目标目录中,则安装文件而不删除先前安装的文件。

所有其他值都保留。

【szSrcFileName】

指向要安装的文件的名称。这是【szSrcDir】参数指向的目录中的文件名。文件名只能包含文件名和扩展名,而不是路径。

【szDestFileName】

指向VerInstallFile的名称将在安装后给出新的文件。该文件名可能与【szSrcFileName】目录中的文件名不同。新名称应仅包含文件名和扩展名,而不是路径。

【szSrcDir】

指向包含找到新文件的目录的名称的缓冲区。

【szDestDir】

指向缓冲区,其中包含应安装新文件的目录的名称。VerFindFile【szDestDir】参数中返回此值。

【szCurDir】

指向包含找到此文件的预先存在的版本的目录的名称的缓冲区。VerFindFile【szCurDir】参数中返回此值。

【szTmpFile】

指向初始调用VerInstallFile时应为空的缓冲区。该函数使用源文件的临时副本的名称填充缓冲区。缓冲区应至少为_MAX_PATH个字符,尽管这不是必需的。

【lpuTmpFileLen】

指向包含【szTmpFile】缓冲区长度的变量。该指针不能为NULL。

当函数返回时,【lpuTmpFileLen】包含【szTmpFile】中返回的数据的大小(字符),包括终止空字符。如果缓冲区太小而不能包含所有数据,则【lpuTmpFileLen】将是保存数据所需的缓冲区的大小。

返回值

返回值是指示异常的位掩码。它可以是一个或多个以下值:

含义
VIF_TEMPFILE新文件的临时副本位于目标目录中。失败的原因反映在其他旗帜中。
VIF_MISMATCH新的和预先存在的文件在一个或多个属性中有所不同。可以通过设置VIFF_FORCEINSTALL标志再次调用VerInstallFile来覆盖此错误。
VIF_SRCOLD要安装的文件比预先存在的文件旧。可以通过调用VerInstallFile再次设置VIFF_FORCEINSTALL标志来覆盖此错误。
VIF_DIFFLANG新的和预先存在的文件具有不同的语言或代码页值。可以通过设置VIFF_FORCEINSTALL标志再次调用VerInstallFile来覆盖此错误。
VIF_DIFFCODEPG新文件需要无法显示当前运行的Windows版本的代码页。可以通过调用VerInstallFile设置VIFF_FORCEINSTALL标志来覆盖此错误。
VIF_DIFFTYPE新文件与预先存在的文件有不同的类型,子类型或操作系统。通过设置VIFF_FORCEINSTALL标志再次调用VerInstallFile可以覆盖此错误。
VIF_WRITEPROT预先存在的文件是写保护的。可以通过设置VIFF_FORCEINSTALL标志再次调用VerInstallFile来覆盖此错误。
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】包含保存文件名所需的缓冲区的大小。

所有其他值都保留。

备注

VerInstallFile将文件从源目录复制到目标目录。如果【szCurDir】表示系统上存在该文件的先前版本,VerInstallFile将比较文件的版本戳记信息。如果先前安装的文件版本比新版本更新,或者如果文件的属性显着不同,例如,如果它们使用不同的语言,则VerInstallFile返回一个或多个可恢复的错误代码。

VerInstallFile将目标目录中的临时文件留下。应用程序可以覆盖错误或删除临时文件。如果应用程序覆盖错误,VerInstallFile将删除先前安装的版本,并使用原始文件名重命名临时文件。

也可以看看

VerFindFile