Hex Artifact Content

Not logged in

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                                         .}.