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 11 module win32.winver;
2 12
3 -// Translated from Microsoft Platform SDK August 2001 Edition
4 -// by Y.Tomino
13 +private import win32.windef;
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
9 -// #define VER_H
37 +enum {
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
12 -// extern "C" {
13 -// #endif
55 +enum {
56 + VFT_UNKNOWN = 0,
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;
16 -enum : uint { VS_VERSION_INFO = 1 }
17 -enum : uint { VS_USER_DEFINED = 100 }
65 +enum {
66 + VFT2_UNKNOWN = 0,
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
20 -enum : uint { VS_FFI_SIGNATURE = 0xFEEF04BD }
21 -// #else
22 -// #...
23 -// #endif
24 -enum : uint { VS_FFI_STRUCVERSION = 0x00010000 }
25 -enum : uint { VS_FFI_FILEFLAGSMASK = 0x0000003F }
83 +enum : DWORD {
84 + VFFF_ISSHAREDFILE = 1
85 +}
26 86
27 -enum : uint { VS_FF_DEBUG = 0x00000001 }
28 -enum : uint { VS_FF_PRERELEASE = 0x00000002 }
29 -enum : uint { VS_FF_PATCHED = 0x00000004 }
30 -enum : uint { VS_FF_PRIVATEBUILD = 0x00000008 }
31 -enum : uint { VS_FF_INFOINFERRED = 0x00000010 }
32 -enum : uint { VS_FF_SPECIALBUILD = 0x00000020 }
33 -
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 }
87 +enum : DWORD {
88 + VFF_CURNEDEST = 1,
89 + VFF_FILEINUSE = 2,
90 + VFF_BUFFTOOSMALL = 4
91 +}
39 92
40 -enum : uint { VOS__BASE = 0x00000000 }
41 -enum : uint { VOS__WINDOWS16 = 0x00000001 }
42 -enum : uint { VOS__PM16 = 0x00000002 }
43 -enum : uint { VOS__PM32 = 0x00000003 }
44 -enum : uint { VOS__WINDOWS32 = 0x00000004 }
45 -
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 }
93 +enum : DWORD {
94 + VIFF_FORCEINSTALL = 1,
95 + VIFF_DONTDELETEOLD
96 +}
51 97
52 -enum : uint { VFT_UNKNOWN = 0x00000000 }
53 -enum : uint { VFT_APP = 0x00000001 }
54 -enum : uint { VFT_DLL = 0x00000002 }
55 -enum : uint { VFT_DRV = 0x00000003 }
56 -enum : uint { VFT_FONT = 0x00000004 }
57 -enum : uint { VFT_VXD = 0x00000005 }
58 -enum : uint { VFT_STATIC_LIB = 0x00000007 }
98 +enum {
99 + VIF_TEMPFILE = 0x00001,
100 + VIF_MISMATCH = 0x00002,
101 + VIF_SRCOLD = 0x00004,
102 + VIF_DIFFLANG = 0x00008,
103 + VIF_DIFFCODEPG = 0x00010,
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 }
61 -enum : uint { VFT2_DRV_PRINTER = 0x00000001 }
62 -enum : uint { VFT2_DRV_KEYBOARD = 0x00000002 }
63 -enum : uint { VFT2_DRV_LANGUAGE = 0x00000003 }
64 -enum : uint { VFT2_DRV_DISPLAY = 0x00000004 }
65 -enum : uint { VFT2_DRV_MOUSE = 0x00000005 }
66 -enum : uint { VFT2_DRV_NETWORK = 0x00000006 }
67 -enum : uint { VFT2_DRV_SYSTEM = 0x00000007 }
68 -enum : uint { VFT2_DRV_INSTALLABLE = 0x00000008 }
69 -enum : uint { VFT2_DRV_SOUND = 0x00000009 }
70 -enum : uint { VFT2_DRV_COMM = 0x0000000A }
71 -enum : uint { VFT2_DRV_INPUTMETHOD = 0x0000000B }
72 -enum : uint { VFT2_DRV_VERSIONED_PRINTER = 0x0000000C }
73 -
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 }
120 +struct VS_FIXEDFILEINFO {
121 + DWORD dwSignature;
122 + DWORD dwStrucVersion;
123 + DWORD dwFileVersionMS;
124 + DWORD dwFileVersionLS;
125 + DWORD dwProductVersionMS;
126 + DWORD dwProductVersionLS;
127 + DWORD dwFileFlagsMask;
128 + DWORD dwFileFlags;
129 + DWORD dwFileOS;
130 + DWORD dwFileType;
131 + DWORD dwFileSubtype;
132 + DWORD dwFileDateMS;
133 + DWORD dwFileDateLS;
134 +}
112 135
113 -// #ifndef RC_INVOKED /* RC doesn't need to see the rest of this */
114 -
115 -struct tagVS_FIXEDFILEINFO {
116 - DWORD dwSignature;
117 - DWORD dwStrucVersion;
118 - DWORD dwFileVersionMS;
119 - DWORD dwFileVersionLS;
120 - DWORD dwProductVersionMS;
121 - DWORD dwProductVersionLS;
122 - DWORD dwFileFlagsMask;
123 - DWORD dwFileFlags;
124 - DWORD dwFileOS;
125 - DWORD dwFileType;
126 - DWORD dwFileSubtype;
127 - DWORD dwFileDateMS;
128 - DWORD dwFileDateLS;
136 +extern (Windows) {
137 + DWORD VerFindFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPSTR, PUINT, LPSTR,
138 + PUINT);
139 + DWORD VerFindFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, PUINT, LPWSTR,
140 + PUINT);
141 + DWORD VerInstallFileA(DWORD, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPSTR,
142 + PUINT);
143 + DWORD VerInstallFileW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR,
144 + LPWSTR, PUINT);
145 + DWORD GetFileVersionInfoSizeA(LPCSTR, PDWORD);
146 + DWORD GetFileVersionInfoSizeW(LPCWSTR, PDWORD);
147 + BOOL GetFileVersionInfoA(LPCSTR, DWORD, DWORD, PVOID);
148 + BOOL GetFileVersionInfoW(LPCWSTR, DWORD, DWORD, PVOID);
149 + DWORD VerLanguageNameA(DWORD, LPSTR, DWORD);
150 + DWORD VerLanguageNameW(DWORD, LPWSTR, DWORD);
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(
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;
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
179 -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;
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;
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;
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;
248 -// #else
249 -// #...
250 -// #endif // !UNICODE
251 -
252 -// #endif /* !RC_INVOKED */
253 -
254 -// #ifdef __cplusplus
255 -// }
256 -// #endif
257 -
258 -// #endif /* !VER_H */
259 -
155 +version (Unicode) {
156 + alias VerFindFileW VerFindFile;
157 + alias VerQueryValueW VerQueryValue;
158 + alias VerInstallFileW VerInstallFile;
159 + alias GetFileVersionInfoSizeW GetFileVersionInfoSize;
160 + alias GetFileVersionInfoW GetFileVersionInfo;
161 + alias VerLanguageNameW VerLanguageName;
162 + alias VerQueryValueW VerQueryValue;
163 +} else {
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;
171 +}