VerFindFileA 函数 (winver.h)

根据文件是否在系统中查找文件的另一个版本来确定文件的安装位置。 VerFindFile 在指定缓冲区中返回的值用于对 VerInstallFile 函数的后续调用。

语法

DWORD VerFindFileA(
  [in]           DWORD  uFlags,
  [in]           LPCSTR szFileName,
  [in, optional] LPCSTR szWinDir,
  [in]           LPCSTR szAppDir,
  [out]          LPSTR  szCurDir,
  [in, out]      PUINT  puCurDirLen,
  [out]          LPSTR  szDestDir,
  [in, out]      PUINT  puDestDirLen
);

参数

[in] uFlags

类型:DWORD

此参数可以是以下值。 所有其他位是保留的。

含义
VFFF_ISSHAREDFILE
0x0001
源文件可由多个应用程序共享。 应用程序可以使用此信息来确定应将文件复制到的位置。

[in] szFileName

类型: LPCTSTR

要安装的文件的名称。 仅包括文件名和扩展名,而不包括路径。

[in, optional] szWinDir

类型: LPCTSTR

运行或将运行 Windows 的目录。 此字符串由 GetWindowsDirectory 函数返回。

[in] szAppDir

类型: LPCTSTR

安装程序在其中安装一组相关文件的目录。 如果安装程序正在安装应用程序,则这是应用程序将驻留的目录。 除非另行指定,否则此参数还指向应用程序的当前目录。

[out] szCurDir

类型: LPWSTR

一个缓冲区,用于接收所安装文件的当前版本的路径。 路径是一个以零结尾的字符串。 如果未安装当前版本,缓冲区将包含一个零长度字符串。 缓冲区的长度应至少 为 _MAX_PATH 个字符,但这不是必需的。

[in, out] puCurDirLen

类型: PUINT

szCurDir 缓冲区的长度。 此指针不得为 NULL

函数返回时, lpuCurDirLen 包含 szCurDir 中返回的数据的大小(以字符为单位),包括终止 null 字符。 如果缓冲区太小,无法包含所有数据, 则 lpuCurDirLen 将是保存路径所需的缓冲区大小。

[out] szDestDir

类型: LPTSTR

接收 VerFindFile 建议的安装位置路径的缓冲区。 路径是一个以零结尾的字符串。 缓冲区的长度应至少 为 _MAX_PATH 个字符,但这不是必需的。

[in, out] puDestDirLen

类型: PUINT

指向变量的指针,该变量指定 szDestDir 缓冲区的长度。 此指针不得为 NULL

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

返回值

类型:DWORD

返回值是指示文件状态的位掩码。 它可以是下面的一个或多个值。 所有其他值都保留。

返回代码/值 说明
VFF_CURNEDEST
0x0001
当前安装的文件版本不在建议的目标中。
VFF_FILEINUSE
0x0002
系统正在使用当前安装的文件版本;因此,无法覆盖或删除该文件。
VFF_BUFFTOOSMALL
0x0004
至少有一个缓冲区太小,无法包含相应的字符串。 应用程序应检查输出缓冲区,以确定哪个缓冲区太小。

注解

此函数适用于 16 位、32 位和 64 位文件映像。

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

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

注意

winver.h 标头将 VerFindFile 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winver.h (包括 Windows.h)
Library Version.lib
DLL Api-ms-win-core-version-l1-1-0.dll

请参阅

概念性

GetWindowsDirectory

OpenFile

其他资源

引用

VerInstallFile

版本信息