| 1 |
/***********************************************************************\ |
|---|
| 2 |
* w32api.d * |
|---|
| 3 |
* * |
|---|
| 4 |
* Windows API header module * |
|---|
| 5 |
* * |
|---|
| 6 |
* Translated from MinGW API for MS-Windows 3.10 * |
|---|
| 7 |
* by Stewart Gordon * |
|---|
| 8 |
* * |
|---|
| 9 |
* Placed into public domain * |
|---|
| 10 |
\***********************************************************************/ |
|---|
| 11 |
module win32.w32api; |
|---|
| 12 |
|
|---|
| 13 |
const __W32API_VERSION = 3.10; |
|---|
| 14 |
const __W32API_MAJOR_VERSION = 3; |
|---|
| 15 |
const __W32API_MINOR_VERSION = 10; |
|---|
| 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 (IE6) { |
|---|
| 75 |
const uint _WIN32_IE = 0x600; |
|---|
| 76 |
} else version (IE56) { |
|---|
| 77 |
const uint _WIN32_IE = 0x560; |
|---|
| 78 |
} else version (IE501) { |
|---|
| 79 |
const uint _WIN32_IE = 0x501; |
|---|
| 80 |
} else version (IE5) { |
|---|
| 81 |
const uint _WIN32_IE = 0x500; |
|---|
| 82 |
} else version (IE401) { |
|---|
| 83 |
const uint _WIN32_IE = 0x401; |
|---|
| 84 |
} else version (IE4) { |
|---|
| 85 |
const uint _WIN32_IE = 0x400; |
|---|
| 86 |
} else version (IE3) { |
|---|
| 87 |
const uint _WIN32_IE = 0x300; |
|---|
| 88 |
} else static if (WINVER >= 0x410) { |
|---|
| 89 |
const uint _WIN32_IE = 0x400; |
|---|
| 90 |
} else { |
|---|
| 91 |
const uint _WIN32_IE = 0; |
|---|
| 92 |
} |
|---|
| 93 |
|
|---|
| 94 |
debug (WindowsUnitTest) { |
|---|
| 95 |
unittest { |
|---|
| 96 |
printf("Windows NT version: %03x\n", _WIN32_WINNT); |
|---|
| 97 |
printf("Windows 9x version: %03x\n", _WIN32_WINDOWS); |
|---|
| 98 |
printf("IE version: %03x\n", _WIN32_IE); |
|---|
| 99 |
} |
|---|
| 100 |
} |
|---|