Hex Artifact Content

Not logged in

Artifact 4fd71adb18fd2e6519fa35d461e3ec510b0e894a:


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 69 6e 76 65             winve
0070: 72 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20  r.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: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66      Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77  rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20  s headers       
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 69 6e 76 65 72 3b 0a 0a 70 72 69 76 61 74  .winver;..privat
0300: 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77  e import win32.w
0310: 69 6e 64 65 66 3b 0a 0a 2f 2f 20 46 49 58 4d 45  indef;..// FIXME
0320: 3a 20 74 79 70 65 20 77 65 69 72 64 6e 65 73 73  : type weirdness
0330: 0a 65 6e 75 6d 20 7b 0a 09 56 53 5f 46 49 4c 45  .enum {..VS_FILE
0340: 5f 49 4e 46 4f 20 20 20 20 3d 20 20 31 36 2c 0a  _INFO    =  16,.
0350: 09 56 53 5f 56 45 52 53 49 4f 4e 5f 49 4e 46 4f  .VS_VERSION_INFO
0360: 20 3d 20 20 20 31 2c 0a 09 56 53 5f 55 53 45 52   =   1,..VS_USER
0370: 5f 44 45 46 49 4e 45 44 20 3d 20 31 30 30 0a 7d  _DEFINED = 100.}
0380: 0a 0a 65 6e 75 6d 20 7b 0a 09 56 53 5f 46 46 49  ..enum {..VS_FFI
0390: 5f 53 49 47 4e 41 54 55 52 45 20 20 20 20 20 3d  _SIGNATURE     =
03a0: 20 30 78 46 45 45 46 30 34 42 44 2c 0a 09 56 53   0xFEEF04BD,..VS
03b0: 5f 46 46 49 5f 53 54 52 55 43 56 45 52 53 49 4f  _FFI_STRUCVERSIO
03c0: 4e 20 20 3d 20 20 20 20 30 78 31 30 30 30 30 2c  N  =    0x10000,
03d0: 0a 09 56 53 5f 46 46 49 5f 46 49 4c 45 46 4c 41  ..VS_FFI_FILEFLA
03e0: 47 53 4d 41 53 4b 20 3d 20 20 20 20 20 20 20 30  GSMASK =       0
03f0: 78 33 46 0a 7d 0a 0a 65 6e 75 6d 20 7b 0a 09 56  x3F.}..enum {..V
0400: 53 5f 46 46 5f 44 45 42 55 47 20 20 20 20 20 20  S_FF_DEBUG      
0410: 20 20 3d 20 20 31 2c 0a 09 56 53 5f 46 46 5f 50    =  1,..VS_FF_P
0420: 52 45 52 45 4c 45 41 53 45 20 20 20 3d 20 20 32  RERELEASE   =  2
0430: 2c 0a 09 56 53 5f 46 46 5f 50 41 54 43 48 45 44  ,..VS_FF_PATCHED
0440: 20 20 20 20 20 20 3d 20 20 34 2c 0a 09 56 53 5f        =  4,..VS_
0450: 46 46 5f 50 52 49 56 41 54 45 42 55 49 4c 44 20  FF_PRIVATEBUILD 
0460: 3d 20 20 38 2c 0a 09 56 53 5f 46 46 5f 49 4e 46  =  8,..VS_FF_INF
0470: 4f 49 4e 46 45 52 52 45 44 20 3d 20 31 36 2c 0a  OINFERRED = 16,.
0480: 09 56 53 5f 46 46 5f 53 50 45 43 49 41 4c 42 55  .VS_FF_SPECIALBU
0490: 49 4c 44 20 3d 20 33 32 0a 7d 0a 0a 65 6e 75 6d  ILD = 32.}..enum
04a0: 20 7b 0a 09 56 4f 53 5f 55 4e 4b 4e 4f 57 4e 20   {..VOS_UNKNOWN 
04b0: 20 20 20 20 20 20 3d 20 20 20 20 20 20 20 30 2c        =       0,
04c0: 0a 09 56 4f 53 5f 44 4f 53 20 20 20 20 20 20 20  ..VOS_DOS       
04d0: 20 20 20 20 3d 20 30 78 31 30 30 30 30 2c 0a 09      = 0x10000,..
04e0: 56 4f 53 5f 4f 53 32 31 36 20 20 20 20 20 20 20  VOS_OS216       
04f0: 20 20 3d 20 30 78 32 30 30 30 30 2c 0a 09 56 4f    = 0x20000,..VO
0500: 53 5f 4f 53 32 33 32 20 20 20 20 20 20 20 20 20  S_OS232         
0510: 3d 20 30 78 33 30 30 30 30 2c 0a 09 56 4f 53 5f  = 0x30000,..VOS_
0520: 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  NT            = 
0530: 30 78 34 30 30 30 30 2c 0a 09 56 4f 53 5f 5f 42  0x40000,..VOS__B
0540: 41 53 45 20 20 20 20 20 20 20 20 20 3d 20 20 20  ASE         =   
0550: 20 20 20 20 30 2c 0a 09 56 4f 53 5f 5f 57 49 4e      0,..VOS__WIN
0560: 44 4f 57 53 31 36 20 20 20 20 3d 20 20 20 20 20  DOWS16    =     
0570: 20 20 31 2c 0a 09 56 4f 53 5f 5f 50 4d 31 36 20    1,..VOS__PM16 
0580: 20 20 20 20 20 20 20 20 3d 20 20 20 20 20 20 20          =       
0590: 32 2c 0a 09 56 4f 53 5f 5f 50 4d 33 32 20 20 20  2,..VOS__PM32   
05a0: 20 20 20 20 20 20 3d 20 20 20 20 20 20 20 33 2c        =       3,
05b0: 0a 09 56 4f 53 5f 5f 57 49 4e 44 4f 57 53 33 32  ..VOS__WINDOWS32
05c0: 20 20 20 20 3d 20 20 20 20 20 20 20 34 2c 0a 09      =       4,..
05d0: 56 4f 53 5f 44 4f 53 5f 57 49 4e 44 4f 57 53 31  VOS_DOS_WINDOWS1
05e0: 36 20 3d 20 30 78 31 30 30 30 31 2c 0a 09 56 4f  6 = 0x10001,..VO
05f0: 53 5f 44 4f 53 5f 57 49 4e 44 4f 57 53 33 32 20  S_DOS_WINDOWS32 
0600: 3d 20 30 78 31 30 30 30 34 2c 0a 09 56 4f 53 5f  = 0x10004,..VOS_
0610: 4f 53 32 31 36 5f 50 4d 31 36 20 20 20 20 3d 20  OS216_PM16    = 
0620: 30 78 32 30 30 30 32 2c 0a 09 56 4f 53 5f 4f 53  0x20002,..VOS_OS
0630: 32 33 32 5f 50 4d 33 32 20 20 20 20 3d 20 30 78  232_PM32    = 0x
0640: 33 30 30 30 33 2c 0a 09 56 4f 53 5f 4e 54 5f 57  30003,..VOS_NT_W
0650: 49 4e 44 4f 57 53 33 32 20 20 3d 20 30 78 34 30  INDOWS32  = 0x40
0660: 30 30 34 0a 7d 0a 0a 65 6e 75 6d 20 7b 0a 09 56  004.}..enum {..V
0670: 46 54 5f 55 4e 4b 4e 4f 57 4e 20 20 20 20 3d 20  FT_UNKNOWN    = 
0680: 30 2c 0a 09 56 46 54 5f 41 50 50 20 20 20 20 20  0,..VFT_APP     
0690: 20 20 20 3d 20 31 2c 0a 09 56 46 54 5f 44 4c 4c     = 1,..VFT_DLL
06a0: 20 20 20 20 20 20 20 20 3d 20 32 2c 0a 09 56 46          = 2,..VF
06b0: 54 5f 44 52 56 20 20 20 20 20 20 20 20 3d 20 33  T_DRV        = 3
06c0: 2c 0a 09 56 46 54 5f 46 4f 4e 54 20 20 20 20 20  ,..VFT_FONT     
06d0: 20 20 3d 20 34 2c 0a 09 56 46 54 5f 56 58 44 20    = 4,..VFT_VXD 
06e0: 20 20 20 20 20 20 20 3d 20 35 2c 0a 09 56 46 54         = 5,..VFT
06f0: 5f 53 54 41 54 49 43 5f 4c 49 42 20 3d 20 37 0a  _STATIC_LIB = 7.
0700: 7d 0a 0a 65 6e 75 6d 20 7b 0a 09 56 46 54 32 5f  }..enum {..VFT2_
0710: 55 4e 4b 4e 4f 57 4e 20 20 20 20 20 20 20 20 20  UNKNOWN         
0720: 3d 20 20 30 2c 0a 09 56 46 54 32 5f 44 52 56 5f  =  0,..VFT2_DRV_
0730: 50 52 49 4e 54 45 52 20 20 20 20 20 3d 20 20 31  PRINTER     =  1
0740: 2c 0a 09 56 46 54 32 5f 44 52 56 5f 4b 45 59 42  ,..VFT2_DRV_KEYB
0750: 4f 41 52 44 20 20 20 20 3d 20 20 32 2c 0a 09 56  OARD    =  2,..V
0760: 46 54 32 5f 44 52 56 5f 4c 41 4e 47 55 41 47 45  FT2_DRV_LANGUAGE
0770: 20 20 20 20 3d 20 20 33 2c 0a 09 56 46 54 32 5f      =  3,..VFT2_
0780: 44 52 56 5f 44 49 53 50 4c 41 59 20 20 20 20 20  DRV_DISPLAY     
0790: 3d 20 20 34 2c 0a 09 56 46 54 32 5f 44 52 56 5f  =  4,..VFT2_DRV_
07a0: 4d 4f 55 53 45 20 20 20 20 20 20 20 3d 20 20 35  MOUSE       =  5
07b0: 2c 0a 09 56 46 54 32 5f 44 52 56 5f 4e 45 54 57  ,..VFT2_DRV_NETW
07c0: 4f 52 4b 20 20 20 20 20 3d 20 20 36 2c 0a 09 56  ORK     =  6,..V
07d0: 46 54 32 5f 44 52 56 5f 53 59 53 54 45 4d 20 20  FT2_DRV_SYSTEM  
07e0: 20 20 20 20 3d 20 20 37 2c 0a 09 56 46 54 32 5f      =  7,..VFT2_
07f0: 44 52 56 5f 49 4e 53 54 41 4c 4c 41 42 4c 45 20  DRV_INSTALLABLE 
0800: 3d 20 20 38 2c 0a 09 56 46 54 32 5f 44 52 56 5f  =  8,..VFT2_DRV_
0810: 53 4f 55 4e 44 20 20 20 20 20 20 20 3d 20 20 39  SOUND       =  9
0820: 2c 0a 09 56 46 54 32 5f 44 52 56 5f 43 4f 4d 4d  ,..VFT2_DRV_COMM
0830: 20 20 20 20 20 20 20 20 3d 20 31 30 2c 0a 09 56          = 10,..V
0840: 46 54 32 5f 44 52 56 5f 49 4e 50 55 54 4d 45 54  FT2_DRV_INPUTMET
0850: 48 4f 44 20 3d 20 31 31 2c 0a 09 56 46 54 32 5f  HOD = 11,..VFT2_
0860: 46 4f 4e 54 5f 52 41 53 54 45 52 20 20 20 20 20  FONT_RASTER     
0870: 3d 20 20 31 2c 0a 09 56 46 54 32 5f 46 4f 4e 54  =  1,..VFT2_FONT
0880: 5f 56 45 43 54 4f 52 20 20 20 20 20 3d 20 20 32  _VECTOR     =  2
0890: 2c 0a 09 56 46 54 32 5f 46 4f 4e 54 5f 54 52 55  ,..VFT2_FONT_TRU
08a0: 45 54 59 50 45 20 20 20 3d 20 20 33 0a 7d 0a 0a  ETYPE   =  3.}..
08b0: 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0a 09  enum : DWORD {..
08c0: 56 46 46 46 5f 49 53 53 48 41 52 45 44 46 49 4c  VFFF_ISSHAREDFIL
08d0: 45 20 3d 20 31 0a 7d 0a 0a 65 6e 75 6d 20 3a 20  E = 1.}..enum : 
08e0: 44 57 4f 52 44 20 7b 0a 09 56 46 46 5f 43 55 52  DWORD {..VFF_CUR
08f0: 4e 45 44 45 53 54 20 20 20 20 3d 20 31 2c 0a 09  NEDEST    = 1,..
0900: 56 46 46 5f 46 49 4c 45 49 4e 55 53 45 20 20 20  VFF_FILEINUSE   
0910: 20 3d 20 32 2c 0a 09 56 46 46 5f 42 55 46 46 54   = 2,..VFF_BUFFT
0920: 4f 4f 53 4d 41 4c 4c 20 3d 20 34 0a 7d 0a 0a 65  OOSMALL = 4.}..e
0930: 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0a 09 56  num : DWORD {..V
0940: 49 46 46 5f 46 4f 52 43 45 49 4e 53 54 41 4c 4c  IFF_FORCEINSTALL
0950: 20 20 3d 20 31 2c 0a 09 56 49 46 46 5f 44 4f 4e    = 1,..VIFF_DON
0960: 54 44 45 4c 45 54 45 4f 4c 44 0a 7d 0a 0a 65 6e  TDELETEOLD.}..en
0970: 75 6d 20 7b 0a 09 56 49 46 5f 54 45 4d 50 46 49  um {..VIF_TEMPFI
0980: 4c 45 20 20 20 20 20 20 20 20 20 3d 20 30 78 30  LE         = 0x0
0990: 30 30 30 31 2c 0a 09 56 49 46 5f 4d 49 53 4d 41  0001,..VIF_MISMA
09a0: 54 43 48 20 20 20 20 20 20 20 20 20 3d 20 30 78  TCH         = 0x
09b0: 30 30 30 30 32 2c 0a 09 56 49 46 5f 53 52 43 4f  00002,..VIF_SRCO
09c0: 4c 44 20 20 20 20 20 20 20 20 20 20 20 3d 20 30  LD           = 0
09d0: 78 30 30 30 30 34 2c 0a 09 56 49 46 5f 44 49 46  x00004,..VIF_DIF
09e0: 46 4c 41 4e 47 20 20 20 20 20 20 20 20 20 3d 20  FLANG         = 
09f0: 30 78 30 30 30 30 38 2c 0a 09 56 49 46 5f 44 49  0x00008,..VIF_DI
0a00: 46 46 43 4f 44 45 50 47 20 20 20 20 20 20 20 3d  FFCODEPG       =
0a10: 20 30 78 30 30 30 31 30 2c 0a 09 56 49 46 5f 44   0x00010,..VIF_D
0a20: 49 46 46 54 59 50 45 20 20 20 20 20 20 20 20 20  IFFTYPE         
0a30: 3d 20 30 78 30 30 30 32 30 2c 0a 09 56 49 46 5f  = 0x00020,..VIF_
0a40: 57 52 49 54 45 50 52 4f 54 20 20 20 20 20 20 20  WRITEPROT       
0a50: 20 3d 20 30 78 30 30 30 34 30 2c 0a 09 56 49 46   = 0x00040,..VIF
0a60: 5f 46 49 4c 45 49 4e 55 53 45 20 20 20 20 20 20  _FILEINUSE      
0a70: 20 20 3d 20 30 78 30 30 30 38 30 2c 0a 09 56 49    = 0x00080,..VI
0a80: 46 5f 4f 55 54 4f 46 53 50 41 43 45 20 20 20 20  F_OUTOFSPACE    
0a90: 20 20 20 3d 20 30 78 30 30 31 30 30 2c 0a 09 56     = 0x00100,..V
0aa0: 49 46 5f 41 43 43 45 53 53 56 49 4f 4c 41 54 49  IF_ACCESSVIOLATI
0ab0: 4f 4e 20 20 3d 20 30 78 30 30 32 30 30 2c 0a 09  ON  = 0x00200,..
0ac0: 56 49 46 5f 53 48 41 52 49 4e 47 56 49 4f 4c 41  VIF_SHARINGVIOLA
0ad0: 54 49 4f 4e 20 3d 20 30 78 30 30 34 30 30 2c 0a  TION = 0x00400,.
0ae0: 09 56 49 46 5f 43 41 4e 4e 4f 54 43 52 45 41 54  .VIF_CANNOTCREAT
0af0: 45 20 20 20 20 20 3d 20 30 78 30 30 38 30 30 2c  E     = 0x00800,
0b00: 0a 09 56 49 46 5f 43 41 4e 4e 4f 54 44 45 4c 45  ..VIF_CANNOTDELE
0b10: 54 45 20 20 20 20 20 3d 20 30 78 30 31 30 30 30  TE     = 0x01000
0b20: 2c 0a 09 56 49 46 5f 43 41 4e 4e 4f 54 52 45 4e  ,..VIF_CANNOTREN
0b30: 41 4d 45 20 20 20 20 20 3d 20 30 78 30 32 30 30  AME     = 0x0200
0b40: 30 2c 0a 09 56 49 46 5f 43 41 4e 4e 4f 54 44 45  0,..VIF_CANNOTDE
0b50: 4c 45 54 45 43 55 52 20 20 3d 20 30 78 30 34 30  LETECUR  = 0x040
0b60: 30 30 2c 0a 09 56 49 46 5f 4f 55 54 4f 46 4d 45  00,..VIF_OUTOFME
0b70: 4d 4f 52 59 20 20 20 20 20 20 3d 20 30 78 30 38  MORY      = 0x08
0b80: 30 30 30 2c 0a 09 56 49 46 5f 43 41 4e 4e 4f 54  000,..VIF_CANNOT
0b90: 52 45 41 44 53 52 43 20 20 20 20 3d 20 30 78 31  READSRC    = 0x1
0ba0: 30 30 30 30 2c 0a 09 56 49 46 5f 43 41 4e 4e 4f  0000,..VIF_CANNO
0bb0: 54 52 45 41 44 44 53 54 20 20 20 20 3d 20 30 78  TREADDST    = 0x
0bc0: 32 30 30 30 30 2c 0a 09 56 49 46 5f 42 55 46 46  20000,..VIF_BUFF
0bd0: 54 4f 4f 53 4d 41 4c 4c 20 20 20 20 20 3d 20 30  TOOSMALL     = 0
0be0: 78 34 30 30 30 30 0a 7d 0a 0a 73 74 72 75 63 74  x40000.}..struct
0bf0: 20 56 53 5f 46 49 58 45 44 46 49 4c 45 49 4e 46   VS_FIXEDFILEINF
0c00: 4f 20 7b 0a 09 44 57 4f 52 44 20 64 77 53 69 67  O {..DWORD dwSig
0c10: 6e 61 74 75 72 65 3b 0a 09 44 57 4f 52 44 20 64  nature;..DWORD d
0c20: 77 53 74 72 75 63 56 65 72 73 69 6f 6e 3b 0a 09  wStrucVersion;..
0c30: 44 57 4f 52 44 20 64 77 46 69 6c 65 56 65 72 73  DWORD dwFileVers
0c40: 69 6f 6e 4d 53 3b 0a 09 44 57 4f 52 44 20 64 77  ionMS;..DWORD dw
0c50: 46 69 6c 65 56 65 72 73 69 6f 6e 4c 53 3b 0a 09  FileVersionLS;..
0c60: 44 57 4f 52 44 20 64 77 50 72 6f 64 75 63 74 56  DWORD dwProductV
0c70: 65 72 73 69 6f 6e 4d 53 3b 0a 09 44 57 4f 52 44  ersionMS;..DWORD
0c80: 20 64 77 50 72 6f 64 75 63 74 56 65 72 73 69 6f   dwProductVersio
0c90: 6e 4c 53 3b 0a 09 44 57 4f 52 44 20 64 77 46 69  nLS;..DWORD dwFi
0ca0: 6c 65 46 6c 61 67 73 4d 61 73 6b 3b 0a 09 44 57  leFlagsMask;..DW
0cb0: 4f 52 44 20 64 77 46 69 6c 65 46 6c 61 67 73 3b  ORD dwFileFlags;
0cc0: 0a 09 44 57 4f 52 44 20 64 77 46 69 6c 65 4f 53  ..DWORD dwFileOS
0cd0: 3b 0a 09 44 57 4f 52 44 20 64 77 46 69 6c 65 54  ;..DWORD dwFileT
0ce0: 79 70 65 3b 0a 09 44 57 4f 52 44 20 64 77 46 69  ype;..DWORD dwFi
0cf0: 6c 65 53 75 62 74 79 70 65 3b 0a 09 44 57 4f 52  leSubtype;..DWOR
0d00: 44 20 64 77 46 69 6c 65 44 61 74 65 4d 53 3b 0a  D dwFileDateMS;.
0d10: 09 44 57 4f 52 44 20 64 77 46 69 6c 65 44 61 74  .DWORD dwFileDat
0d20: 65 4c 53 3b 0a 7d 0a 0a 65 78 74 65 72 6e 20 28  eLS;.}..extern (
0d30: 57 69 6e 64 6f 77 73 29 20 7b 0a 09 44 57 4f 52  Windows) {..DWOR
0d40: 44 20 56 65 72 46 69 6e 64 46 69 6c 65 41 28 44  D VerFindFileA(D
0d50: 57 4f 52 44 2c 20 4c 50 43 53 54 52 2c 20 4c 50  WORD, LPCSTR, LP
0d60: 43 53 54 52 2c 20 4c 50 43 53 54 52 2c 20 4c 50  CSTR, LPCSTR, LP
0d70: 53 54 52 2c 20 50 55 49 4e 54 2c 20 4c 50 53 54  STR, PUINT, LPST
0d80: 52 2c 0a 09 20 20 50 55 49 4e 54 29 3b 0a 09 44  R,..  PUINT);..D
0d90: 57 4f 52 44 20 56 65 72 46 69 6e 64 46 69 6c 65  WORD VerFindFile
0da0: 57 28 44 57 4f 52 44 2c 20 4c 50 43 57 53 54 52  W(DWORD, LPCWSTR
0db0: 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 53  , LPCWSTR, LPCWS
0dc0: 54 52 2c 20 4c 50 57 53 54 52 2c 20 50 55 49 4e  TR, LPWSTR, PUIN
0dd0: 54 2c 20 4c 50 57 53 54 52 2c 0a 09 20 20 50 55  T, LPWSTR,..  PU
0de0: 49 4e 54 29 3b 0a 09 44 57 4f 52 44 20 56 65 72  INT);..DWORD Ver
0df0: 49 6e 73 74 61 6c 6c 46 69 6c 65 41 28 44 57 4f  InstallFileA(DWO
0e00: 52 44 2c 20 4c 50 43 53 54 52 2c 20 4c 50 43 53  RD, LPCSTR, LPCS
0e10: 54 52 2c 20 4c 50 43 53 54 52 2c 20 4c 50 43 53  TR, LPCSTR, LPCS
0e20: 54 52 2c 20 4c 50 43 53 54 52 2c 20 4c 50 53 54  TR, LPCSTR, LPST
0e30: 52 2c 0a 09 20 20 50 55 49 4e 54 29 3b 0a 09 44  R,..  PUINT);..D
0e40: 57 4f 52 44 20 56 65 72 49 6e 73 74 61 6c 6c 46  WORD VerInstallF
0e50: 69 6c 65 57 28 44 57 4f 52 44 2c 20 4c 50 43 57  ileW(DWORD, LPCW
0e60: 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50  STR, LPCWSTR, LP
0e70: 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20  CWSTR, LPCWSTR, 
0e80: 4c 50 43 57 53 54 52 2c 0a 09 20 20 4c 50 57 53  LPCWSTR,..  LPWS
0e90: 54 52 2c 20 50 55 49 4e 54 29 3b 0a 09 44 57 4f  TR, PUINT);..DWO
0ea0: 52 44 20 47 65 74 46 69 6c 65 56 65 72 73 69 6f  RD GetFileVersio
0eb0: 6e 49 6e 66 6f 53 69 7a 65 41 28 4c 50 43 53 54  nInfoSizeA(LPCST
0ec0: 52 2c 20 50 44 57 4f 52 44 29 3b 0a 09 44 57 4f  R, PDWORD);..DWO
0ed0: 52 44 20 47 65 74 46 69 6c 65 56 65 72 73 69 6f  RD GetFileVersio
0ee0: 6e 49 6e 66 6f 53 69 7a 65 57 28 4c 50 43 57 53  nInfoSizeW(LPCWS
0ef0: 54 52 2c 20 50 44 57 4f 52 44 29 3b 0a 09 42 4f  TR, PDWORD);..BO
0f00: 4f 4c 20 47 65 74 46 69 6c 65 56 65 72 73 69 6f  OL GetFileVersio
0f10: 6e 49 6e 66 6f 41 28 4c 50 43 53 54 52 2c 20 44  nInfoA(LPCSTR, D
0f20: 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20 50 56 4f  WORD, DWORD, PVO
0f30: 49 44 29 3b 0a 09 42 4f 4f 4c 20 47 65 74 46 69  ID);..BOOL GetFi
0f40: 6c 65 56 65 72 73 69 6f 6e 49 6e 66 6f 57 28 4c  leVersionInfoW(L
0f50: 50 43 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 44  PCWSTR, DWORD, D
0f60: 57 4f 52 44 2c 20 50 56 4f 49 44 29 3b 0a 09 44  WORD, PVOID);..D
0f70: 57 4f 52 44 20 56 65 72 4c 61 6e 67 75 61 67 65  WORD VerLanguage
0f80: 4e 61 6d 65 41 28 44 57 4f 52 44 2c 20 4c 50 53  NameA(DWORD, LPS
0f90: 54 52 2c 20 44 57 4f 52 44 29 3b 0a 09 44 57 4f  TR, DWORD);..DWO
0fa0: 52 44 20 56 65 72 4c 61 6e 67 75 61 67 65 4e 61  RD VerLanguageNa
0fb0: 6d 65 57 28 44 57 4f 52 44 2c 20 4c 50 57 53 54  meW(DWORD, LPWST
0fc0: 52 2c 20 44 57 4f 52 44 29 3b 0a 09 42 4f 4f 4c  R, DWORD);..BOOL
0fd0: 20 56 65 72 51 75 65 72 79 56 61 6c 75 65 41 28   VerQueryValueA(
0fe0: 4c 50 43 56 4f 49 44 2c 20 4c 50 43 53 54 52 2c  LPCVOID, LPCSTR,
0ff0: 20 4c 50 56 4f 49 44 2a 2c 20 50 55 49 4e 54 29   LPVOID*, PUINT)
1000: 3b 0a 09 42 4f 4f 4c 20 56 65 72 51 75 65 72 79  ;..BOOL VerQuery
1010: 56 61 6c 75 65 57 28 4c 50 43 56 4f 49 44 2c 20  ValueW(LPCVOID, 
1020: 4c 50 43 57 53 54 52 2c 20 4c 50 56 4f 49 44 2a  LPCWSTR, LPVOID*
1030: 2c 20 50 55 49 4e 54 29 3b 0a 7d 0a 0a 76 65 72  , PUINT);.}..ver
1040: 73 69 6f 6e 20 28 55 6e 69 63 6f 64 65 29 20 7b  sion (Unicode) {
1050: 0a 09 61 6c 69 61 73 20 56 65 72 46 69 6e 64 46  ..alias VerFindF
1060: 69 6c 65 57 20 56 65 72 46 69 6e 64 46 69 6c 65  ileW VerFindFile
1070: 3b 0a 09 61 6c 69 61 73 20 56 65 72 51 75 65 72  ;..alias VerQuer
1080: 79 56 61 6c 75 65 57 20 56 65 72 51 75 65 72 79  yValueW VerQuery
1090: 56 61 6c 75 65 3b 0a 09 61 6c 69 61 73 20 56 65  Value;..alias Ve
10a0: 72 49 6e 73 74 61 6c 6c 46 69 6c 65 57 20 56 65  rInstallFileW Ve
10b0: 72 49 6e 73 74 61 6c 6c 46 69 6c 65 3b 0a 09 61  rInstallFile;..a
10c0: 6c 69 61 73 20 47 65 74 46 69 6c 65 56 65 72 73  lias GetFileVers
10d0: 69 6f 6e 49 6e 66 6f 53 69 7a 65 57 20 47 65 74  ionInfoSizeW Get
10e0: 46 69 6c 65 56 65 72 73 69 6f 6e 49 6e 66 6f 53  FileVersionInfoS
10f0: 69 7a 65 3b 0a 09 61 6c 69 61 73 20 47 65 74 46  ize;..alias GetF
1100: 69 6c 65 56 65 72 73 69 6f 6e 49 6e 66 6f 57 20  ileVersionInfoW 
1110: 47 65 74 46 69 6c 65 56 65 72 73 69 6f 6e 49 6e  GetFileVersionIn
1120: 66 6f 3b 0a 09 61 6c 69 61 73 20 56 65 72 4c 61  fo;..alias VerLa
1130: 6e 67 75 61 67 65 4e 61 6d 65 57 20 56 65 72 4c  nguageNameW VerL
1140: 61 6e 67 75 61 67 65 4e 61 6d 65 3b 0a 09 61 6c  anguageName;..al
1150: 69 61 73 20 56 65 72 51 75 65 72 79 56 61 6c 75  ias VerQueryValu
1160: 65 57 20 56 65 72 51 75 65 72 79 56 61 6c 75 65  eW VerQueryValue
1170: 3b 0a 7d 20 65 6c 73 65 20 7b 0a 09 61 6c 69 61  ;.} else {..alia
1180: 73 20 56 65 72 51 75 65 72 79 56 61 6c 75 65 41  s VerQueryValueA
1190: 20 56 65 72 51 75 65 72 79 56 61 6c 75 65 3b 0a   VerQueryValue;.
11a0: 09 61 6c 69 61 73 20 56 65 72 46 69 6e 64 46 69  .alias VerFindFi
11b0: 6c 65 41 20 56 65 72 46 69 6e 64 46 69 6c 65 3b  leA VerFindFile;
11c0: 0a 09 61 6c 69 61 73 20 56 65 72 49 6e 73 74 61  ..alias VerInsta
11d0: 6c 6c 46 69 6c 65 41 20 56 65 72 49 6e 73 74 61  llFileA VerInsta
11e0: 6c 6c 46 69 6c 65 3b 0a 09 61 6c 69 61 73 20 47  llFile;..alias G
11f0: 65 74 46 69 6c 65 56 65 72 73 69 6f 6e 49 6e 66  etFileVersionInf
1200: 6f 53 69 7a 65 41 20 47 65 74 46 69 6c 65 56 65  oSizeA GetFileVe
1210: 72 73 69 6f 6e 49 6e 66 6f 53 69 7a 65 3b 0a 09  rsionInfoSize;..
1220: 61 6c 69 61 73 20 47 65 74 46 69 6c 65 56 65 72  alias GetFileVer
1230: 73 69 6f 6e 49 6e 66 6f 41 20 47 65 74 46 69 6c  sionInfoA GetFil
1240: 65 56 65 72 73 69 6f 6e 49 6e 66 6f 3b 0a 09 61  eVersionInfo;..a
1250: 6c 69 61 73 20 56 65 72 4c 61 6e 67 75 61 67 65  lias VerLanguage
1260: 4e 61 6d 65 41 20 56 65 72 4c 61 6e 67 75 61 67  NameA VerLanguag
1270: 65 4e 61 6d 65 3b 0a 09 61 6c 69 61 73 20 56 65  eName;..alias Ve
1280: 72 51 75 65 72 79 56 61 6c 75 65 41 20 56 65 72  rQueryValueA Ver
1290: 51 75 65 72 79 56 61 6c 75 65 3b 0a 7d 0a        QueryValue;.}.