Differences From Artifact [e2bb31df25854a97]:
- File
src/win32/winver.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
To Artifact [4fd71adb18fd2e65]:
- File
src/win32/winver.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
> 1 /***********************************************************************\
> 2 * winver.d *
> 3 * *
> 4 * Windows API header module *
> 5 * *
> 6 * Translated from MinGW Windows headers *
> 7 * by Stewart Gordon *
> 8 * *
> 9 * Placed into public domain *
> 10 \***********************************************************************/
1 module win32.winver; 11 module win32.winver;
2 12
3 // Translated from Microsoft Platform SDK August 2001 Edition | 13 private import win32.windef;
4 // by Y.Tomino <
> 14
> 15 // FIXME: type weirdness
> 16 enum {
> 17 VS_FILE_INFO = 16,
> 18 VS_VERSION_INFO = 1,
> 19 VS_USER_DEFINED = 100
> 20 }
> 21
> 22 enum {
> 23 VS_FFI_SIGNATURE = 0xFEEF04BD,
> 24 VS_FFI_STRUCVERSION = 0x10000,
> 25 VS_FFI_FILEFLAGSMASK = 0x3F
> 26 }
5 27
6 import win32.winuser; | 28 enum {
> 29 VS_FF_DEBUG = 1,
> 30 VS_FF_PRERELEASE = 2,
> 31 VS_FF_PATCHED = 4,
> 32 VS_FF_PRIVATEBUILD = 8,
> 33 VS_FF_INFOINFERRED = 16,
> 34 VS_FF_SPECIALBUILD = 32
> 35 }
7 36
8 // #ifndef VER_H | 37 enum {
9 // #define VER_H | 38 VOS_UNKNOWN = 0,
> 39 VOS_DOS = 0x10000,
> 40 VOS_OS216 = 0x20000,
> 41 VOS_OS232 = 0x30000,
> 42 VOS_NT = 0x40000,
> 43 VOS__BASE = 0,
> 44 VOS__WINDOWS16 = 1,
> 45 VOS__PM16 = 2,
> 46 VOS__PM32 = 3,
> 47 VOS__WINDOWS32 = 4,
> 48 VOS_DOS_WINDOWS16 = 0x10001,
> 49 VOS_DOS_WINDOWS32 = 0x10004,
> 50 VOS_OS216_PM16 = 0x20002,
> 51 VOS_OS232_PM32 = 0x30003,
> 52 VOS_NT_WINDOWS32 = 0x40004
> 53 }
10 54
11 // #ifdef __cplusplus | 55 enum {
12 // extern "C" { | 56 VFT_UNKNOWN = 0,
13 // #endif | 57 VFT_APP = 1,
> 58 VFT_DLL = 2,
> 59 VFT_DRV = 3,
> 60 VFT_FONT = 4,
> 61 VFT_VXD = 5,
> 62 VFT_STATIC_LIB = 7
> 63 }
14 64
15 alias RT_VERSION VS_FILE_INFO; | 65 enum {
16 enum : uint { VS_VERSION_INFO = 1 } | 66 VFT2_UNKNOWN = 0,
17 enum : uint { VS_USER_DEFINED = 100 } | 67 VFT2_DRV_PRINTER = 1,
> 68 VFT2_DRV_KEYBOARD = 2,
> 69 VFT2_DRV_LANGUAGE = 3,
> 70 VFT2_DRV_DISPLAY = 4,
> 71 VFT2_DRV_MOUSE = 5,
> 72 VFT2_DRV_NETWORK = 6,
> 73 VFT2_DRV_SYSTEM = 7,
> 74 VFT2_DRV_INSTALLABLE = 8,
> 75 VFT2_DRV_SOUND = 9,
> 76 VFT2_DRV_COMM = 10,
> 77 VFT2_DRV_INPUTMETHOD = 11,
> 78 VFT2_FONT_RASTER = 1,
> 79 VFT2_FONT_VECTOR = 2,
> 80 VFT2_FONT_TRUETYPE = 3
> 81 }
18 82
19 // #ifndef _MAC | 83 enum : DWORD {
20 enum : uint { VS_FFI_SIGNATURE = 0xFEEF04BD } | 84 VFFF_ISSHAREDFILE = 1
21 // #else <
22 // #... <
23 // #endif <
24 enum : uint { VS_FFI_STRUCVERSION = 0x00010000 } <
25 enum : uint { VS_FFI_FILEFLAGSMASK = 0x0000003F } <
> 85 }
26 86
27 enum : uint { VS_FF_DEBUG = 0x00000001 } | 87 enum : DWORD {
28 enum : uint { VS_FF_PRERELEASE = 0x00000002 } | 88 VFF_CURNEDEST = 1,
29 enum : uint { VS_FF_PATCHED = 0x00000004 } | 89 VFF_FILEINUSE = 2,
30 enum : uint { VS_FF_PRIVATEBUILD = 0x00000008 } | 90 VFF_BUFFTOOSMALL = 4
31 enum : uint { VS_FF_INFOINFERRED = 0x00000010 } <
32 enum : uint { VS_FF_SPECIALBUILD = 0x00000020 } <
33 | 91 }
34 enum : uint { VOS_UNKNOWN = 0x00000000 } <
35 enum : uint { VOS_DOS = 0x00010000 } <
36 enum : uint { VOS_OS216 = 0x00020000 } <
37 enum : uint { VOS_OS232 = 0x00030000 } <
38 enum : uint { VOS_NT = 0x00040000 } <
39 92
40 enum : uint { VOS__BASE = 0x00000000 } | 93 enum : DWORD {
41 enum : uint { VOS__WINDOWS16 = 0x00000001 } | 94 VIFF_FORCEINSTALL = 1,
42 enum : uint { VOS__PM16 = 0x00000002 } | 95 VIFF_DONTDELETEOLD
43 enum : uint { VOS__PM32 = 0x00000003 } <
44 enum : uint { VOS__WINDOWS32 = 0x00000004 } <
45 | 96 }
46 enum : uint { VOS_DOS_WINDOWS16 = 0x00010001 } <
47 enum : uint { VOS_DOS_WINDOWS32 = 0x00010004 } <
48 enum : uint { VOS_OS216_PM16 = 0x00020002 } <
49 enum : uint { VOS_OS232_PM32 = 0x00030003 } <
50 enum : uint { VOS_NT_WINDOWS32 = 0x00040004 } <
51 97
52 enum : uint { VFT_UNKNOWN = 0x00000000 } | 98 enum {
53 enum : uint { VFT_APP = 0x00000001 } | 99 VIF_TEMPFILE = 0x00001,
54 enum : uint { VFT_DLL = 0x00000002 } | 100 VIF_MISMATCH = 0x00002,
55 enum : uint { VFT_DRV = 0x00000003 } | 101 VIF_SRCOLD = 0x00004,
56 enum : uint { VFT_FONT = 0x00000004 } | 102 VIF_DIFFLANG = 0x00008,
57 enum : uint { VFT_VXD = 0x00000005 } | 103 VIF_DIFFCODEPG = 0x00010,
58 enum : uint { VFT_STATIC_LIB = 0x00000007 } | 104 VIF_DIFFTYPE = 0x00020,
> 105 VIF_WRITEPROT = 0x00040,
> 106 VIF_FILEINUSE = 0x00080,
> 107 VIF_OUTOFSPACE = 0x00100,
> 108 VIF_ACCESSVIOLATION = 0x00200,
> 109 VIF_SHARINGVIOLATION = 0x00400,
> 110 VIF_CANNOTCREATE = 0x00800,
> 111 VIF_CANNOTDELETE = 0x01000,
> 112 VIF_CANNOTRENAME = 0x02000,
> 113 VIF_CANNOTDELETECUR = 0x04000,
> 114 VIF_OUTOFMEMORY = 0x08000,
> 115 VIF_CANNOTREADSRC = 0x10000,
> 116 VIF_CANNOTREADDST = 0x20000,
> 117 VIF_BUFFTOOSMALL = 0x40000
> 118 }
59 119
60 enum : uint { VFT2_UNKNOWN = 0x00000000 } | 120 struct VS_FIXEDFILEINFO {
61 enum : uint { VFT2_DRV_PRINTER = 0x00000001 } | 121 DWORD dwSignature;
62 enum : uint { VFT2_DRV_KEYBOARD = 0x00000002 } | 122 DWORD dwStrucVersion;
63 enum : uint { VFT2_DRV_LANGUAGE = 0x00000003 } | 123 DWORD dwFileVersionMS;
64 enum : uint { VFT2_DRV_DISPLAY = 0x00000004 } | 124 DWORD dwFileVersionLS;
65 enum : uint { VFT2_DRV_MOUSE = 0x00000005 } | 125 DWORD dwProductVersionMS;
66 enum : uint { VFT2_DRV_NETWORK = 0x00000006 } | 126 DWORD dwProductVersionLS;
67 enum : uint { VFT2_DRV_SYSTEM = 0x00000007 } | 127 DWORD dwFileFlagsMask;
68 enum : uint { VFT2_DRV_INSTALLABLE = 0x00000008 } | 128 DWORD dwFileFlags;
69 enum : uint { VFT2_DRV_SOUND = 0x00000009 } | 129 DWORD dwFileOS;
70 enum : uint { VFT2_DRV_COMM = 0x0000000A } | 130 DWORD dwFileType;
71 enum : uint { VFT2_DRV_INPUTMETHOD = 0x0000000B } | 131 DWORD dwFileSubtype;
72 enum : uint { VFT2_DRV_VERSIONED_PRINTER = 0x0000000C } | 132 DWORD dwFileDateMS;
> 133 DWORD dwFileDateLS;
73 | 134 }
74 enum : uint { VFT2_FONT_RASTER = 0x00000001 } <
75 enum : uint { VFT2_FONT_VECTOR = 0x00000002 } <
76 enum : uint { VFT2_FONT_TRUETYPE = 0x00000003 } <
77 <
78 enum : uint { VFFF_ISSHAREDFILE = 0x0001 } <
79 <
80 enum : uint { VFF_CURNEDEST = 0x0001 } <
81 enum : uint { VFF_FILEINUSE = 0x0002 } <
82 enum : uint { VFF_BUFFTOOSMALL = 0x0004 } <
83 <
84 enum : uint { VIFF_FORCEINSTALL = 0x0001 } <
85 enum : uint { VIFF_DONTDELETEOLD = 0x0002 } <
86 <
87 enum : uint { VIF_TEMPFILE = 0x00000001 } <
88 enum : uint { VIF_MISMATCH = 0x00000002 } <
89 enum : uint { VIF_SRCOLD = 0x00000004 } <
90 <
91 enum : uint { VIF_DIFFLANG = 0x00000008 } <
92 enum : uint { VIF_DIFFCODEPG = 0x00000010 } <
93 enum : uint { VIF_DIFFTYPE = 0x00000020 } <
94 <
95 enum : uint { VIF_WRITEPROT = 0x00000040 } <
96 enum : uint { VIF_FILEINUSE = 0x00000080 } <
97 enum : uint { VIF_OUTOFSPACE = 0x00000100 } <
98 enum : uint { VIF_ACCESSVIOLATION = 0x00000200 } <
99 enum : uint { VIF_SHARINGVIOLATION = 0x00000400 } <
100 enum : uint { VIF_CANNOTCREATE = 0x00000800 } <
101 enum : uint { VIF_CANNOTDELETE = 0x00001000 } <
102 enum : uint { VIF_CANNOTRENAME = 0x00002000 } <
103 enum : uint { VIF_CANNOTDELETECUR = 0x00004000 } <
104 enum : uint { VIF_OUTOFMEMORY = 0x00008000 } <
105 <
106 enum : uint { VIF_CANNOTREADSRC = 0x00010000 } <
107 enum : uint { VIF_CANNOTREADDST = 0x00020000 } <
108 <
109 enum : uint { VIF_BUFFTOOSMALL = 0x00040000 } <
110 enum : uint { VIF_CANNOTLOADLZ32 = 0x00080000 } <
111 enum : uint { VIF_CANNOTLOADCABINET = 0x00100000 } <
112 135
113 // #ifndef RC_INVOKED /* RC doesn't need to see the rest of this */ | 136 extern (Windows) {
114 <
> 137 DWORD VerFindFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPSTR, PUINT, LPSTR,
115 struct tagVS_FIXEDFILEINFO { | 138 PUINT);
116 DWORD dwSignature; | 139 DWORD VerFindFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, PUINT, LPWS
117 DWORD dwStrucVersion; <
> 140 PUINT);
118 DWORD dwFileVersionMS; | 141 DWORD VerInstallFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPS
119 DWORD dwFileVersionLS; <
> 142 PUINT);
120 DWORD dwProductVersionMS; | 143 DWORD VerInstallFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR
121 DWORD dwProductVersionLS; | 144 LPWSTR, PUINT);
122 DWORD dwFileFlagsMask; | 145 DWORD GetFileVersionInfoSizeA(LPCSTR, PDWORD);
123 DWORD dwFileFlags; | 146 DWORD GetFileVersionInfoSizeW(LPCWSTR, PDWORD);
124 DWORD dwFileOS; | 147 BOOL GetFileVersionInfoA(LPCSTR, DWORD, DWORD, PVOID);
125 DWORD dwFileType; | 148 BOOL GetFileVersionInfoW(LPCWSTR, DWORD, DWORD, PVOID);
126 DWORD dwFileSubtype; | 149 DWORD VerLanguageNameA(DWORD, LPSTR, DWORD);
127 DWORD dwFileDateMS; | 150 DWORD VerLanguageNameW(DWORD, LPWSTR, DWORD);
128 DWORD dwFileDateLS; | 151 BOOL VerQueryValueA(LPCVOID, LPCSTR, LPVOID*, PUINT);
> 152 BOOL VerQueryValueW(LPCVOID, LPCWSTR, LPVOID*, PUINT);
129 } 153 }
130 alias tagVS_FIXEDFILEINFO VS_FIXEDFILEINFO; <
131 154
132 extern(Windows) export DWORD VerFindFileA( | 155 version (Unicode) {
133 DWORD uFlags, <
134 LPSTR szFileName, <
135 LPSTR szWinDir, <
136 LPSTR szAppDir, <
137 LPSTR szCurDir, <
138 PUINT lpuCurDirLen, <
139 LPSTR szDestDir, <
140 PUINT lpuDestDirLen <
141 ); <
142 extern(Windows) export DWORD VerFindFileW( <
143 DWORD uFlags, <
144 LPWSTR szFileName, <
145 LPWSTR szWinDir, <
146 LPWSTR szAppDir, <
147 LPWSTR szCurDir, <
148 PUINT lpuCurDirLen, <
149 LPWSTR szDestDir, <
150 PUINT lpuDestDirLen <
151 ); <
152 // #ifdef UNICODE <
153 alias VerFindFileW VerFindFile; | 156 alias VerFindFileW VerFindFile;
154 // #else <
155 // #... <
156 // #endif // !UNICODE <
157 <
158 extern(Windows) export DWORD VerInstallFileA( <
159 DWORD uFlags, <
160 LPSTR szSrcFileName, <
161 LPSTR szDestFileName, <
162 LPSTR szSrcDir, <
163 LPSTR szDestDir, <
164 LPSTR szCurDir, <
165 LPSTR szTmpFile, <
166 PUINT lpuTmpFileLen <
167 ); <
168 extern(Windows) export DWORD VerInstallFileW( <
169 DWORD uFlags, <
170 LPWSTR szSrcFileName, <
171 LPWSTR szDestFileName, <
172 LPWSTR szSrcDir, <
173 LPWSTR szDestDir, <
174 LPWSTR szCurDir, <
175 LPWSTR szTmpFile, <
176 PUINT lpuTmpFileLen <
177 ); <
178 // #ifdef UNICODE <
> 157 alias VerQueryValueW VerQueryValue;
179 alias VerInstallFileW VerInstallFile; | 158 alias VerInstallFileW VerInstallFile;
180 // #else <
181 // #... <
182 // #endif // !UNICODE <
183 <
184 extern(Windows) export DWORD GetFileVersionInfoSizeA( <
185 LPSTR lptstrFilename, <
186 LPDWORD lpdwHandle <
187 ); <
188 <
189 extern(Windows) export DWORD GetFileVersionInfoSizeW( <
190 LPWSTR lptstrFilename, <
191 LPDWORD lpdwHandle <
192 ); <
193 // #ifdef UNICODE <
194 alias GetFileVersionInfoSizeW GetFileVersionInfoSize; | 159 alias GetFileVersionInfoSizeW GetFileVersionInfoSize;
195 // #else <
196 // #... <
197 // #endif // !UNICODE <
198 <
199 extern(Windows) export BOOL GetFileVersionInfoA( <
200 LPSTR lptstrFilename, <
201 DWORD dwHandle, <
202 DWORD dwLen, <
203 LPVOID lpData <
204 ); <
205 <
206 extern(Windows) export BOOL GetFileVersionInfoW( <
207 LPWSTR lptstrFilename, <
208 DWORD dwHandle, <
209 DWORD dwLen, <
210 LPVOID lpData <
211 ); <
212 // #ifdef UNICODE <
213 alias GetFileVersionInfoW GetFileVersionInfo; | 160 alias GetFileVersionInfoW GetFileVersionInfo;
214 // #else <
215 // #... <
216 // #endif // !UNICODE <
217 <
218 extern(Windows) export DWORD VerLanguageNameA( <
219 DWORD wLang, <
220 LPSTR szLang, <
221 DWORD nSize <
222 ); <
223 extern(Windows) export DWORD VerLanguageNameW( <
224 DWORD wLang, <
225 LPWSTR szLang, <
226 DWORD nSize <
227 ); <
228 // #ifdef UNICODE <
229 alias VerLanguageNameW VerLanguageName; | 161 alias VerLanguageNameW VerLanguageName;
230 // #else <
231 // #... <
232 // #endif // !UNICODE <
233 <
234 extern(Windows) export BOOL VerQueryValueA( <
235 LPVOID pBlock, <
236 LPSTR lpSubBlock, <
237 LPVOID * lplpBuffer, <
238 PUINT puLen <
239 ); <
240 extern(Windows) export BOOL VerQueryValueW( <
241 LPVOID pBlock, <
242 LPWSTR lpSubBlock, <
243 LPVOID * lplpBuffer, <
244 PUINT puLen <
245 ); <
246 // #ifdef UNICODE <
247 alias VerQueryValueW VerQueryValue; | 162 alias VerQueryValueW VerQueryValue;
248 // #else | 163 } else {
249 // #... <
250 // #endif // !UNICODE <
> 164 alias VerQueryValueA VerQueryValue;
> 165 alias VerFindFileA VerFindFile;
> 166 alias VerInstallFileA VerInstallFile;
> 167 alias GetFileVersionInfoSizeA GetFileVersionInfoSize;
> 168 alias GetFileVersionInfoA GetFileVersionInfo;
> 169 alias VerLanguageNameA VerLanguageName;
> 170 alias VerQueryValueA VerQueryValue;
251 | 171 }
252 // #endif /* !RC_INVOKED */ <
253 <
254 // #ifdef __cplusplus <
255 // } <
256 // #endif <
257 <
258 // #endif /* !VER_H */ <
259 <