Artifact a45ec6a241aff65fd2d247268e64c33c578641d8:
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0a 2a 20 20 20 20 20 ********\.*
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0060: 20 20 20 20 20 20 20 20 20 20 20 77 33 32 61 70 w32ap
0070: 69 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 i.d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 *.*
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 *.*
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50 Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20 I header module
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 *.*
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0170: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 *.*
0180: 54 72 61 6e 73 6c 61 74 65 64 20 66 72 6f 6d 20 Translated from
0190: 4d 69 6e 47 57 20 41 50 49 20 66 6f 72 20 4d 53 MinGW API for MS
01a0: 2d 57 69 6e 64 6f 77 73 20 33 2e 31 32 20 20 20 -Windows 3.12
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20 *.*
01c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01d0: 20 20 20 20 20 20 20 20 62 79 20 53 74 65 77 61 by Stewa
01e0: 72 74 20 47 6f 72 64 6f 6e 20 20 20 20 20 20 20 rt Gordon
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0200: 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 *.*
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a *.
0250: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *
0260: 20 20 20 20 20 20 20 20 50 6c 61 63 65 64 20 69 Placed i
0270: 6e 74 6f 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 nto public domai
0280: 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n
0290: 20 20 20 20 20 20 20 20 2a 0a 5c 2a 2a 2a 2a 2a *.\*****
02a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02e0: 2a 2a 2f 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 **/.module win32
02f0: 2e 77 33 32 61 70 69 3b 0a 0a 63 6f 6e 73 74 20 .w32api;..const
0300: 5f 5f 57 33 32 41 50 49 5f 56 45 52 53 49 4f 4e __W32API_VERSION
0310: 20 3d 20 33 2e 31 32 3b 0a 63 6f 6e 73 74 20 5f = 3.12;.const _
0320: 5f 57 33 32 41 50 49 5f 4d 41 4a 4f 52 5f 56 45 _W32API_MAJOR_VE
0330: 52 53 49 4f 4e 20 3d 20 33 3b 0a 63 6f 6e 73 74 RSION = 3;.const
0340: 20 5f 5f 57 33 32 41 50 49 5f 4d 49 4e 4f 52 5f __W32API_MINOR_
0350: 56 45 52 53 49 4f 4e 20 3d 20 31 32 3b 0a 0a 2f VERSION = 12;../
0360: 2a 09 54 68 65 73 65 20 76 65 72 73 69 6f 6e 20 *.These version
0370: 69 64 65 6e 74 69 66 69 65 72 73 20 61 72 65 20 identifiers are
0380: 75 73 65 64 20 74 6f 20 73 70 65 63 69 66 79 20 used to specify
0390: 74 68 65 20 6d 69 6e 69 6d 75 6d 20 76 65 72 73 the minimum vers
03a0: 69 6f 6e 20 6f 66 0a 20 2a 09 57 69 6e 64 6f 77 ion of. *.Window
03b0: 73 20 74 68 61 74 20 61 6e 20 61 70 70 6c 69 63 s that an applic
03c0: 61 74 69 6f 6e 20 77 69 6c 6c 20 73 75 70 70 6f ation will suppo
03d0: 72 74 2e 0a 20 2a 0a 20 2a 09 54 68 65 20 70 72 rt.. *. *.The pr
03e0: 6f 67 72 61 6d 6d 65 72 20 73 68 6f 75 6c 64 20 ogrammer should
03f0: 73 65 74 20 74 77 6f 20 76 65 72 73 69 6f 6e 20 set two version
0400: 69 64 65 6e 74 69 66 69 65 72 73 3a 20 6f 6e 65 identifiers: one
0410: 20 66 6f 72 20 74 68 65 0a 20 2a 09 6d 69 6e 69 for the. *.mini
0420: 6d 75 6d 20 57 69 6e 64 6f 77 73 20 4e 54 20 76 mum Windows NT v
0430: 65 72 73 69 6f 6e 20 61 6e 64 20 6f 6e 65 20 66 ersion and one f
0440: 6f 72 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 57 or the minimum W
0450: 69 6e 64 6f 77 73 20 39 78 0a 20 2a 09 76 65 72 indows 9x. *.ver
0460: 73 69 6f 6e 2e 20 20 49 66 20 6e 6f 20 57 69 6e sion. If no Win
0470: 64 6f 77 73 20 4e 54 20 76 65 72 73 69 6f 6e 20 dows NT version
0480: 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 57 69 is specified, Wi
0490: 6e 64 6f 77 73 20 4e 54 20 34 20 69 73 0a 20 2a ndows NT 4 is. *
04a0: 09 61 73 73 75 6d 65 64 2e 20 20 49 66 20 6e 6f .assumed. If no
04b0: 20 57 69 6e 64 6f 77 73 20 39 78 20 76 65 72 73 Windows 9x vers
04c0: 69 6f 6e 20 69 73 20 73 70 65 63 69 66 69 65 64 ion is specified
04d0: 2c 20 57 69 6e 64 6f 77 73 20 39 35 20 69 73 0a , Windows 95 is.
04e0: 20 2a 09 61 73 73 75 6d 65 64 2c 20 75 6e 6c 65 *.assumed, unle
04f0: 73 73 20 57 69 6e 64 6f 77 73 4e 54 6f 6e 6c 79 ss WindowsNTonly
0500: 2c 20 57 69 6e 64 6f 77 73 58 50 2c 20 57 69 6e , WindowsXP, Win
0510: 64 6f 77 73 32 30 30 33 20 6f 72 20 57 69 6e 64 dows2003 or Wind
0520: 6f 77 73 56 69 73 74 61 0a 20 2a 09 69 73 20 73 owsVista. *.is s
0530: 70 65 63 69 66 69 65 64 2c 20 69 6d 70 6c 79 69 pecified, implyi
0540: 6e 67 20 74 68 61 74 20 74 68 65 20 61 70 70 6c ng that the appl
0550: 69 63 61 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 ication supports
0560: 20 6f 6e 6c 79 20 74 68 65 20 4e 54 20 6c 69 6e only the NT lin
0570: 65 20 6f 66 0a 20 2a 09 76 65 72 73 69 6f 6e 73 e of. *.versions
0580: 2e 0a 20 2a 2f 0a 0a 2f 2a 09 46 6f 72 20 57 69 .. */../*.For Wi
0590: 6e 64 6f 77 73 20 58 50 20 61 6e 64 20 6c 61 74 ndows XP and lat
05a0: 65 72 2c 20 61 73 73 75 6d 65 20 6e 6f 20 57 69 er, assume no Wi
05b0: 6e 64 6f 77 73 20 39 78 20 73 75 70 70 6f 72 74 ndows 9x support
05c0: 2e 0a 20 2a 09 41 50 49 20 66 65 61 74 75 72 65 .. *.API feature
05d0: 73 20 6e 65 77 20 74 6f 20 57 69 6e 64 6f 77 73 s new to Windows
05e0: 20 56 69 73 74 61 20 61 72 65 20 6e 6f 74 20 79 Vista are not y
05f0: 65 74 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 et included in t
0600: 68 69 73 0a 20 2a 09 74 72 61 6e 73 6c 61 74 69 his. *.translati
0610: 6f 6e 20 6f 72 20 69 6e 20 4d 69 6e 47 57 2c 20 on or in MinGW,
0620: 62 75 74 20 74 68 69 73 20 69 73 20 68 65 72 65 but this is here
0630: 20 72 65 61 64 79 20 74 6f 20 73 74 61 72 74 20 ready to start
0640: 61 64 64 69 6e 67 20 74 68 65 6d 2e 0a 20 2a 2f adding them.. */
0650: 0a 76 65 72 73 69 6f 6e 20 28 57 69 6e 64 6f 77 .version (Window
0660: 73 56 69 73 74 61 29 20 7b 0a 09 63 6f 6e 73 74 sVista) {..const
0670: 20 75 69 6e 74 0a 09 09 5f 57 49 4e 33 32 5f 57 uint..._WIN32_W
0680: 49 4e 4e 54 20 20 20 3d 20 30 78 36 30 30 2c 0a INNT = 0x600,.
0690: 09 09 5f 57 49 4e 33 32 5f 57 49 4e 44 4f 57 53 .._WIN32_WINDOWS
06a0: 20 3d 20 75 69 6e 74 2e 6d 61 78 3b 0a 0a 7d 20 = uint.max;..}
06b0: 65 6c 73 65 20 76 65 72 73 69 6f 6e 20 28 57 69 else version (Wi
06c0: 6e 64 6f 77 73 32 30 30 33 29 20 7b 0a 09 63 6f ndows2003) {..co
06d0: 6e 73 74 20 75 69 6e 74 0a 09 09 5f 57 49 4e 33 nst uint..._WIN3
06e0: 32 5f 57 49 4e 4e 54 20 20 20 3d 20 30 78 35 30 2_WINNT = 0x50
06f0: 32 2c 0a 09 09 5f 57 49 4e 33 32 5f 57 49 4e 44 2,..._WIN32_WIND
0700: 4f 57 53 20 3d 20 75 69 6e 74 2e 6d 61 78 3b 0a OWS = uint.max;.
0710: 0a 7d 20 65 6c 73 65 20 76 65 72 73 69 6f 6e 20 .} else version
0720: 28 57 69 6e 64 6f 77 73 58 50 29 20 7b 0a 09 63 (WindowsXP) {..c
0730: 6f 6e 73 74 20 75 69 6e 74 0a 09 09 5f 57 49 4e onst uint..._WIN
0740: 33 32 5f 57 49 4e 4e 54 20 20 20 3d 20 30 78 35 32_WINNT = 0x5
0750: 30 31 2c 0a 09 09 5f 57 49 4e 33 32 5f 57 49 4e 01,..._WIN32_WIN
0760: 44 4f 57 53 20 3d 20 75 69 6e 74 2e 6d 61 78 3b DOWS = uint.max;
0770: 0a 0a 7d 20 65 6c 73 65 20 7b 0a 09 2f 2a 09 66 ..} else {../*.f
0780: 6f 72 20 65 61 72 6c 69 65 72 20 57 69 6e 64 6f or earlier Windo
0790: 77 73 20 76 65 72 73 69 6f 6e 73 2c 20 73 65 70 ws versions, sep
07a0: 61 72 61 74 65 20 76 65 72 73 69 6f 6e 20 69 64 arate version id
07b0: 65 6e 74 69 66 69 65 72 73 20 69 6e 74 6f 0a 09 entifiers into..
07c0: 20 2a 09 74 68 65 20 4e 54 20 61 6e 64 20 39 78 *.the NT and 9x
07d0: 20 6c 69 6e 65 73 0a 09 20 2a 2f 0a 09 76 65 72 lines.. */..ver
07e0: 73 69 6f 6e 20 28 57 69 6e 64 6f 77 73 32 30 30 sion (Windows200
07f0: 30 29 20 7b 0a 09 09 63 6f 6e 73 74 20 75 69 6e 0) {...const uin
0800: 74 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3d t _WIN32_WINNT =
0810: 20 30 78 35 30 30 3b 0a 09 7d 20 65 6c 73 65 20 0x500;..} else
0820: 7b 0a 09 09 63 6f 6e 73 74 20 75 69 6e 74 20 5f {...const uint _
0830: 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3d 20 30 78 WIN32_WINNT = 0x
0840: 34 30 30 3b 0a 09 7d 0a 0a 09 76 65 72 73 69 6f 400;..}...versio
0850: 6e 20 28 57 69 6e 64 6f 77 73 4e 54 6f 6e 6c 79 n (WindowsNTonly
0860: 29 20 7b 0a 09 09 63 6f 6e 73 74 20 75 69 6e 74 ) {...const uint
0870: 20 5f 57 49 4e 33 32 5f 57 49 4e 44 4f 57 53 20 _WIN32_WINDOWS
0880: 3d 20 75 69 6e 74 2e 6d 61 78 3b 0a 09 7d 20 65 = uint.max;..} e
0890: 6c 73 65 20 76 65 72 73 69 6f 6e 20 28 57 69 6e lse version (Win
08a0: 64 6f 77 73 4d 45 29 20 7b 0a 09 09 63 6f 6e 73 dowsME) {...cons
08b0: 74 20 75 69 6e 74 20 5f 57 49 4e 33 32 5f 57 49 t uint _WIN32_WI
08c0: 4e 44 4f 57 53 20 3d 20 30 78 35 30 30 3b 0a 09 NDOWS = 0x500;..
08d0: 7d 20 65 6c 73 65 20 76 65 72 73 69 6f 6e 20 28 } else version (
08e0: 57 69 6e 64 6f 77 73 39 38 29 20 7b 0a 09 09 63 Windows98) {...c
08f0: 6f 6e 73 74 20 75 69 6e 74 20 5f 57 49 4e 33 32 onst uint _WIN32
0900: 5f 57 49 4e 44 4f 57 53 20 3d 20 30 78 34 31 30 _WINDOWS = 0x410
0910: 3b 0a 09 7d 20 65 6c 73 65 20 7b 0a 09 09 63 6f ;..} else {...co
0920: 6e 73 74 20 75 69 6e 74 20 5f 57 49 4e 33 32 5f nst uint _WIN32_
0930: 57 49 4e 44 4f 57 53 20 3d 20 30 78 34 30 30 3b WINDOWS = 0x400;
0940: 0a 09 7d 0a 7d 0a 0a 2f 2f 20 4a 75 73 74 20 61 ..}.}..// Just a
0950: 20 62 69 74 20 6f 66 20 73 79 6e 74 61 63 74 69 bit of syntacti
0960: 63 20 73 75 67 61 72 20 66 6f 72 20 74 68 65 20 c sugar for the
0970: 73 74 61 74 69 63 20 69 66 73 0a 63 6f 6e 73 74 static ifs.const
0980: 20 75 69 6e 74 20 57 49 4e 56 45 52 20 3d 20 5f uint WINVER = _
0990: 57 49 4e 33 32 5f 57 49 4e 44 4f 57 53 20 3c 20 WIN32_WINDOWS <
09a0: 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3f 0a 20 _WIN32_WINNT ?.
09b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
09c0: 20 20 20 5f 57 49 4e 33 32 5f 57 49 4e 44 4f 57 _WIN32_WINDOW
09d0: 53 20 3a 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 S : _WIN32_WINNT
09e0: 3b 0a 63 6f 6e 73 74 20 62 6f 6f 6c 20 5f 57 49 ;.const bool _WI
09f0: 4e 33 32 5f 57 49 4e 4e 54 5f 4f 4e 4c 59 20 3d N32_WINNT_ONLY =
0a00: 20 5f 57 49 4e 33 32 5f 57 49 4e 44 4f 57 53 20 _WIN32_WINDOWS
0a10: 3d 3d 20 75 69 6e 74 2e 6d 61 78 3b 0a 0a 76 65 == uint.max;..ve
0a20: 72 73 69 6f 6e 20 28 49 45 37 29 20 7b 0a 09 63 rsion (IE7) {..c
0a30: 6f 6e 73 74 20 75 69 6e 74 20 5f 57 49 4e 33 32 onst uint _WIN32
0a40: 5f 49 45 20 3d 20 30 78 37 30 30 3b 0a 7d 20 65 _IE = 0x700;.} e
0a50: 6c 73 65 20 76 65 72 73 69 6f 6e 20 28 49 45 36 lse version (IE6
0a60: 30 32 29 20 7b 0a 09 63 6f 6e 73 74 20 75 69 6e 02) {..const uin
0a70: 74 20 5f 57 49 4e 33 32 5f 49 45 20 3d 20 30 78 t _WIN32_IE = 0x
0a80: 36 30 33 3b 0a 7d 20 65 6c 73 65 20 76 65 72 73 603;.} else vers
0a90: 69 6f 6e 20 28 49 45 36 30 31 29 20 7b 0a 09 63 ion (IE601) {..c
0aa0: 6f 6e 73 74 20 75 69 6e 74 20 5f 57 49 4e 33 32 onst uint _WIN32
0ab0: 5f 49 45 20 3d 20 30 78 36 30 31 3b 0a 7d 20 65 _IE = 0x601;.} e
0ac0: 6c 73 65 20 76 65 72 73 69 6f 6e 20 28 49 45 36 lse version (IE6
0ad0: 29 20 7b 0a 09 63 6f 6e 73 74 20 75 69 6e 74 20 ) {..const uint
0ae0: 5f 57 49 4e 33 32 5f 49 45 20 3d 20 30 78 36 30 _WIN32_IE = 0x60
0af0: 30 3b 0a 7d 20 65 6c 73 65 20 76 65 72 73 69 6f 0;.} else versio
0b00: 6e 20 28 49 45 35 36 29 20 7b 0a 09 63 6f 6e 73 n (IE56) {..cons
0b10: 74 20 75 69 6e 74 20 5f 57 49 4e 33 32 5f 49 45 t uint _WIN32_IE
0b20: 20 3d 20 30 78 35 36 30 3b 0a 7d 20 65 6c 73 65 = 0x560;.} else
0b30: 20 76 65 72 73 69 6f 6e 20 28 49 45 35 30 31 29 version (IE501)
0b40: 20 7b 0a 09 63 6f 6e 73 74 20 75 69 6e 74 20 5f {..const uint _
0b50: 57 49 4e 33 32 5f 49 45 20 3d 20 30 78 35 30 31 WIN32_IE = 0x501
0b60: 3b 0a 7d 20 65 6c 73 65 20 76 65 72 73 69 6f 6e ;.} else version
0b70: 20 28 49 45 35 29 20 7b 0a 09 63 6f 6e 73 74 20 (IE5) {..const
0b80: 75 69 6e 74 20 5f 57 49 4e 33 32 5f 49 45 20 3d uint _WIN32_IE =
0b90: 20 30 78 35 30 30 3b 0a 7d 20 65 6c 73 65 20 76 0x500;.} else v
0ba0: 65 72 73 69 6f 6e 20 28 49 45 34 30 31 29 20 7b ersion (IE401) {
0bb0: 0a 09 63 6f 6e 73 74 20 75 69 6e 74 20 5f 57 49 ..const uint _WI
0bc0: 4e 33 32 5f 49 45 20 3d 20 30 78 34 30 31 3b 0a N32_IE = 0x401;.
0bd0: 7d 20 65 6c 73 65 20 76 65 72 73 69 6f 6e 20 28 } else version (
0be0: 49 45 34 29 20 7b 0a 09 63 6f 6e 73 74 20 75 69 IE4) {..const ui
0bf0: 6e 74 20 5f 57 49 4e 33 32 5f 49 45 20 3d 20 30 nt _WIN32_IE = 0
0c00: 78 34 30 30 3b 0a 7d 20 65 6c 73 65 20 76 65 72 x400;.} else ver
0c10: 73 69 6f 6e 20 28 49 45 33 29 20 7b 0a 09 63 6f sion (IE3) {..co
0c20: 6e 73 74 20 75 69 6e 74 20 5f 57 49 4e 33 32 5f nst uint _WIN32_
0c30: 49 45 20 3d 20 30 78 33 30 30 3b 0a 7d 20 65 6c IE = 0x300;.} el
0c40: 73 65 20 73 74 61 74 69 63 20 69 66 20 28 57 49 se static if (WI
0c50: 4e 56 45 52 20 3e 3d 20 30 78 34 31 30 29 20 7b NVER >= 0x410) {
0c60: 0a 09 63 6f 6e 73 74 20 75 69 6e 74 20 5f 57 49 ..const uint _WI
0c70: 4e 33 32 5f 49 45 20 3d 20 30 78 34 30 30 3b 0a N32_IE = 0x400;.
0c80: 7d 20 65 6c 73 65 20 7b 0a 09 63 6f 6e 73 74 20 } else {..const
0c90: 75 69 6e 74 20 5f 57 49 4e 33 32 5f 49 45 20 3d uint _WIN32_IE =
0ca0: 20 30 3b 0a 7d 0a 0a 64 65 62 75 67 20 28 57 69 0;.}..debug (Wi
0cb0: 6e 64 6f 77 73 55 6e 69 74 54 65 73 74 29 20 7b ndowsUnitTest) {
0cc0: 0a 09 75 6e 69 74 74 65 73 74 20 7b 0a 09 09 70 ..unittest {...p
0cd0: 72 69 6e 74 66 28 22 57 69 6e 64 6f 77 73 20 4e rintf("Windows N
0ce0: 54 20 76 65 72 73 69 6f 6e 3a 20 25 30 33 78 5c T version: %03x\
0cf0: 6e 22 2c 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 n", _WIN32_WINNT
0d00: 29 3b 0a 09 09 70 72 69 6e 74 66 28 22 57 69 6e );...printf("Win
0d10: 64 6f 77 73 20 39 78 20 76 65 72 73 69 6f 6e 3a dows 9x version:
0d20: 20 25 30 33 78 5c 6e 22 2c 20 5f 57 49 4e 33 32 %03x\n", _WIN32
0d30: 5f 57 49 4e 44 4f 57 53 29 3b 0a 09 09 70 72 69 _WINDOWS);...pri
0d40: 6e 74 66 28 22 49 45 20 76 65 72 73 69 6f 6e 3a ntf("IE version:
0d50: 20 20 20 20 20 20 20 20 20 25 30 33 78 5c 6e 22 %03x\n"
0d60: 2c 20 5f 57 49 4e 33 32 5f 49 45 29 3b 0a 09 7d , _WIN32_IE);..}
0d70: 0a 7d 0a .}.