diff options
Diffstat (limited to 'public/sdk/inc/winver.h')
-rw-r--r-- | public/sdk/inc/winver.h | 295 |
1 files changed, 295 insertions, 0 deletions
diff --git a/public/sdk/inc/winver.h b/public/sdk/inc/winver.h new file mode 100644 index 000000000..fe38a73cb --- /dev/null +++ b/public/sdk/inc/winver.h @@ -0,0 +1,295 @@ +/*****************************************************************************\ +* * +* 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) 1993-1996, Microsoft Corp. All rights reserved * +* * +\*****************************************************************************/ + +#ifndef VER_H +#define VER_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* ----- Symbols ----- */ +#define VS_FILE_INFO RT_VERSION +#define VS_VERSION_INFO 1 +#define VS_USER_DEFINED 100 + +/* ----- VS_VERSION.dwFileFlags ----- */ +#define VS_FFI_SIGNATURE 0xFEEF04BDL +#define VS_FFI_STRUCVERSION 0x00010000L +#define VS_FFI_FILEFLAGSMASK 0x0000003FL + +/* ----- VS_VERSION.dwFileFlags ----- */ +#define VS_FF_DEBUG 0x00000001L +#define VS_FF_PRERELEASE 0x00000002L +#define VS_FF_PATCHED 0x00000004L +#define VS_FF_PRIVATEBUILD 0x00000008L +#define VS_FF_INFOINFERRED 0x00000010L +#define VS_FF_SPECIALBUILD 0x00000020L + +/* ----- VS_VERSION.dwFileOS ----- */ +#define VOS_UNKNOWN 0x00000000L +#define VOS_DOS 0x00010000L +#define VOS_OS216 0x00020000L +#define VOS_OS232 0x00030000L +#define VOS_NT 0x00040000L + +#define VOS__BASE 0x00000000L +#define VOS__WINDOWS16 0x00000001L +#define VOS__PM16 0x00000002L +#define VOS__PM32 0x00000003L +#define VOS__WINDOWS32 0x00000004L + +#define VOS_DOS_WINDOWS16 0x00010001L +#define VOS_DOS_WINDOWS32 0x00010004L +#define VOS_OS216_PM16 0x00020002L +#define VOS_OS232_PM32 0x00030003L +#define VOS_NT_WINDOWS32 0x00040004L + +/* ----- VS_VERSION.dwFileType ----- */ +#define VFT_UNKNOWN 0x00000000L +#define VFT_APP 0x00000001L +#define VFT_DLL 0x00000002L +#define VFT_DRV 0x00000003L +#define VFT_FONT 0x00000004L +#define VFT_VXD 0x00000005L +#define VFT_STATIC_LIB 0x00000007L + +/* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV ----- */ +#define VFT2_UNKNOWN 0x00000000L +#define VFT2_DRV_PRINTER 0x00000001L +#define VFT2_DRV_KEYBOARD 0x00000002L +#define VFT2_DRV_LANGUAGE 0x00000003L +#define VFT2_DRV_DISPLAY 0x00000004L +#define VFT2_DRV_MOUSE 0x00000005L +#define VFT2_DRV_NETWORK 0x00000006L +#define VFT2_DRV_SYSTEM 0x00000007L +#define VFT2_DRV_INSTALLABLE 0x00000008L +#define VFT2_DRV_SOUND 0x00000009L +#define VFT2_DRV_COMM 0x0000000AL +#define VFT2_DRV_INPUTMETHOD 0x0000000BL + +/* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_FONT ----- */ +#define VFT2_FONT_RASTER 0x00000001L +#define VFT2_FONT_VECTOR 0x00000002L +#define VFT2_FONT_TRUETYPE 0x00000003L + +/* ----- VerFindFile() flags ----- */ +#define VFFF_ISSHAREDFILE 0x0001 + +#define VFF_CURNEDEST 0x0001 +#define VFF_FILEINUSE 0x0002 +#define VFF_BUFFTOOSMALL 0x0004 + +/* ----- VerInstallFile() flags ----- */ +#define VIFF_FORCEINSTALL 0x0001 +#define VIFF_DONTDELETEOLD 0x0002 + +#define VIF_TEMPFILE 0x00000001L +#define VIF_MISMATCH 0x00000002L +#define VIF_SRCOLD 0x00000004L + +#define VIF_DIFFLANG 0x00000008L +#define VIF_DIFFCODEPG 0x00000010L +#define VIF_DIFFTYPE 0x00000020L + +#define VIF_WRITEPROT 0x00000040L +#define VIF_FILEINUSE 0x00000080L +#define VIF_OUTOFSPACE 0x00000100L +#define VIF_ACCESSVIOLATION 0x00000200L +#define VIF_SHARINGVIOLATION 0x00000400L +#define VIF_CANNOTCREATE 0x00000800L +#define VIF_CANNOTDELETE 0x00001000L +#define VIF_CANNOTRENAME 0x00002000L +#define VIF_CANNOTDELETECUR 0x00004000L +#define VIF_OUTOFMEMORY 0x00008000L + +#define VIF_CANNOTREADSRC 0x00010000L +#define VIF_CANNOTREADDST 0x00020000L + +#define VIF_BUFFTOOSMALL 0x00040000L + +#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 */ +} VS_FIXEDFILEINFO; + +/* ----- Function prototypes ----- */ + +DWORD +APIENTRY +VerFindFileA( + DWORD uFlags, + LPSTR szFileName, + LPSTR szWinDir, + LPSTR szAppDir, + LPSTR szCurDir, + PUINT lpuCurDirLen, + LPSTR szDestDir, + PUINT lpuDestDirLen + ); +DWORD +APIENTRY +VerFindFileW( + DWORD uFlags, + LPWSTR szFileName, + LPWSTR szWinDir, + LPWSTR szAppDir, + LPWSTR szCurDir, + PUINT lpuCurDirLen, + LPWSTR szDestDir, + PUINT 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, + PUINT lpuTmpFileLen + ); +DWORD +APIENTRY +VerInstallFileW( + DWORD uFlags, + LPWSTR szSrcFileName, + LPWSTR szDestFileName, + LPWSTR szSrcDir, + LPWSTR szDestDir, + LPWSTR szCurDir, + LPWSTR szTmpFile, + PUINT 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, + PUINT puLen + ); +BOOL +APIENTRY +VerQueryValueW( + const LPVOID pBlock, + LPWSTR lpSubBlock, + LPVOID * lplpBuffer, + PUINT puLen + ); +#ifdef UNICODE +#define VerQueryValue VerQueryValueW +#else +#define VerQueryValue VerQueryValueA +#endif // !UNICODE + +#endif /* !RC_INVOKED */ + +#ifdef __cplusplus +} +#endif + +#endif /* !VER_H */ |