--- mstools/h/winver.h 2018/08/09 18:20:01 1.1 +++ mstools/h/winver.h 2018/08/09 18:21:14 1.1.1.3 @@ -1,21 +1,22 @@ -/************************************************************************** - * VER.H - * - * Include file for VER.DLL and VER.LIB. These libraries are - * designed to allow version stamping of Windows executable files - * and of special .VER files for DOS executable files. - * - * The API is unchanged for LIB and DLL versions. - * - **************************************************************************/ +/*****************************************************************************\ +* * +* winver.h - Version management functions, types, and definitions * +* * +* Include file for VER.DLL. This library is * +* designed to allow version stamping of Windows executable files* +* and of special .VER files for DOS executable files. * +* * +* Copyright (c) 1992, Microsoft Corp. All rights reserved * +* * +\*****************************************************************************/ #ifndef VER_H #define VER_H /* ----- Symbols ----- */ #define VS_FILE_INFO RT_VERSION -#define VS_VERSION_INFO MAKEINTRESOURCE(1) -#define VS_USER_DEFINED MAKEINTRESOURCE(100) +#define VS_VERSION_INFO 1 +#define VS_USER_DEFINED 100 /* ----- VS_VERSION.dwFileFlags ----- */ #define VS_FFI_SIGNATURE 0xFEEF04BDL @@ -69,6 +70,7 @@ #define VFT2_DRV_SYSTEM 0x00000007L #define VFT2_DRV_INSTALLABLE 0x00000008L #define VFT2_DRV_SOUND 0x00000009L +#define VFT2_DRV_COMM 0x0000000AL /* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_FONT ----- */ #define VFT2_FONT_RASTER 0x00000001L @@ -110,28 +112,174 @@ #define VIF_BUFFTOOSMALL 0x00040000L -#ifndef RC_INVOKED /* RC doesn't need to see the rest of this */ +#ifndef RC_INVOKED /* RC doesn't need to see the rest of this */ /* ----- Types and structures ----- */ typedef struct tagVS_FIXEDFILEINFO { - DWORD dwSignature; /* e.g. 0xfeef04bd */ - DWORD dwStrucVersion; /* e.g. 0x00000042 = "0.42" */ - DWORD dwFileVersionMS; /* e.g. 0x00030075 = "3.75" */ - DWORD dwFileVersionLS; /* e.g. 0x00000031 = "0.31" */ - DWORD dwProductVersionMS; /* e.g. 0x00030010 = "3.10" */ - DWORD dwProductVersionLS; /* e.g. 0x00000031 = "0.31" */ - DWORD dwFileFlagsMask; /* = 0x3F for version "0.42" */ - DWORD dwFileFlags; /* e.g. VFF_DEBUG | VFF_PRERELEASE */ - DWORD dwFileOS; /* e.g. VOS_DOS_WINDOWS16 */ - DWORD dwFileType; /* e.g. VFT_DRIVER */ - DWORD dwFileSubtype; /* e.g. VFT2_DRV_KEYBOARD */ - DWORD dwFileDateMS; /* e.g. 0 */ - DWORD dwFileDateLS; /* e.g. 0 */ + DWORD dwSignature; /* e.g. 0xfeef04bd */ + DWORD dwStrucVersion; /* e.g. 0x00000042 = "0.42" */ + DWORD dwFileVersionMS; /* e.g. 0x00030075 = "3.75" */ + DWORD dwFileVersionLS; /* e.g. 0x00000031 = "0.31" */ + DWORD dwProductVersionMS; /* e.g. 0x00030010 = "3.10" */ + DWORD dwProductVersionLS; /* e.g. 0x00000031 = "0.31" */ + DWORD dwFileFlagsMask; /* = 0x3F for version "0.42" */ + DWORD dwFileFlags; /* e.g. VFF_DEBUG | VFF_PRERELEASE */ + DWORD dwFileOS; /* e.g. VOS_DOS_WINDOWS16 */ + DWORD dwFileType; /* e.g. VFT_DRIVER */ + DWORD dwFileSubtype; /* e.g. VFT2_DRV_KEYBOARD */ + DWORD dwFileDateMS; /* e.g. 0 */ + DWORD dwFileDateLS; /* e.g. 0 */ } VS_FIXEDFILEINFO; -#endif /* ifndef RC_INVOKED */ +/* ----- Function prototypes ----- */ -#endif /* ifndef VER_H */ +DWORD +APIENTRY +VerFindFileA( + DWORD uFlags, + LPSTR szFileName, + LPSTR szWinDir, + LPSTR szAppDir, + LPSTR szCurDir, + LPDWORD lpuCurDirLen, + LPSTR szDestDir, + LPDWORD lpuDestDirLen + ); +DWORD +APIENTRY +VerFindFileW( + DWORD uFlags, + LPWSTR szFileName, + LPWSTR szWinDir, + LPWSTR szAppDir, + LPWSTR szCurDir, + LPDWORD lpuCurDirLen, + LPWSTR szDestDir, + LPDWORD lpuDestDirLen + ); +#ifdef UNICODE +#define VerFindFile VerFindFileW +#else +#define VerFindFile VerFindFileA +#endif // !UNICODE + +DWORD +APIENTRY +VerInstallFileA( + DWORD uFlags, + LPSTR szSrcFileName, + LPSTR szDestFileName, + LPSTR szSrcDir, + LPSTR szDestDir, + LPSTR szCurDir, + LPSTR szTmpFile, + LPDWORD lpuTmpFileLen + ); +DWORD +APIENTRY +VerInstallFileW( + DWORD uFlags, + LPWSTR szSrcFileName, + LPWSTR szDestFileName, + LPWSTR szSrcDir, + LPWSTR szDestDir, + LPWSTR szCurDir, + LPWSTR szTmpFile, + LPDWORD lpuTmpFileLen + ); +#ifdef UNICODE +#define VerInstallFile VerInstallFileW +#else +#define VerInstallFile VerInstallFileA +#endif // !UNICODE + +/* Returns size of version info in bytes */ +DWORD +APIENTRY +GetFileVersionInfoSizeA( + LPSTR lptstrFilename, /* Filename of version stamped file */ + LPDWORD lpdwHandle + ); /* Information for use by GetFileVersionInfo */ +/* Returns size of version info in bytes */ +DWORD +APIENTRY +GetFileVersionInfoSizeW( + LPWSTR lptstrFilename, /* Filename of version stamped file */ + LPDWORD lpdwHandle + ); /* Information for use by GetFileVersionInfo */ +#ifdef UNICODE +#define GetFileVersionInfoSize GetFileVersionInfoSizeW +#else +#define GetFileVersionInfoSize GetFileVersionInfoSizeA +#endif // !UNICODE + +/* Read version info into buffer */ +BOOL +APIENTRY +GetFileVersionInfoA( + LPSTR lptstrFilename, /* Filename of version stamped file */ + DWORD dwHandle, /* Information from GetFileVersionSize */ + DWORD dwLen, /* Length of buffer for info */ + LPVOID lpData + ); /* Buffer to place the data structure */ +/* Read version info into buffer */ +BOOL +APIENTRY +GetFileVersionInfoW( + LPWSTR lptstrFilename, /* Filename of version stamped file */ + DWORD dwHandle, /* Information from GetFileVersionSize */ + DWORD dwLen, /* Length of buffer for info */ + LPVOID lpData + ); /* Buffer to place the data structure */ +#ifdef UNICODE +#define GetFileVersionInfo GetFileVersionInfoW +#else +#define GetFileVersionInfo GetFileVersionInfoA +#endif // !UNICODE + +DWORD +APIENTRY +VerLanguageNameA( + DWORD wLang, + LPSTR szLang, + DWORD nSize + ); +DWORD +APIENTRY +VerLanguageNameW( + DWORD wLang, + LPWSTR szLang, + DWORD nSize + ); +#ifdef UNICODE +#define VerLanguageName VerLanguageNameW +#else +#define VerLanguageName VerLanguageNameA +#endif // !UNICODE + +BOOL +APIENTRY +VerQueryValueA( + const LPVOID pBlock, + LPSTR lpSubBlock, + LPVOID * lplpBuffer, + LPDWORD lpuLen + ); +BOOL +APIENTRY +VerQueryValueW( + const LPVOID pBlock, + LPWSTR lpSubBlock, + LPVOID * lplpBuffer, + LPDWORD lpuLen + ); +#ifdef UNICODE +#define VerQueryValue VerQueryValueW +#else +#define VerQueryValue VerQueryValueA +#endif // !UNICODE +#endif /* !RC_INVOKED */ +#endif /* !VER_H */