VS_FIXEDFILEINFO

3.1

#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.

Members

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.

Comments

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.

See Also

VerQueryValue