VerQueryValue函数从指定的版本信息资源返回所选版本信息。要检索相应的资源,必须在VerQueryValue之前调用GetFileVersionInfo函数。
与其他文件安装功能一样,VerQueryValue只能与Win32文件映像配合使用。不支持16位Windows文件映像。
BOOL VerQueryValue(
const LPVOID 【pBlock】, | //版本资源的缓冲区地址 |
LPTSTR 【lpSubBlock】, | //要检索的值的地址 |
LPVOID *【lplpBuffer】, | //版本指针的缓冲区地址 |
PUINT 【puLen】 | //版本值长度缓冲区的地址 |
); |
参数
【pBlock】
指向包含GetFileVersionInfo返回的版本信息资源的缓冲区。
【lpSubBlock】
指向一个零终止的字符串,指定要检索的版本信息值。字符串由以反斜杠(\\)分隔的名称组成,可以具有以下形式之一:
形成 | 描述 |
\ | 指定根块。该函数检索指向版本信息资源的VS_FIXEDFILEINFO结构的指针。 |
\VarFileInfo\Translation | 指定变量信息结构中的转换表。该函数检索指向一组语言和字符集标识符的指针。应用程序使用这些标识符在版本信息资源中创建特定于语言的结构的名称。 |
郎字符集字符串名称 | 指定特定于语言的结构中的值。【朗字符集】名称是在资源的翻译表中找到的语言和字符集标识符对的连接。【朗字符集】名称必须指定为十六进制字符串。【字符串名称】名称是以下备注部分中描述的预定义字符串之一。 |
【lplpBuffer】
指向接收到版本信息值的指针的缓冲区。
【puLen】
指向接收版本信息值的字符长度的缓冲区。
返回值
如果指定的结构存在且版本信息可用,则返回值不为零。如果长度缓冲区的地址为零,则没有值可用于指定的版本信息名称。
如果指定的名称不存在或指定的资源无效,返回值为零。
备注
Win32 API包含以下预定义版本信息字符串:
CompanyName FileDescription FileVersion InternalName LegalCopyright OriginalFilename ProductName ProductVersion
以下示例显示如何从一个版本信息块检索FileDescription字符串值:
VerQueryValue(pBlock,
TEXT("\\StringFileInfo\\040904E4\\FileDescription"),
& lpBuffer,
&dwBytes);
在调用VerQueryValue功能之前,请调用GetFileVersionInfoSize和GetFileVersionInfo功能以正确初始化【pBlock】缓冲区。
也可以看看
GetFileVersionInfo, GetFileVersionInfoSize, VS_FIXEDFILEINFO, VS_VERSION_INFO