1/** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6#ifndef VER_H 7#define VER_H 8 9#include <_mingw.h> 10#include <_mingw_unicode.h> 11 12#ifdef __cplusplus 13extern "C" { 14#endif 15 16#define VS_FILE_INFO RT_VERSION 17#define VS_VERSION_INFO 1 18#define VS_USER_DEFINED 100 19 20#define VS_FFI_SIGNATURE __MSABI_LONG(0xFEEF04BD) 21#define VS_FFI_STRUCVERSION __MSABI_LONG(0x00010000) 22#define VS_FFI_FILEFLAGSMASK __MSABI_LONG(0x0000003F) 23 24#define VS_FF_DEBUG __MSABI_LONG(0x00000001) 25#define VS_FF_PRERELEASE __MSABI_LONG(0x00000002) 26#define VS_FF_PATCHED __MSABI_LONG(0x00000004) 27#define VS_FF_PRIVATEBUILD __MSABI_LONG(0x00000008) 28#define VS_FF_INFOINFERRED __MSABI_LONG(0x00000010) 29#define VS_FF_SPECIALBUILD __MSABI_LONG(0x00000020) 30 31#define VOS_UNKNOWN __MSABI_LONG(0x00000000) 32#define VOS_DOS __MSABI_LONG(0x00010000) 33#define VOS_OS216 __MSABI_LONG(0x00020000) 34#define VOS_OS232 __MSABI_LONG(0x00030000) 35#define VOS_NT __MSABI_LONG(0x00040000) 36#define VOS_WINCE __MSABI_LONG(0x00050000) 37 38#define VOS__BASE __MSABI_LONG(0x00000000) 39#define VOS__WINDOWS16 __MSABI_LONG(0x00000001) 40#define VOS__PM16 __MSABI_LONG(0x00000002) 41#define VOS__PM32 __MSABI_LONG(0x00000003) 42#define VOS__WINDOWS32 __MSABI_LONG(0x00000004) 43 44#define VOS_DOS_WINDOWS16 __MSABI_LONG(0x00010001) 45#define VOS_DOS_WINDOWS32 __MSABI_LONG(0x00010004) 46#define VOS_OS216_PM16 __MSABI_LONG(0x00020002) 47#define VOS_OS232_PM32 __MSABI_LONG(0x00030003) 48#define VOS_NT_WINDOWS32 __MSABI_LONG(0x00040004) 49 50#define VFT_UNKNOWN __MSABI_LONG(0x00000000) 51#define VFT_APP __MSABI_LONG(0x00000001) 52#define VFT_DLL __MSABI_LONG(0x00000002) 53#define VFT_DRV __MSABI_LONG(0x00000003) 54#define VFT_FONT __MSABI_LONG(0x00000004) 55#define VFT_VXD __MSABI_LONG(0x00000005) 56#define VFT_STATIC_LIB __MSABI_LONG(0x00000007) 57 58#define VFT2_UNKNOWN __MSABI_LONG(0x00000000) 59#define VFT2_DRV_PRINTER __MSABI_LONG(0x00000001) 60#define VFT2_DRV_KEYBOARD __MSABI_LONG(0x00000002) 61#define VFT2_DRV_LANGUAGE __MSABI_LONG(0x00000003) 62#define VFT2_DRV_DISPLAY __MSABI_LONG(0x00000004) 63#define VFT2_DRV_MOUSE __MSABI_LONG(0x00000005) 64#define VFT2_DRV_NETWORK __MSABI_LONG(0x00000006) 65#define VFT2_DRV_SYSTEM __MSABI_LONG(0x00000007) 66#define VFT2_DRV_INSTALLABLE __MSABI_LONG(0x00000008) 67#define VFT2_DRV_SOUND __MSABI_LONG(0x00000009) 68#define VFT2_DRV_COMM __MSABI_LONG(0x0000000A) 69#define VFT2_DRV_INPUTMETHOD __MSABI_LONG(0x0000000B) 70#define VFT2_DRV_VERSIONED_PRINTER __MSABI_LONG(0x0000000C) 71 72#define VFT2_FONT_RASTER __MSABI_LONG(0x00000001) 73#define VFT2_FONT_VECTOR __MSABI_LONG(0x00000002) 74#define VFT2_FONT_TRUETYPE __MSABI_LONG(0x00000003) 75 76#define VFFF_ISSHAREDFILE 0x0001 77 78#define VFF_CURNEDEST 0x0001 79#define VFF_FILEINUSE 0x0002 80#define VFF_BUFFTOOSMALL 0x0004 81 82#define VIFF_FORCEINSTALL 0x0001 83#define VIFF_DONTDELETEOLD 0x0002 84 85#define VIF_TEMPFILE __MSABI_LONG(0x00000001) 86#define VIF_MISMATCH __MSABI_LONG(0x00000002) 87#define VIF_SRCOLD __MSABI_LONG(0x00000004) 88 89#define VIF_DIFFLANG __MSABI_LONG(0x00000008) 90#define VIF_DIFFCODEPG __MSABI_LONG(0x00000010) 91#define VIF_DIFFTYPE __MSABI_LONG(0x00000020) 92 93#define VIF_WRITEPROT __MSABI_LONG(0x00000040) 94#define VIF_FILEINUSE __MSABI_LONG(0x00000080) 95#define VIF_OUTOFSPACE __MSABI_LONG(0x00000100) 96#define VIF_ACCESSVIOLATION __MSABI_LONG(0x00000200) 97#define VIF_SHARINGVIOLATION __MSABI_LONG(0x00000400) 98#define VIF_CANNOTCREATE __MSABI_LONG(0x00000800) 99#define VIF_CANNOTDELETE __MSABI_LONG(0x00001000) 100#define VIF_CANNOTRENAME __MSABI_LONG(0x00002000) 101#define VIF_CANNOTDELETECUR __MSABI_LONG(0x00004000) 102#define VIF_OUTOFMEMORY __MSABI_LONG(0x00008000) 103 104#define VIF_CANNOTREADSRC __MSABI_LONG(0x00010000) 105#define VIF_CANNOTREADDST __MSABI_LONG(0x00020000) 106 107#define VIF_BUFFTOOSMALL __MSABI_LONG(0x00040000) 108#define VIF_CANNOTLOADLZ32 __MSABI_LONG(0x00080000) 109#define VIF_CANNOTLOADCABINET __MSABI_LONG(0x00100000) 110 111#ifndef RC_INVOKED 112 113 typedef struct tagVS_FIXEDFILEINFO 114 { 115 DWORD dwSignature; 116 DWORD dwStrucVersion; 117 DWORD dwFileVersionMS; 118 DWORD dwFileVersionLS; 119 DWORD dwProductVersionMS; 120 DWORD dwProductVersionLS; 121 DWORD dwFileFlagsMask; 122 DWORD dwFileFlags; 123 DWORD dwFileOS; 124 DWORD dwFileType; 125 DWORD dwFileSubtype; 126 DWORD dwFileDateMS; 127 DWORD dwFileDateLS; 128 } VS_FIXEDFILEINFO; 129 130#define VerFindFile __MINGW_NAME_AW(VerFindFile) 131#define VerInstallFile __MINGW_NAME_AW(VerInstallFile) 132#define GetFileVersionInfoSize __MINGW_NAME_AW(GetFileVersionInfoSize) 133#define GetFileVersionInfo __MINGW_NAME_AW(GetFileVersionInfo) 134#define VerLanguageName __MINGW_NAME_AW(VerLanguageName) 135#define VerQueryValue __MINGW_NAME_AW(VerQueryValue) 136 137 DWORD WINAPI VerFindFileA(DWORD uFlags,LPSTR szFileName,LPSTR szWinDir,LPSTR szAppDir,LPSTR szCurDir,PUINT lpuCurDirLen,LPSTR szDestDir,PUINT lpuDestDirLen); 138 DWORD WINAPI VerFindFileW(DWORD uFlags,LPWSTR szFileName,LPWSTR szWinDir,LPWSTR szAppDir,LPWSTR szCurDir,PUINT lpuCurDirLen,LPWSTR szDestDir,PUINT lpuDestDirLen); 139 DWORD WINAPI VerInstallFileA(DWORD uFlags,LPSTR szSrcFileName,LPSTR szDestFileName,LPSTR szSrcDir,LPSTR szDestDir,LPSTR szCurDir,LPSTR szTmpFile,PUINT lpuTmpFileLen); 140 DWORD WINAPI VerInstallFileW(DWORD uFlags,LPWSTR szSrcFileName,LPWSTR szDestFileName,LPWSTR szSrcDir,LPWSTR szDestDir,LPWSTR szCurDir,LPWSTR szTmpFile,PUINT lpuTmpFileLen); 141 DWORD WINAPI GetFileVersionInfoSizeA(LPCSTR lptstrFilename,LPDWORD lpdwHandle); 142 DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR lptstrFilename,LPDWORD lpdwHandle); 143 WINBOOL WINAPI GetFileVersionInfoA(LPCSTR lptstrFilename,DWORD dwHandle,DWORD dwLen,LPVOID lpData); 144 WINBOOL WINAPI GetFileVersionInfoW(LPCWSTR lptstrFilename,DWORD dwHandle,DWORD dwLen,LPVOID lpData); 145 DWORD WINAPI VerLanguageNameA(DWORD wLang,LPSTR szLang,DWORD nSize); 146 DWORD WINAPI VerLanguageNameW(DWORD wLang,LPWSTR szLang,DWORD nSize); 147 WINBOOL WINAPI VerQueryValueA(const LPVOID pBlock,LPCSTR lpSubBlock,LPVOID *lplpBuffer,PUINT puLen); 148 WINBOOL WINAPI VerQueryValueW(const LPVOID pBlock,LPCWSTR lpSubBlock,LPVOID *lplpBuffer,PUINT puLen); 149#endif 150 151#ifdef __cplusplus 152} 153#endif 154#endif 155