Retrieves version information for the specified file.
Syntax
BOOL GetFileVersionInfo(
LPCTSTR lptstrFilename,
DWORD dwHandle,
DWORD dwLen,
LPVOID lpData
);
Parameters
- lptstrFilename
-
[in] Pointer to a null-terminated string that specifies the name of the file of interest. If a full path is not specified, the function uses the search sequence specified by the LoadLibrary function.
Windows 95/98/Me: The short path form of the specified file name must be less than 126 characters.
- dwHandle
-
This parameter is ignored.
- dwLen
-
[in] Specifies the size, in bytes, of the buffer pointed to by the
lpData parameter.
Call the GetFileVersionInfoSize function first to determine the size, in bytes, of a file's version information. The
dwLen member should be equal to or greater than that value.
If the buffer pointed to by
lpData is not large enough, the function truncates the file's version information to the size of the buffer.
- lpData
-
[out] Pointer to a buffer that receives the file-version information.
You can use this value in a subsequent call to the VerQueryValue function to retrieve data from the buffer.
Return Value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
Windows Vista: File version info has fixed and non-fixed part. The fixed part contains information like version number. The non-fixed part contains things like strings. In the past GetFileVersionInfo was taking version information from the binary (exe/dll). Currently, it is querying fixed version from language neutral file (exe/dll) and the non-fixed part from mui file, merges them and returns to the user.
If the given binary does not have a mui file then behavior is as in previous version.
Windows NT 3.51 and earlier: The version information functions do not work with 16-bit Windows file images.
Windows 95/98/Me: GetFileVersionInfoW is supported by the Microsoft Layer for Unicode. To use this version, you must add certain files to your application, as outlined in Microsoft Layer for Unicode on Windows 95/98/Me Systems.
Windows 95/98/Me, Windows NT 4.0 and Windows 2000: These functions work on both 16- and 32-bit file images.
Windows XP: These functions work on 16-, 32-, and 64-bit file images.
Call the GetFileVersionInfoSize function before calling the GetFileVersionInfo function. To retrieve information from the file-version information buffer, use the VerQueryValue function.
Function Information
| Minimum DLL Version | version.dll |
|---|
| Header | Declared in Winver.h, include Windows.h |
|---|
| Import library | Version.lib |
|---|
| Minimum operating systems |
Windows 95, Windows NT 3.1 |
|---|
| Unicode | Implemented as
ANSI and Unicode versions. |
|---|
See Also