Hex Artifact Content

Not logged in

Artifact 52b0f6d426cf88dfad71a1014d60ede2b97c206f:


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 0d 0a 2a 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 20 77 69 6e 76              winv
0070: 65 72 2e 64 20 20 20 20 20 20 20 20 20 20 20 20  er.d            
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0090: 20 20 20 2a 0d 0a 2a 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 20 20 2a 0d                *.
00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .*              
00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73           Windows
0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75   API header modu
0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20  le              
0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 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: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20      *..*        
0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61           Transla
0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57  ted from MinGW W
01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20  indows headers  
01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a                 *
01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20  ..*             
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 79                by
01e0: 20 53 74 65 77 61 72 74 20 47 6f 72 64 6f 6e 20   Stewart Gordon 
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 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 20 20                  
0250: 20 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20       *..*       
0260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0270: 50 6c 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c  Placed into publ
0280: 69 63 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20  ic domain       
0290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
02a0: 2a 0d 0a 5c 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 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f  ***********/..mo
02f0: 64 75 6c 65 20 77 69 6e 33 32 2e 77 69 6e 76 65  dule win32.winve
0300: 72 3b 0d 0a 70 72 61 67 6d 61 28 6c 69 62 2c 20  r;..pragma(lib, 
0310: 22 76 65 72 73 69 6f 6e 22 29 3b 0d 0a 0d 0a 70  "version");....p
0320: 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77 69  rivate import wi
0330: 6e 33 32 2e 77 69 6e 64 65 66 3b 0d 0a 0d 0a 2f  n32.windef;..../
0340: 2f 20 46 49 58 4d 45 3a 20 74 79 70 65 20 77 65  / FIXME: type we
0350: 69 72 64 6e 65 73 73 0d 0a 65 6e 75 6d 20 7b 0d  irdness..enum {.
0360: 0a 09 56 53 5f 46 49 4c 45 5f 49 4e 46 4f 20 20  ..VS_FILE_INFO  
0370: 20 20 3d 20 20 31 36 2c 0d 0a 09 56 53 5f 56 45    =  16,...VS_VE
0380: 52 53 49 4f 4e 5f 49 4e 46 4f 20 3d 20 20 20 31  RSION_INFO =   1
0390: 2c 0d 0a 09 56 53 5f 55 53 45 52 5f 44 45 46 49  ,...VS_USER_DEFI
03a0: 4e 45 44 20 3d 20 31 30 30 0d 0a 7d 0d 0a 0d 0a  NED = 100..}....
03b0: 65 6e 75 6d 20 7b 0d 0a 09 56 53 5f 46 46 49 5f  enum {...VS_FFI_
03c0: 53 49 47 4e 41 54 55 52 45 20 20 20 20 20 3d 20  SIGNATURE     = 
03d0: 30 78 46 45 45 46 30 34 42 44 2c 0d 0a 09 56 53  0xFEEF04BD,...VS
03e0: 5f 46 46 49 5f 53 54 52 55 43 56 45 52 53 49 4f  _FFI_STRUCVERSIO
03f0: 4e 20 20 3d 20 20 20 20 30 78 31 30 30 30 30 2c  N  =    0x10000,
0400: 0d 0a 09 56 53 5f 46 46 49 5f 46 49 4c 45 46 4c  ...VS_FFI_FILEFL
0410: 41 47 53 4d 41 53 4b 20 3d 20 20 20 20 20 20 20  AGSMASK =       
0420: 30 78 33 46 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20  0x3F..}....enum 
0430: 7b 0d 0a 09 56 53 5f 46 46 5f 44 45 42 55 47 20  {...VS_FF_DEBUG 
0440: 20 20 20 20 20 20 20 3d 20 20 31 2c 0d 0a 09 56         =  1,...V
0450: 53 5f 46 46 5f 50 52 45 52 45 4c 45 41 53 45 20  S_FF_PRERELEASE 
0460: 20 20 3d 20 20 32 2c 0d 0a 09 56 53 5f 46 46 5f    =  2,...VS_FF_
0470: 50 41 54 43 48 45 44 20 20 20 20 20 20 3d 20 20  PATCHED      =  
0480: 34 2c 0d 0a 09 56 53 5f 46 46 5f 50 52 49 56 41  4,...VS_FF_PRIVA
0490: 54 45 42 55 49 4c 44 20 3d 20 20 38 2c 0d 0a 09  TEBUILD =  8,...
04a0: 56 53 5f 46 46 5f 49 4e 46 4f 49 4e 46 45 52 52  VS_FF_INFOINFERR
04b0: 45 44 20 3d 20 31 36 2c 0d 0a 09 56 53 5f 46 46  ED = 16,...VS_FF
04c0: 5f 53 50 45 43 49 41 4c 42 55 49 4c 44 20 3d 20  _SPECIALBUILD = 
04d0: 33 32 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d  32..}....enum {.
04e0: 0a 09 56 4f 53 5f 55 4e 4b 4e 4f 57 4e 20 20 20  ..VOS_UNKNOWN   
04f0: 20 20 20 20 3d 20 20 20 20 20 20 20 30 2c 0d 0a      =       0,..
0500: 09 56 4f 53 5f 44 4f 53 20 20 20 20 20 20 20 20  .VOS_DOS        
0510: 20 20 20 3d 20 30 78 31 30 30 30 30 2c 0d 0a 09     = 0x10000,...
0520: 56 4f 53 5f 4f 53 32 31 36 20 20 20 20 20 20 20  VOS_OS216       
0530: 20 20 3d 20 30 78 32 30 30 30 30 2c 0d 0a 09 56    = 0x20000,...V
0540: 4f 53 5f 4f 53 32 33 32 20 20 20 20 20 20 20 20  OS_OS232        
0550: 20 3d 20 30 78 33 30 30 30 30 2c 0d 0a 09 56 4f   = 0x30000,...VO
0560: 53 5f 4e 54 20 20 20 20 20 20 20 20 20 20 20 20  S_NT            
0570: 3d 20 30 78 34 30 30 30 30 2c 0d 0a 09 56 4f 53  = 0x40000,...VOS
0580: 5f 5f 42 41 53 45 20 20 20 20 20 20 20 20 20 3d  __BASE         =
0590: 20 20 20 20 20 20 20 30 2c 0d 0a 09 56 4f 53 5f         0,...VOS_
05a0: 5f 57 49 4e 44 4f 57 53 31 36 20 20 20 20 3d 20  _WINDOWS16    = 
05b0: 20 20 20 20 20 20 31 2c 0d 0a 09 56 4f 53 5f 5f        1,...VOS__
05c0: 50 4d 31 36 20 20 20 20 20 20 20 20 20 3d 20 20  PM16         =  
05d0: 20 20 20 20 20 32 2c 0d 0a 09 56 4f 53 5f 5f 50       2,...VOS__P
05e0: 4d 33 32 20 20 20 20 20 20 20 20 20 3d 20 20 20  M32         =   
05f0: 20 20 20 20 33 2c 0d 0a 09 56 4f 53 5f 5f 57 49      3,...VOS__WI
0600: 4e 44 4f 57 53 33 32 20 20 20 20 3d 20 20 20 20  NDOWS32    =    
0610: 20 20 20 34 2c 0d 0a 09 56 4f 53 5f 44 4f 53 5f     4,...VOS_DOS_
0620: 57 49 4e 44 4f 57 53 31 36 20 3d 20 30 78 31 30  WINDOWS16 = 0x10
0630: 30 30 31 2c 0d 0a 09 56 4f 53 5f 44 4f 53 5f 57  001,...VOS_DOS_W
0640: 49 4e 44 4f 57 53 33 32 20 3d 20 30 78 31 30 30  INDOWS32 = 0x100
0650: 30 34 2c 0d 0a 09 56 4f 53 5f 4f 53 32 31 36 5f  04,...VOS_OS216_
0660: 50 4d 31 36 20 20 20 20 3d 20 30 78 32 30 30 30  PM16    = 0x2000
0670: 32 2c 0d 0a 09 56 4f 53 5f 4f 53 32 33 32 5f 50  2,...VOS_OS232_P
0680: 4d 33 32 20 20 20 20 3d 20 30 78 33 30 30 30 33  M32    = 0x30003
0690: 2c 0d 0a 09 56 4f 53 5f 4e 54 5f 57 49 4e 44 4f  ,...VOS_NT_WINDO
06a0: 57 53 33 32 20 20 3d 20 30 78 34 30 30 30 34 0d  WS32  = 0x40004.
06b0: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 56  .}....enum {...V
06c0: 46 54 5f 55 4e 4b 4e 4f 57 4e 20 20 20 20 3d 20  FT_UNKNOWN    = 
06d0: 30 2c 0d 0a 09 56 46 54 5f 41 50 50 20 20 20 20  0,...VFT_APP    
06e0: 20 20 20 20 3d 20 31 2c 0d 0a 09 56 46 54 5f 44      = 1,...VFT_D
06f0: 4c 4c 20 20 20 20 20 20 20 20 3d 20 32 2c 0d 0a  LL        = 2,..
0700: 09 56 46 54 5f 44 52 56 20 20 20 20 20 20 20 20  .VFT_DRV        
0710: 3d 20 33 2c 0d 0a 09 56 46 54 5f 46 4f 4e 54 20  = 3,...VFT_FONT 
0720: 20 20 20 20 20 20 3d 20 34 2c 0d 0a 09 56 46 54        = 4,...VFT
0730: 5f 56 58 44 20 20 20 20 20 20 20 20 3d 20 35 2c  _VXD        = 5,
0740: 0d 0a 09 56 46 54 5f 53 54 41 54 49 43 5f 4c 49  ...VFT_STATIC_LI
0750: 42 20 3d 20 37 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d  B = 7..}....enum
0760: 20 7b 0d 0a 09 56 46 54 32 5f 55 4e 4b 4e 4f 57   {...VFT2_UNKNOW
0770: 4e 20 20 20 20 20 20 20 20 20 3d 20 20 30 2c 0d  N         =  0,.
0780: 0a 09 56 46 54 32 5f 44 52 56 5f 50 52 49 4e 54  ..VFT2_DRV_PRINT
0790: 45 52 20 20 20 20 20 3d 20 20 31 2c 0d 0a 09 56  ER     =  1,...V
07a0: 46 54 32 5f 44 52 56 5f 4b 45 59 42 4f 41 52 44  FT2_DRV_KEYBOARD
07b0: 20 20 20 20 3d 20 20 32 2c 0d 0a 09 56 46 54 32      =  2,...VFT2
07c0: 5f 44 52 56 5f 4c 41 4e 47 55 41 47 45 20 20 20  _DRV_LANGUAGE   
07d0: 20 3d 20 20 33 2c 0d 0a 09 56 46 54 32 5f 44 52   =  3,...VFT2_DR
07e0: 56 5f 44 49 53 50 4c 41 59 20 20 20 20 20 3d 20  V_DISPLAY     = 
07f0: 20 34 2c 0d 0a 09 56 46 54 32 5f 44 52 56 5f 4d   4,...VFT2_DRV_M
0800: 4f 55 53 45 20 20 20 20 20 20 20 3d 20 20 35 2c  OUSE       =  5,
0810: 0d 0a 09 56 46 54 32 5f 44 52 56 5f 4e 45 54 57  ...VFT2_DRV_NETW
0820: 4f 52 4b 20 20 20 20 20 3d 20 20 36 2c 0d 0a 09  ORK     =  6,...
0830: 56 46 54 32 5f 44 52 56 5f 53 59 53 54 45 4d 20  VFT2_DRV_SYSTEM 
0840: 20 20 20 20 20 3d 20 20 37 2c 0d 0a 09 56 46 54       =  7,...VFT
0850: 32 5f 44 52 56 5f 49 4e 53 54 41 4c 4c 41 42 4c  2_DRV_INSTALLABL
0860: 45 20 3d 20 20 38 2c 0d 0a 09 56 46 54 32 5f 44  E =  8,...VFT2_D
0870: 52 56 5f 53 4f 55 4e 44 20 20 20 20 20 20 20 3d  RV_SOUND       =
0880: 20 20 39 2c 0d 0a 09 56 46 54 32 5f 44 52 56 5f    9,...VFT2_DRV_
0890: 43 4f 4d 4d 20 20 20 20 20 20 20 20 3d 20 31 30  COMM        = 10
08a0: 2c 0d 0a 09 56 46 54 32 5f 44 52 56 5f 49 4e 50  ,...VFT2_DRV_INP
08b0: 55 54 4d 45 54 48 4f 44 20 3d 20 31 31 2c 0d 0a  UTMETHOD = 11,..
08c0: 09 56 46 54 32 5f 46 4f 4e 54 5f 52 41 53 54 45  .VFT2_FONT_RASTE
08d0: 52 20 20 20 20 20 3d 20 20 31 2c 0d 0a 09 56 46  R     =  1,...VF
08e0: 54 32 5f 46 4f 4e 54 5f 56 45 43 54 4f 52 20 20  T2_FONT_VECTOR  
08f0: 20 20 20 3d 20 20 32 2c 0d 0a 09 56 46 54 32 5f     =  2,...VFT2_
0900: 46 4f 4e 54 5f 54 52 55 45 54 59 50 45 20 20 20  FONT_TRUETYPE   
0910: 3d 20 20 33 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20  =  3..}....enum 
0920: 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 56 46 46 46  : DWORD {...VFFF
0930: 5f 49 53 53 48 41 52 45 44 46 49 4c 45 20 3d 20  _ISSHAREDFILE = 
0940: 31 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44  1..}....enum : D
0950: 57 4f 52 44 20 7b 0d 0a 09 56 46 46 5f 43 55 52  WORD {...VFF_CUR
0960: 4e 45 44 45 53 54 20 20 20 20 3d 20 31 2c 0d 0a  NEDEST    = 1,..
0970: 09 56 46 46 5f 46 49 4c 45 49 4e 55 53 45 20 20  .VFF_FILEINUSE  
0980: 20 20 3d 20 32 2c 0d 0a 09 56 46 46 5f 42 55 46    = 2,...VFF_BUF
0990: 46 54 4f 4f 53 4d 41 4c 4c 20 3d 20 34 0d 0a 7d  FTOOSMALL = 4..}
09a0: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44  ....enum : DWORD
09b0: 20 7b 0d 0a 09 56 49 46 46 5f 46 4f 52 43 45 49   {...VIFF_FORCEI
09c0: 4e 53 54 41 4c 4c 20 20 3d 20 31 2c 0d 0a 09 56  NSTALL  = 1,...V
09d0: 49 46 46 5f 44 4f 4e 54 44 45 4c 45 54 45 4f 4c  IFF_DONTDELETEOL
09e0: 44 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a  D..}....enum {..
09f0: 09 56 49 46 5f 54 45 4d 50 46 49 4c 45 20 20 20  .VIF_TEMPFILE   
0a00: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 31 2c        = 0x00001,
0a10: 0d 0a 09 56 49 46 5f 4d 49 53 4d 41 54 43 48 20  ...VIF_MISMATCH 
0a20: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30          = 0x0000
0a30: 32 2c 0d 0a 09 56 49 46 5f 53 52 43 4f 4c 44 20  2,...VIF_SRCOLD 
0a40: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
0a50: 30 30 34 2c 0d 0a 09 56 49 46 5f 44 49 46 46 4c  004,...VIF_DIFFL
0a60: 41 4e 47 20 20 20 20 20 20 20 20 20 3d 20 30 78  ANG         = 0x
0a70: 30 30 30 30 38 2c 0d 0a 09 56 49 46 5f 44 49 46  00008,...VIF_DIF
0a80: 46 43 4f 44 45 50 47 20 20 20 20 20 20 20 3d 20  FCODEPG       = 
0a90: 30 78 30 30 30 31 30 2c 0d 0a 09 56 49 46 5f 44  0x00010,...VIF_D
0aa0: 49 46 46 54 59 50 45 20 20 20 20 20 20 20 20 20  IFFTYPE         
0ab0: 3d 20 30 78 30 30 30 32 30 2c 0d 0a 09 56 49 46  = 0x00020,...VIF
0ac0: 5f 57 52 49 54 45 50 52 4f 54 20 20 20 20 20 20  _WRITEPROT      
0ad0: 20 20 3d 20 30 78 30 30 30 34 30 2c 0d 0a 09 56    = 0x00040,...V
0ae0: 49 46 5f 46 49 4c 45 49 4e 55 53 45 20 20 20 20  IF_FILEINUSE    
0af0: 20 20 20 20 3d 20 30 78 30 30 30 38 30 2c 0d 0a      = 0x00080,..
0b00: 09 56 49 46 5f 4f 55 54 4f 46 53 50 41 43 45 20  .VIF_OUTOFSPACE 
0b10: 20 20 20 20 20 20 3d 20 30 78 30 30 31 30 30 2c        = 0x00100,
0b20: 0d 0a 09 56 49 46 5f 41 43 43 45 53 53 56 49 4f  ...VIF_ACCESSVIO
0b30: 4c 41 54 49 4f 4e 20 20 3d 20 30 78 30 30 32 30  LATION  = 0x0020
0b40: 30 2c 0d 0a 09 56 49 46 5f 53 48 41 52 49 4e 47  0,...VIF_SHARING
0b50: 56 49 4f 4c 41 54 49 4f 4e 20 3d 20 30 78 30 30  VIOLATION = 0x00
0b60: 34 30 30 2c 0d 0a 09 56 49 46 5f 43 41 4e 4e 4f  400,...VIF_CANNO
0b70: 54 43 52 45 41 54 45 20 20 20 20 20 3d 20 30 78  TCREATE     = 0x
0b80: 30 30 38 30 30 2c 0d 0a 09 56 49 46 5f 43 41 4e  00800,...VIF_CAN
0b90: 4e 4f 54 44 45 4c 45 54 45 20 20 20 20 20 3d 20  NOTDELETE     = 
0ba0: 30 78 30 31 30 30 30 2c 0d 0a 09 56 49 46 5f 43  0x01000,...VIF_C
0bb0: 41 4e 4e 4f 54 52 45 4e 41 4d 45 20 20 20 20 20  ANNOTRENAME     
0bc0: 3d 20 30 78 30 32 30 30 30 2c 0d 0a 09 56 49 46  = 0x02000,...VIF
0bd0: 5f 43 41 4e 4e 4f 54 44 45 4c 45 54 45 43 55 52  _CANNOTDELETECUR
0be0: 20 20 3d 20 30 78 30 34 30 30 30 2c 0d 0a 09 56    = 0x04000,...V
0bf0: 49 46 5f 4f 55 54 4f 46 4d 45 4d 4f 52 59 20 20  IF_OUTOFMEMORY  
0c00: 20 20 20 20 3d 20 30 78 30 38 30 30 30 2c 0d 0a      = 0x08000,..
0c10: 09 56 49 46 5f 43 41 4e 4e 4f 54 52 45 41 44 53  .VIF_CANNOTREADS
0c20: 52 43 20 20 20 20 3d 20 30 78 31 30 30 30 30 2c  RC    = 0x10000,
0c30: 0d 0a 09 56 49 46 5f 43 41 4e 4e 4f 54 52 45 41  ...VIF_CANNOTREA
0c40: 44 44 53 54 20 20 20 20 3d 20 30 78 32 30 30 30  DDST    = 0x2000
0c50: 30 2c 0d 0a 09 56 49 46 5f 42 55 46 46 54 4f 4f  0,...VIF_BUFFTOO
0c60: 53 4d 41 4c 4c 20 20 20 20 20 3d 20 30 78 34 30  SMALL     = 0x40
0c70: 30 30 30 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74  000..}....struct
0c80: 20 56 53 5f 46 49 58 45 44 46 49 4c 45 49 4e 46   VS_FIXEDFILEINF
0c90: 4f 20 7b 0d 0a 09 44 57 4f 52 44 20 64 77 53 69  O {...DWORD dwSi
0ca0: 67 6e 61 74 75 72 65 3b 0d 0a 09 44 57 4f 52 44  gnature;...DWORD
0cb0: 20 64 77 53 74 72 75 63 56 65 72 73 69 6f 6e 3b   dwStrucVersion;
0cc0: 0d 0a 09 44 57 4f 52 44 20 64 77 46 69 6c 65 56  ...DWORD dwFileV
0cd0: 65 72 73 69 6f 6e 4d 53 3b 0d 0a 09 44 57 4f 52  ersionMS;...DWOR
0ce0: 44 20 64 77 46 69 6c 65 56 65 72 73 69 6f 6e 4c  D dwFileVersionL
0cf0: 53 3b 0d 0a 09 44 57 4f 52 44 20 64 77 50 72 6f  S;...DWORD dwPro
0d00: 64 75 63 74 56 65 72 73 69 6f 6e 4d 53 3b 0d 0a  ductVersionMS;..
0d10: 09 44 57 4f 52 44 20 64 77 50 72 6f 64 75 63 74  .DWORD dwProduct
0d20: 56 65 72 73 69 6f 6e 4c 53 3b 0d 0a 09 44 57 4f  VersionLS;...DWO
0d30: 52 44 20 64 77 46 69 6c 65 46 6c 61 67 73 4d 61  RD dwFileFlagsMa
0d40: 73 6b 3b 0d 0a 09 44 57 4f 52 44 20 64 77 46 69  sk;...DWORD dwFi
0d50: 6c 65 46 6c 61 67 73 3b 0d 0a 09 44 57 4f 52 44  leFlags;...DWORD
0d60: 20 64 77 46 69 6c 65 4f 53 3b 0d 0a 09 44 57 4f   dwFileOS;...DWO
0d70: 52 44 20 64 77 46 69 6c 65 54 79 70 65 3b 0d 0a  RD dwFileType;..
0d80: 09 44 57 4f 52 44 20 64 77 46 69 6c 65 53 75 62  .DWORD dwFileSub
0d90: 74 79 70 65 3b 0d 0a 09 44 57 4f 52 44 20 64 77  type;...DWORD dw
0da0: 46 69 6c 65 44 61 74 65 4d 53 3b 0d 0a 09 44 57  FileDateMS;...DW
0db0: 4f 52 44 20 64 77 46 69 6c 65 44 61 74 65 4c 53  ORD dwFileDateLS
0dc0: 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20 28  ;..}....extern (
0dd0: 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 44 57 4f  Windows) {...DWO
0de0: 52 44 20 56 65 72 46 69 6e 64 46 69 6c 65 41 28  RD VerFindFileA(
0df0: 44 57 4f 52 44 2c 20 4c 50 43 53 54 52 2c 20 4c  DWORD, LPCSTR, L
0e00: 50 43 53 54 52 2c 20 4c 50 43 53 54 52 2c 20 4c  PCSTR, LPCSTR, L
0e10: 50 53 54 52 2c 20 50 55 49 4e 54 2c 20 4c 50 53  PSTR, PUINT, LPS
0e20: 54 52 2c 0d 0a 09 20 20 50 55 49 4e 54 29 3b 0d  TR,...  PUINT);.
0e30: 0a 09 44 57 4f 52 44 20 56 65 72 46 69 6e 64 46  ..DWORD VerFindF
0e40: 69 6c 65 57 28 44 57 4f 52 44 2c 20 4c 50 43 57  ileW(DWORD, LPCW
0e50: 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50  STR, LPCWSTR, LP
0e60: 43 57 53 54 52 2c 20 4c 50 57 53 54 52 2c 20 50  CWSTR, LPWSTR, P
0e70: 55 49 4e 54 2c 20 4c 50 57 53 54 52 2c 0d 0a 09  UINT, LPWSTR,...
0e80: 20 20 50 55 49 4e 54 29 3b 0d 0a 09 44 57 4f 52    PUINT);...DWOR
0e90: 44 20 56 65 72 49 6e 73 74 61 6c 6c 46 69 6c 65  D VerInstallFile
0ea0: 41 28 44 57 4f 52 44 2c 20 4c 50 43 53 54 52 2c  A(DWORD, LPCSTR,
0eb0: 20 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52 2c   LPCSTR, LPCSTR,
0ec0: 20 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52 2c   LPCSTR, LPCSTR,
0ed0: 20 4c 50 53 54 52 2c 0d 0a 09 20 20 50 55 49 4e   LPSTR,...  PUIN
0ee0: 54 29 3b 0d 0a 09 44 57 4f 52 44 20 56 65 72 49  T);...DWORD VerI
0ef0: 6e 73 74 61 6c 6c 46 69 6c 65 57 28 44 57 4f 52  nstallFileW(DWOR
0f00: 44 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 43 57  D, LPCWSTR, LPCW
0f10: 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50  STR, LPCWSTR, LP
0f20: 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 0d  CWSTR, LPCWSTR,.
0f30: 0a 09 20 20 4c 50 57 53 54 52 2c 20 50 55 49 4e  ..  LPWSTR, PUIN
0f40: 54 29 3b 0d 0a 09 44 57 4f 52 44 20 47 65 74 46  T);...DWORD GetF
0f50: 69 6c 65 56 65 72 73 69 6f 6e 49 6e 66 6f 53 69  ileVersionInfoSi
0f60: 7a 65 41 28 4c 50 43 53 54 52 2c 20 50 44 57 4f  zeA(LPCSTR, PDWO
0f70: 52 44 29 3b 0d 0a 09 44 57 4f 52 44 20 47 65 74  RD);...DWORD Get
0f80: 46 69 6c 65 56 65 72 73 69 6f 6e 49 6e 66 6f 53  FileVersionInfoS
0f90: 69 7a 65 57 28 4c 50 43 57 53 54 52 2c 20 50 44  izeW(LPCWSTR, PD
0fa0: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 47 65  WORD);...BOOL Ge
0fb0: 74 46 69 6c 65 56 65 72 73 69 6f 6e 49 6e 66 6f  tFileVersionInfo
0fc0: 41 28 4c 50 43 53 54 52 2c 20 44 57 4f 52 44 2c  A(LPCSTR, DWORD,
0fd0: 20 44 57 4f 52 44 2c 20 50 56 4f 49 44 29 3b 0d   DWORD, PVOID);.
0fe0: 0a 09 42 4f 4f 4c 20 47 65 74 46 69 6c 65 56 65  ..BOOL GetFileVe
0ff0: 72 73 69 6f 6e 49 6e 66 6f 57 28 4c 50 43 57 53  rsionInfoW(LPCWS
1000: 54 52 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44  TR, DWORD, DWORD
1010: 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 44 57 4f 52  , PVOID);...DWOR
1020: 44 20 56 65 72 4c 61 6e 67 75 61 67 65 4e 61 6d  D VerLanguageNam
1030: 65 41 28 44 57 4f 52 44 2c 20 4c 50 53 54 52 2c  eA(DWORD, LPSTR,
1040: 20 44 57 4f 52 44 29 3b 0d 0a 09 44 57 4f 52 44   DWORD);...DWORD
1050: 20 56 65 72 4c 61 6e 67 75 61 67 65 4e 61 6d 65   VerLanguageName
1060: 57 28 44 57 4f 52 44 2c 20 4c 50 57 53 54 52 2c  W(DWORD, LPWSTR,
1070: 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20   DWORD);...BOOL 
1080: 56 65 72 51 75 65 72 79 56 61 6c 75 65 41 28 4c  VerQueryValueA(L
1090: 50 43 56 4f 49 44 2c 20 4c 50 43 53 54 52 2c 20  PCVOID, LPCSTR, 
10a0: 4c 50 56 4f 49 44 2a 2c 20 50 55 49 4e 54 29 3b  LPVOID*, PUINT);
10b0: 0d 0a 09 42 4f 4f 4c 20 56 65 72 51 75 65 72 79  ...BOOL VerQuery
10c0: 56 61 6c 75 65 57 28 4c 50 43 56 4f 49 44 2c 20  ValueW(LPCVOID, 
10d0: 4c 50 43 57 53 54 52 2c 20 4c 50 56 4f 49 44 2a  LPCWSTR, LPVOID*
10e0: 2c 20 50 55 49 4e 54 29 3b 0d 0a 7d 0d 0a 0d 0a  , PUINT);..}....
10f0: 76 65 72 73 69 6f 6e 20 28 55 6e 69 63 6f 64 65  version (Unicode
1100: 29 20 7b 0d 0a 09 61 6c 69 61 73 20 56 65 72 46  ) {...alias VerF
1110: 69 6e 64 46 69 6c 65 57 20 56 65 72 46 69 6e 64  indFileW VerFind
1120: 46 69 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 56 65  File;...alias Ve
1130: 72 51 75 65 72 79 56 61 6c 75 65 57 20 56 65 72  rQueryValueW Ver
1140: 51 75 65 72 79 56 61 6c 75 65 3b 0d 0a 09 61 6c  QueryValue;...al
1150: 69 61 73 20 56 65 72 49 6e 73 74 61 6c 6c 46 69  ias VerInstallFi
1160: 6c 65 57 20 56 65 72 49 6e 73 74 61 6c 6c 46 69  leW VerInstallFi
1170: 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 47 65 74 46  le;...alias GetF
1180: 69 6c 65 56 65 72 73 69 6f 6e 49 6e 66 6f 53 69  ileVersionInfoSi
1190: 7a 65 57 20 47 65 74 46 69 6c 65 56 65 72 73 69  zeW GetFileVersi
11a0: 6f 6e 49 6e 66 6f 53 69 7a 65 3b 0d 0a 09 61 6c  onInfoSize;...al
11b0: 69 61 73 20 47 65 74 46 69 6c 65 56 65 72 73 69  ias GetFileVersi
11c0: 6f 6e 49 6e 66 6f 57 20 47 65 74 46 69 6c 65 56  onInfoW GetFileV
11d0: 65 72 73 69 6f 6e 49 6e 66 6f 3b 0d 0a 09 61 6c  ersionInfo;...al
11e0: 69 61 73 20 56 65 72 4c 61 6e 67 75 61 67 65 4e  ias VerLanguageN
11f0: 61 6d 65 57 20 56 65 72 4c 61 6e 67 75 61 67 65  ameW VerLanguage
1200: 4e 61 6d 65 3b 0d 0a 09 61 6c 69 61 73 20 56 65  Name;...alias Ve
1210: 72 51 75 65 72 79 56 61 6c 75 65 57 20 56 65 72  rQueryValueW Ver
1220: 51 75 65 72 79 56 61 6c 75 65 3b 0d 0a 7d 20 65  QueryValue;..} e
1230: 6c 73 65 20 7b 0d 0a 09 61 6c 69 61 73 20 56 65  lse {...alias Ve
1240: 72 51 75 65 72 79 56 61 6c 75 65 41 20 56 65 72  rQueryValueA Ver
1250: 51 75 65 72 79 56 61 6c 75 65 3b 0d 0a 09 61 6c  QueryValue;...al
1260: 69 61 73 20 56 65 72 46 69 6e 64 46 69 6c 65 41  ias VerFindFileA
1270: 20 56 65 72 46 69 6e 64 46 69 6c 65 3b 0d 0a 09   VerFindFile;...
1280: 61 6c 69 61 73 20 56 65 72 49 6e 73 74 61 6c 6c  alias VerInstall
1290: 46 69 6c 65 41 20 56 65 72 49 6e 73 74 61 6c 6c  FileA VerInstall
12a0: 46 69 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 47 65  File;...alias Ge
12b0: 74 46 69 6c 65 56 65 72 73 69 6f 6e 49 6e 66 6f  tFileVersionInfo
12c0: 53 69 7a 65 41 20 47 65 74 46 69 6c 65 56 65 72  SizeA GetFileVer
12d0: 73 69 6f 6e 49 6e 66 6f 53 69 7a 65 3b 0d 0a 09  sionInfoSize;...
12e0: 61 6c 69 61 73 20 47 65 74 46 69 6c 65 56 65 72  alias GetFileVer
12f0: 73 69 6f 6e 49 6e 66 6f 41 20 47 65 74 46 69 6c  sionInfoA GetFil
1300: 65 56 65 72 73 69 6f 6e 49 6e 66 6f 3b 0d 0a 09  eVersionInfo;...
1310: 61 6c 69 61 73 20 56 65 72 4c 61 6e 67 75 61 67  alias VerLanguag
1320: 65 4e 61 6d 65 41 20 56 65 72 4c 61 6e 67 75 61  eNameA VerLangua
1330: 67 65 4e 61 6d 65 3b 0d 0a 09 61 6c 69 61 73 20  geName;...alias 
1340: 56 65 72 51 75 65 72 79 56 61 6c 75 65 41 20 56  VerQueryValueA V
1350: 65 72 51 75 65 72 79 56 61 6c 75 65 3b 0d 0a 7d  erQueryValue;..}
1360: 0d 0a                                            ..