VerQueryValue
The VerQueryValue
function returns selected version information from the specified
version-information resource. To retrieve the appropriate resource, the GetFileVersionInfo
As with the
other file installation functions, VerQueryValue will only work with
Win32 file images. 16-bit Windows file images are not supported.
BOOL VerQueryValue(
const LPVOID pBlock, |
// address of
buffer for version resource |
LPTSTR lpSubBlock, |
// address of value
to retrieve |
LPVOID *lplpBuffer, |
// address of
buffer for version pointer |
PUINT puLen |
// address of
version-value length buffer |
); |
|
Parameters
pBlock
Points to the
buffer containing the version-information resource returned by GetFileVersionInfo.
lpSubBlock
Points to a
zero-terminated string specifying which version-information value to retrieve.
The string consists of names separated by backslashes (\) and can have one of
the following forms:
Form |
Description |
\ |
Specifies
the root block. The function retrieves a pointer to the VS_FIXEDFILEINFO |
\VarFileInfo\Translation |
Specifies
the translation table in the variable information structure. The function
retrieves a pointer to an array of language and character-set identifiers. An
application uses these identifiers to create the name of a language-specific
structure in the version-information resource. |
\StringFileInfo\lang-charset\string-name |
Specifies a
value in a language-specific structure. The lang-charset name is a
concatenation of a language and character-set identifier pair found in the
translation table for the resource. The lang-charset name must be
specified as a hexadecimal string. The string-name name is one of the
predefined strings described in the following Remarks section. |
lplpBuffer
Points to a
buffer that receives a pointer to the version-information value.
puLen
Points to a
buffer that receives the length, in characters, of the version-information
value.
Return Values
If the
specified structure exists and version information is available, the return
value is nonzero. If the address of the length buffer is zero, no value is
available for the specified version-information name.
If the
specified name does not exist or the specified resource is not valid, the
return value is zero.
Remarks
The Win32 API
contains the following predefined version information strings:
CompanyName
FileDescription FileVersion InternalName LegalCopyright OriginalFilename
ProductName ProductVersion
The following
example shows how to retrieve the FileDescription string-value from a block of
version information:
VerQueryValue(pBlock,
TEXT("\\StringFileInfo\\040904E4\\FileDescription"),
&lpBuffer,
&dwBytes);
Call the GetFileVersionInfoSize
and GetFileVersionInfo functions to properly initialize the pBlock
buffer before calling the VerQueryValue function.
See Also