Artifact 52b0f6d426cf88dfad71a1014d60ede2b97c206f:
- File
src/win32/winver.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
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 ..