#include <ver.h>
typedef struct tagVS_FIXEDFILEINFO { /* vsffi */
DWORD dwSignature;
DWORD dwStrucVersion;
DWORD dwFileVersionMS;
DWORD dwFileVersionLS;
DWORD dwProductVersionMS;
DWORD dwProductVersionLS;
DWORD dwFileFlagsMask;
DWORD dwFileFlags;
DWORD dwFileOS;
DWORD dwFileType;
DWORD dwFileSubtype;
DWORD dwFileDateMS;
DWORD dwFileDateLS;
} VS_FIXEDFILEINFO;
The VS_FIXEDFILEINFO structure contains version information about a file.
dwSignature
Specifies the value 0xFEEFO4BD.
dwStrucVersion
Specifies the binary version number of this structure. The high-order word contains the major version number, and the low-order word contains the minor version number. This value must be greater than 0x00000029.
dwFileVersionMS
Specifies the high-order 32 bits of the binary version number for the file. The value of this member is used with the value of the dwFileVersionLS member to form a 64-bit version number.
dwFileVersionLS
Specifies the low-order 32 bits of the binary version number for the file. The value of this member is used with the dwFileVersionMS value to form a 64-bit version number.
dwProductVersionMS
Specifies the high-order 32 bits of the binary version number of the product with which the file is distributed. The value of this member is used with the value of the dwProductVersionLS member to form a 64-bit version number.
dwProductVersionLS
Specifies the low-order 32 bits of the binary version number of the product with which the file is distributed. The value of this member is used with the dwProductVersionMS value to form a 64-bit version number.
dwFileFlagsMask
Specifies which bits in the dwFileFlags member are valid. If a bit is set, the corresponding bit in the dwFileFlags member is valid.
dwFileFlags
Specifies the Boolean attributes of the file. The attributes can be a combination of the following values:
Value | Meaning |
VS_FF_DEBUG | File contains debugging information or is compiled with debugging features enabled. |
VS_FF_INFOINFERRED | File contains a dynamically created version-information resource. Some of the blocks for the resource may be empty or incorrect. This value is not intended to be used in version-information resources created by using the VERSIONINFO statement. |
VS_FF_PATCHED | File has been modified and is not identical to the original shipping file of the same version number. |
VS_FF_PRERELEASE | File is a development version, not a commercially released product. |
VS_FF_PRIVATEBUILD | File was not built using standard release procedures. If this value is given, the StringFileInfo block must contain a PrivateBuild string. |
VS_FF_SPECIALBUILD | File was built by the original company using standard release procedures but is a variation of the standard file of the same version number. If this value is given, the StringFileInfo block must contain a SpecialBuild string. |
dwFileOS
Specifies the operating system for which this file was designed. This member can be one of the following values:
Value | Meaning |
VOS_UNKNOWN | Operating system for which the file was designed is unknown to Windows. |
VOS_DOS | File was designed for MS-DOS. |
VOS_NT | File was designed for Windows NT. |
VOS_WINDOWS16 | File was designed for Windows version 3.0 or later. |
VOS_WINDOWS32 | File was designed for 32-bit Windows. |
VOS_DOS_WINDOWS16 | File was designed for Windows version 3.0 or later running with MS-DOS. |
VOS_DOS_WINDOWS32 | File was designed for 32-bit Windows running with MS-DOS. |
VOS_NT_WINDOWS32 | File was designed for 32-bit Windows running with Windows NT. |
The values 0x00002L, 0x00003L, 0x20000L and 0x30000L are reserved.
dwFileType
Specifies the general type of file. This type can be one of the following values:
Value | Meaning |
VFT_UNKNOWN | File type is unknown to Windows. |
VFT_APP | File contains an application. |
VFT_DLL | File contains a dynamic-link library (DLL). |
VFT_DRV | File contains a device driver. If the dwFileType member is VFT_DRV, the dwFileSubtype member contains a more specific description of the driver. |
VFT_FONT | File contains a font. If the dwFileType member is VFT_FONT, the dwFileSubtype member contains a more specific description of the font. |
VFT_VXD | File contains a virtual device. |
VFT_STATIC_LIB | File contains a static-link library. |
All other values are reserved for use by Microsoft.
dwFileSubtype
Specifies the function of the file. This member is zero unless the dwFileType member is VFT_DRV, VFT_FONT, or VFT_VXD.
If dwFileType is VFT_DRV, dwFileSubtype may be one of the following values:
Value | Meaning |
VFT2_UNKNOWN | Driver type is unknown to Windows. |
VFT2_DRV_COMM | File contains a communications driver. |
VFT2_DRV_PRINTER | File contains a printer driver. |
VFT2_DRV_KEYBOARD | File contains a keyboard driver. |
VFT2_DRV_LANGUAGE | File contains a language driver. |
VFT2_DRV_DISPLAY | File contains a display driver. |
VFT2_DRV_MOUSE | File contains a mouse driver. |
VFT2_DRV_NETWORK | File contains a network driver. |
VFT2_DRV_SYSTEM | File contains a system driver. |
VFT2_DRV_INSTALLABLE | File contains an installable driver. |
VFT2_DRV_SOUND | File contains a sound driver. |
If dwFileType is VFT_FONT, dwFileSubtype may be one of the following values:
Value | Meaning |
VFT2_UNKNOWN | Font type is unknown to Windows. |
VFT2_FONT_RASTER | File contains a raster font. |
VFT2_FONT_VECTOR | File contains a vector font. |
VFT2_FONT_TRUETYPE | File contains a TrueType font. |
If dwFileType is VFT_VXD, dwFileSubtype contains the virtual-device identifier included in the virtual-device control block.
All dwFileSubtype values not listed here are reserved for use by Microsoft.
dwFileDateMS
Specifies the high-order 32 bits of a binary date/time stamp for the file. The value of this member is used with the value of the dwFileDateLS member to form a 64-bit number representing the date and time the file was created.
dwFileDateLS
Specifies the low-order 32 bits of a binary date/time stamp for the file. The value of this member is used with the dwFileDateMS value to form a 64-bit number representing the date and time the file was created.
The binary version numbers specified in this structure are intended to be integers rather than character strings. For a file or product that has decimal points or letters in its version number, the corresponding binary version number should be a reasonable numeric representation.
A third-party developer can use the file-version values to reflect a private version-numbering scheme, as long as each new version of the product has a higher number than the previous version. The File Installation library functions use these values when comparing the ages of files.
Microsoft Windows Resource Compiler sets the dwFileDateMS and dwFileDateLS members to zero.