3 * @copy 2012 MinGW.org project
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 #pragma GCC system_header
33 #define VS_FILE_INFO RT_VERSION
34 #define VS_VERSION_INFO 1
35 #define VS_USER_DEFINED 100
36 #define VS_FFI_SIGNATURE 0xFEEF04BD
37 #define VS_FFI_STRUCVERSION 0x10000
38 #define VS_FFI_FILEFLAGSMASK 0x3F
40 #define VS_FF_PRERELEASE 2
41 #define VS_FF_PATCHED 4
42 #define VS_FF_PRIVATEBUILD 8
43 #define VS_FF_INFOINFERRED 16
44 #define VS_FF_SPECIALBUILD 32
46 #define VOS_DOS 0x10000
47 #define VOS_OS216 0x20000
48 #define VOS_OS232 0x30000
49 #define VOS_NT 0x40000
51 #define VOS__WINDOWS16 1
54 #define VOS__WINDOWS32 4
55 #define VOS_DOS_WINDOWS16 0x10001
56 #define VOS_DOS_WINDOWS32 0x10004
57 #define VOS_OS216_PM16 0x20002
58 #define VOS_OS232_PM32 0x30003
59 #define VOS_NT_WINDOWS32 0x40004
66 #define VFT_STATIC_LIB 7
67 #define VFT2_UNKNOWN 0
68 #define VFT2_DRV_PRINTER 1
69 #define VFT2_DRV_KEYBOARD 2
70 #define VFT2_DRV_LANGUAGE 3
71 #define VFT2_DRV_DISPLAY 4
72 #define VFT2_DRV_MOUSE 5
73 #define VFT2_DRV_NETWORK 6
74 #define VFT2_DRV_SYSTEM 7
75 #define VFT2_DRV_INSTALLABLE 8
76 #define VFT2_DRV_SOUND 9
77 #define VFT2_DRV_COMM 10
78 #define VFT2_DRV_INPUTMETHOD 11
79 #define VFT2_FONT_RASTER 1
80 #define VFT2_FONT_VECTOR 2
81 #define VFT2_FONT_TRUETYPE 3
82 #define VFFF_ISSHAREDFILE 1
83 #define VFF_CURNEDEST 1
84 #define VFF_FILEINUSE 2
85 #define VFF_BUFFTOOSMALL 4
86 #define VIFF_FORCEINSTALL 1
87 #define VIFF_DONTDELETEOLD 2
88 #define VIF_TEMPFILE 1
89 #define VIF_MISMATCH 2
91 #define VIF_DIFFLANG 8
92 #define VIF_DIFFCODEPG 16
93 #define VIF_DIFFTYPE 32
94 #define VIF_WRITEPROT 64
95 #define VIF_FILEINUSE 128
96 #define VIF_OUTOFSPACE 256
97 #define VIF_ACCESSVIOLATION 512
98 #define VIF_SHARINGVIOLATION 1024
99 #define VIF_CANNOTCREATE 2048
100 #define VIF_CANNOTDELETE 4096
101 #define VIF_CANNOTRENAME 8192
102 #define VIF_CANNOTDELETECUR 16384
103 #define VIF_OUTOFMEMORY 32768
104 #define VIF_CANNOTREADSRC 65536
105 #define VIF_CANNOTREADDST 0x20000
106 #define VIF_BUFFTOOSMALL 0x40000
109 typedef struct tagVS_FIXEDFILEINFO {
111 DWORD dwStrucVersion;
112 DWORD dwFileVersionMS;
113 DWORD dwFileVersionLS;
114 DWORD dwProductVersionMS;
115 DWORD dwProductVersionLS;
116 DWORD dwFileFlagsMask;
124 DWORD WINAPI VerFindFileA(DWORD,LPSTR,LPSTR,LPSTR,LPSTR,PUINT,LPSTR,PUINT);
125 DWORD WINAPI VerFindFileW(DWORD,LPWSTR,LPWSTR,LPWSTR,LPWSTR,PUINT,LPWSTR,PUINT);
126 DWORD WINAPI VerInstallFileA(DWORD,LPSTR,LPSTR,LPSTR,LPSTR,LPSTR,LPSTR,PUINT);
127 DWORD WINAPI VerInstallFileW(DWORD,LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR,PUINT);
128 DWORD WINAPI GetFileVersionInfoSizeA(LPCSTR,PDWORD);
129 DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR,PDWORD);
130 BOOL WINAPI GetFileVersionInfoA(LPCSTR,DWORD,DWORD,PVOID);
131 BOOL WINAPI GetFileVersionInfoW(LPCWSTR,DWORD,DWORD,PVOID);
132 DWORD WINAPI VerLanguageNameA(DWORD,LPSTR,DWORD);
133 DWORD WINAPI VerLanguageNameW(DWORD,LPWSTR,DWORD);
134 BOOL WINAPI VerQueryValueA(LPCVOID,LPCSTR,LPVOID*,PUINT);
135 BOOL WINAPI VerQueryValueW(LPCVOID,LPCWSTR,LPVOID*,PUINT);
137 #define VerFindFile __AW(VerFindFile)
138 #define VerQueryValue __AW(VerQueryValue)
139 #define VerInstallFile __AW(VerInstallFile)
140 #define GetFileVersionInfoSize __AW(GetFileVersionInfoSize)
141 #define GetFileVersionInfo __AW(GetFileVersionInfo)
142 #define VerLanguageName __AW(VerLanguageName)
143 #define VerQueryValue __AW(VerQueryValue)
144 #endif /* ! RC_INVOKED */