comparison win32/w32api.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
comparison
equal deleted inserted replaced
0:586e4a649642 1:4a9dcbd9e54f
1 /***********************************************************************\
2 * w32api.d *
3 * *
4 * Windows API header module *
5 * *
6 * Translated from MinGW API for MS-Windows 3.12 *
7 * by Stewart Gordon *
8 * *
9 * Placed into public domain *
10 \***********************************************************************/
11 module win32.w32api;
12
13 const __W32API_VERSION = 3.12;
14 const __W32API_MAJOR_VERSION = 3;
15 const __W32API_MINOR_VERSION = 12;
16
17 /* These version identifiers are used to specify the minimum version of
18 * Windows that an application will support.
19 *
20 * The programmer should set two version identifiers: one for the
21 * minimum Windows NT version and one for the minimum Windows 9x
22 * version. If no Windows NT version is specified, Windows NT 4 is
23 * assumed. If no Windows 9x version is specified, Windows 95 is
24 * assumed, unless WindowsNTonly, WindowsXP, Windows2003 or WindowsVista
25 * is specified, implying that the application supports only the NT line of
26 * versions.
27 */
28
29 /* For Windows XP and later, assume no Windows 9x support.
30 * API features new to Windows Vista are not yet included in this
31 * translation or in MinGW, but this is here ready to start adding them.
32 */
33 version (WindowsVista) {
34 const uint
35 _WIN32_WINNT = 0x600,
36 _WIN32_WINDOWS = uint.max;
37
38 } else version (Windows2003) {
39 const uint
40 _WIN32_WINNT = 0x502,
41 _WIN32_WINDOWS = uint.max;
42
43 } else version (WindowsXP) {
44 const uint
45 _WIN32_WINNT = 0x501,
46 _WIN32_WINDOWS = uint.max;
47
48 } else {
49 /* for earlier Windows versions, separate version identifiers into
50 * the NT and 9x lines
51 */
52 version (Windows2000) {
53 const uint _WIN32_WINNT = 0x500;
54 } else {
55 const uint _WIN32_WINNT = 0x400;
56 }
57
58 version (WindowsNTonly) {
59 const uint _WIN32_WINDOWS = uint.max;
60 } else version (WindowsME) {
61 const uint _WIN32_WINDOWS = 0x500;
62 } else version (Windows98) {
63 const uint _WIN32_WINDOWS = 0x410;
64 } else {
65 const uint _WIN32_WINDOWS = 0x400;
66 }
67 }
68
69 // Just a bit of syntactic sugar for the static ifs
70 const uint WINVER = _WIN32_WINDOWS < _WIN32_WINNT ?
71 _WIN32_WINDOWS : _WIN32_WINNT;
72 const bool _WIN32_WINNT_ONLY = _WIN32_WINDOWS == uint.max;
73
74 version (IE7) {
75 const uint _WIN32_IE = 0x700;
76 } else version (IE602) {
77 const uint _WIN32_IE = 0x603;
78 } else version (IE601) {
79 const uint _WIN32_IE = 0x601;
80 } else version (IE6) {
81 const uint _WIN32_IE = 0x600;
82 } else version (IE56) {
83 const uint _WIN32_IE = 0x560;
84 } else version (IE501) {
85 const uint _WIN32_IE = 0x501;
86 } else version (IE5) {
87 const uint _WIN32_IE = 0x500;
88 } else version (IE401) {
89 const uint _WIN32_IE = 0x401;
90 } else version (IE4) {
91 const uint _WIN32_IE = 0x400;
92 } else version (IE3) {
93 const uint _WIN32_IE = 0x300;
94 } else static if (WINVER >= 0x410) {
95 const uint _WIN32_IE = 0x400;
96 } else {
97 const uint _WIN32_IE = 0;
98 }
99
100 debug (WindowsUnitTest) {
101 unittest {
102 printf("Windows NT version: %03x\n", _WIN32_WINNT);
103 printf("Windows 9x version: %03x\n", _WIN32_WINDOWS);
104 printf("IE version: %03x\n", _WIN32_IE);
105 }
106 }