VerFindFile

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

根据是否在系统中找到文件的另一个版本,VerFindFile功能决定了在哪里安装文件。指定缓冲区中的值VerFindFile返回值将用于后续调用VerInstallFile.

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

DWORD VerFindFile(

DWORD 【dwFlags中】,//位标志,表示条件函数行为
LPTSTR 【szFileName】,//要安装的文件
LPTSTR 【szWinDir】,// Windows目录
LPTSTR 【szAppDir】,//安装相关文件的目录
LPTSTR 【szCurDir】,//接收当前安装文件的目录路径
PUINT 【lpuCurDirLen】,// szCurDir中的字符串大小
LPTSTR 【szDestDir】,//接收推荐目的地目录的路径
PUINT 【lpuDestDirLen】// szDestDir中的字符串大小
); 

参数

【dwFlags中】

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

描述
VFFF_ISSHAREDFILE源文件可以由多个应用程序共享。应用程序可以使用此信息来确定文件应在哪里复制。

所有其他值都保留。

【szFileName】

指向要安装的文件的名称。文件名只能包含文件名和扩展名,而不是路径。

【szWinDir】

指向Windows正在运行或将要运行的目录。该字符串由GetWindowsDirectory函数返回。

【szAppDir】

指向安装程序正在安装一组相关文件的目录。如果安装程序正在安装应用程序,则这是应用程序所在的目录。除非另有说明,否则此参数也指向应用程序的当前目录。

【szCurDir】

指向缓冲区,接收正在安装的文件的当前版本的路径。该路径是一个零终止的字符串。如果未安装当前版本,缓冲区将包含零长度的字符串。缓冲区应至少为_MAX_PATH个字符,尽管这不是必需的。

【lpuCurDirLen】

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

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

【szDestDir】

指向缓冲区,接收VerFindFile推荐的安装位置的路径。该路径是一个零终止的字符串。缓冲区应至少为_MAX_PATH个字符,尽管这不是必需的。

【lpuDestDirLen】

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

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

返回值

返回值是指示文件状态的位掩码。它可以是一个或多个以下值:

含义
VFF_CURNEDEST当前安装的文件版本不在推荐的目的地。
VFF_FILEINUSEWindows正在使用当前安装的文件版本;因此,文件不能被覆盖或删除。
VFF_BUFFTOOSMALL至少有一个缓冲区太小,不能包含相应的字符串。应用程序应检查输出缓冲区以确定哪个缓冲区太小。

所有其他值都保留。

备注

VerFindFile使用OpenFile功能搜索指定文件的副本。但是,它从指定的Windows目录中确定系统目录,或搜索路径。

如果【dwFlags中】参数指示该文件对该应用程序是私有的(不是VFFF_ISSHAREDFILE),则VerFindFile建议将文件安装在应用程序的目录中。否则,如果系统正在运行Windows的共享副本,则该函数建议在Windows目录中安装该文件。如果系统正在运行Windows的私有副本,则该函数建议将文件安装在系统目录中。

也可以看看

GetWindowsDirectory, OpenFile, VerInstallFile