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