VerQueryValue (Windows Embedded CE 6.0)

1/6/2010

This function returns selected version information from the specified version-information resource. To retrieve the appropriate resource, call GetFileVersionInfoSize, and then call GetFileVersionInfo, and then call VerQueryValue.

Syntax

BOOL VerQueryValue(
  const LPVOID pBlock,
  LPTSTR lpSubBlock,
  LPVOID* lplpBuffer,
  PUINT puLen
);

Parameters

  • pBlock
    [in] Pointer to the buffer containing the version-information resource returned by the GetFileVersionInfo function.
  • lpSubBlock
    [in] Pointer to a zero-terminated string specifying which version-information value to retrieve. The string must consist of names separated by backslashes (\) and it must have one of the forms shown in the following table.

    Form Description

    \

    Specifies the root block.

    The function retrieves a pointer to the VS_FIXEDFILEINFO structure for the version-information resource.

    \StringFileInfo\lang-codepage\string-name

    Specifies a value in a language-specific StringTable structure.

    The lang-codepage name is a concatenation of a language and code page identifier pair found as a DWORD in the translation array for the resource.

    Here the lang-codepage name must be specified as a hexadecimal string.

    The function retrieves a string value specific to the language and code page indicated.

    The string-name name must be one of the following predefined strings:

    • Comments
    • CompanyName
    • FileDescription
    • FileVersion
    • InternalName
    • LegalCopyright
    • LegalTrademarks
    • OriginalFilename
    • ProductName
    • ProductVersion
    • PrivateBuild
    • SpecialBuild

    \VarFileInfo\Translation

    Specifies the translation array in a Var variable information structure.

    The function retrieves a pointer to an array of language and code page identifiers.

    An application can use these identifiers to access a language-specific StringTable structure in the version-information resource.

  • lplpBuffer
    [out] Pointer to a variable that receives a pointer to the requested version information in the buffer pointed to by pBlock. The memory pointed to by *lplpBuffer is freed when the associated pBlock memory is freed.
  • puLen
    [out] Pointer to a buffer that receives the length, in characters, of the version-information value.

Return Value

Nonzero indicates that the specified version-information structure exists, and version information is available. If the address of the length buffer is zero, no value is available for the specified version-information name. Zero indicates that the specified name does not exist or the specified resource is not valid.

Remarks

The version information functions are only compatible with 32-bit Windows file images. They are not compatible with 16-bit Windows file images.

The following code sample shows how to enumerate the available version languages and retrieve the FileDescription string-value for each language. Be sure to call the GetFileVersionInfoSize and GetFileVersionInfo functions before calling VerQueryValue to properly initialize the pBlock buffer.

// Structure used to store enumerated languages and code pages.
struct LANGANDCODEPAGE {
  WORD wLanguage;
  WORD wCodePage;
} *lpTranslate;
// Read the list of languages and code pages.
DWORD cbTranslate = 0;
VerQueryValue(pBlock,
   TEXT("\\VarFileInfo\\Translation"),
   (LPVOID*)&lpTranslate,
   &cbTranslate);
// Read the file description for each language and code page.
for( i=0; i < (cbTranslate/sizeof(struct LANGANDCODEPAGE)); i++ )
{
   wsprintf( SubBlock,
   TEXT("\\StringFileInfo\\%04x%04x\\FileDescription"),
   lpTranslate[i].wLanguage,
   lpTranslate[i].wCodePage);
   // Retrieve file description for language and code page "i".
   VerQueryValue(pBlock,
   SubBlock,
   &lpBuffer,
   &dwBytes);
}

Requirements

Header winbase.h
Library coredll.lib
Windows Embedded CE Windows CE 3.0 and later

See Also

Reference

System Management Functions
StringTable
Var
VS_FIXEDFILEINFO

Other Resources

GetFileVersionInfo
GetFileVersionInfoSize