1
|
1 /***********************************************************************\
|
|
2 * winver.d *
|
|
3 * *
|
|
4 * Windows API header module *
|
|
5 * *
|
|
6 * Translated from MinGW Windows headers *
|
|
7 * by Stewart Gordon *
|
|
8 * *
|
|
9 * Placed into public domain *
|
|
10 \***********************************************************************/
|
|
11 module win32.winver;
|
|
12
|
|
13 private import win32.windef;
|
|
14
|
|
15 // FIXME: type weirdness
|
|
16 enum {
|
|
17 VS_FILE_INFO = 16,
|
|
18 VS_VERSION_INFO = 1,
|
|
19 VS_USER_DEFINED = 100
|
|
20 }
|
|
21
|
|
22 enum {
|
|
23 VS_FFI_SIGNATURE = 0xFEEF04BD,
|
|
24 VS_FFI_STRUCVERSION = 0x10000,
|
|
25 VS_FFI_FILEFLAGSMASK = 0x3F
|
|
26 }
|
|
27
|
|
28 enum {
|
|
29 VS_FF_DEBUG = 1,
|
|
30 VS_FF_PRERELEASE = 2,
|
|
31 VS_FF_PATCHED = 4,
|
|
32 VS_FF_PRIVATEBUILD = 8,
|
|
33 VS_FF_INFOINFERRED = 16,
|
|
34 VS_FF_SPECIALBUILD = 32
|
|
35 }
|
|
36
|
|
37 enum {
|
|
38 VOS_UNKNOWN = 0,
|
|
39 VOS_DOS = 0x10000,
|
|
40 VOS_OS216 = 0x20000,
|
|
41 VOS_OS232 = 0x30000,
|
|
42 VOS_NT = 0x40000,
|
|
43 VOS__BASE = 0,
|
|
44 VOS__WINDOWS16 = 1,
|
|
45 VOS__PM16 = 2,
|
|
46 VOS__PM32 = 3,
|
|
47 VOS__WINDOWS32 = 4,
|
|
48 VOS_DOS_WINDOWS16 = 0x10001,
|
|
49 VOS_DOS_WINDOWS32 = 0x10004,
|
|
50 VOS_OS216_PM16 = 0x20002,
|
|
51 VOS_OS232_PM32 = 0x30003,
|
|
52 VOS_NT_WINDOWS32 = 0x40004
|
|
53 }
|
|
54
|
|
55 enum {
|
|
56 VFT_UNKNOWN = 0,
|
|
57 VFT_APP = 1,
|
|
58 VFT_DLL = 2,
|
|
59 VFT_DRV = 3,
|
|
60 VFT_FONT = 4,
|
|
61 VFT_VXD = 5,
|
|
62 VFT_STATIC_LIB = 7
|
|
63 }
|
|
64
|
|
65 enum {
|
|
66 VFT2_UNKNOWN = 0,
|
|
67 VFT2_DRV_PRINTER = 1,
|
|
68 VFT2_DRV_KEYBOARD = 2,
|
|
69 VFT2_DRV_LANGUAGE = 3,
|
|
70 VFT2_DRV_DISPLAY = 4,
|
|
71 VFT2_DRV_MOUSE = 5,
|
|
72 VFT2_DRV_NETWORK = 6,
|
|
73 VFT2_DRV_SYSTEM = 7,
|
|
74 VFT2_DRV_INSTALLABLE = 8,
|
|
75 VFT2_DRV_SOUND = 9,
|
|
76 VFT2_DRV_COMM = 10,
|
|
77 VFT2_DRV_INPUTMETHOD = 11,
|
|
78 VFT2_FONT_RASTER = 1,
|
|
79 VFT2_FONT_VECTOR = 2,
|
|
80 VFT2_FONT_TRUETYPE = 3
|
|
81 }
|
|
82
|
|
83 enum : DWORD {
|
|
84 VFFF_ISSHAREDFILE = 1
|
|
85 }
|
|
86
|
|
87 enum : DWORD {
|
|
88 VFF_CURNEDEST = 1,
|
|
89 VFF_FILEINUSE = 2,
|
|
90 VFF_BUFFTOOSMALL = 4
|
|
91 }
|
|
92
|
|
93 enum : DWORD {
|
|
94 VIFF_FORCEINSTALL = 1,
|
|
95 VIFF_DONTDELETEOLD
|
|
96 }
|
|
97
|
|
98 enum {
|
|
99 VIF_TEMPFILE = 0x00001,
|
|
100 VIF_MISMATCH = 0x00002,
|
|
101 VIF_SRCOLD = 0x00004,
|
|
102 VIF_DIFFLANG = 0x00008,
|
|
103 VIF_DIFFCODEPG = 0x00010,
|
|
104 VIF_DIFFTYPE = 0x00020,
|
|
105 VIF_WRITEPROT = 0x00040,
|
|
106 VIF_FILEINUSE = 0x00080,
|
|
107 VIF_OUTOFSPACE = 0x00100,
|
|
108 VIF_ACCESSVIOLATION = 0x00200,
|
|
109 VIF_SHARINGVIOLATION = 0x00400,
|
|
110 VIF_CANNOTCREATE = 0x00800,
|
|
111 VIF_CANNOTDELETE = 0x01000,
|
|
112 VIF_CANNOTRENAME = 0x02000,
|
|
113 VIF_CANNOTDELETECUR = 0x04000,
|
|
114 VIF_OUTOFMEMORY = 0x08000,
|
|
115 VIF_CANNOTREADSRC = 0x10000,
|
|
116 VIF_CANNOTREADDST = 0x20000,
|
|
117 VIF_BUFFTOOSMALL = 0x40000
|
|
118 }
|
|
119
|
|
120 struct VS_FIXEDFILEINFO {
|
|
121 DWORD dwSignature;
|
|
122 DWORD dwStrucVersion;
|
|
123 DWORD dwFileVersionMS;
|
|
124 DWORD dwFileVersionLS;
|
|
125 DWORD dwProductVersionMS;
|
|
126 DWORD dwProductVersionLS;
|
|
127 DWORD dwFileFlagsMask;
|
|
128 DWORD dwFileFlags;
|
|
129 DWORD dwFileOS;
|
|
130 DWORD dwFileType;
|
|
131 DWORD dwFileSubtype;
|
|
132 DWORD dwFileDateMS;
|
|
133 DWORD dwFileDateLS;
|
|
134 }
|
|
135
|
|
136 extern (Windows) {
|
|
137 DWORD VerFindFileA(DWORD, LPSTR, LPSTR, LPSTR, LPSTR, PUINT, LPSTR,
|
|
138 PUINT);
|
|
139 DWORD VerFindFileW(DWORD, LPWSTR, LPWSTR, LPWSTR, LPWSTR, PUINT, LPWSTR,
|
|
140 PUINT);
|
|
141 DWORD VerInstallFileA(DWORD, LPSTR, LPSTR, LPSTR, LPSTR, LPSTR, LPSTR,
|
|
142 PUINT);
|
|
143 DWORD VerInstallFileW(DWORD, LPWSTR, LPWSTR, LPWSTR, LPWSTR, LPWSTR,
|
|
144 LPWSTR, PUINT);
|
|
145 DWORD GetFileVersionInfoSizeA(LPSTR, PDWORD);
|
|
146 DWORD GetFileVersionInfoSizeW(LPWSTR, PDWORD);
|
|
147 BOOL GetFileVersionInfoA(LPSTR, DWORD, DWORD, PVOID);
|
|
148 BOOL GetFileVersionInfoW(LPWSTR, DWORD, DWORD, PVOID);
|
|
149 DWORD VerLanguageNameA(DWORD, LPSTR, DWORD);
|
|
150 DWORD VerLanguageNameW(DWORD, LPWSTR, DWORD);
|
|
151 BOOL VerQueryValueA(LPVOID, LPSTR, LPVOID*, PUINT);
|
|
152 BOOL VerQueryValueW(LPVOID, LPWSTR, LPVOID*, PUINT);
|
|
153 }
|
|
154
|
|
155 version (Unicode) {
|
|
156 alias VerFindFileW VerFindFile;
|
|
157 alias VerQueryValueW VerQueryValue;
|
|
158 alias VerInstallFileW VerInstallFile;
|
|
159 alias GetFileVersionInfoSizeW GetFileVersionInfoSize;
|
|
160 alias GetFileVersionInfoW GetFileVersionInfo;
|
|
161 alias VerLanguageNameW VerLanguageName;
|
|
162 alias VerQueryValueW VerQueryValue;
|
|
163 } else {
|
|
164 alias VerQueryValueA VerQueryValue;
|
|
165 alias VerFindFileA VerFindFile;
|
|
166 alias VerInstallFileA VerInstallFile;
|
|
167 alias GetFileVersionInfoSizeA GetFileVersionInfoSize;
|
|
168 alias GetFileVersionInfoA GetFileVersionInfo;
|
|
169 alias VerLanguageNameA VerLanguageName;
|
|
170 alias VerQueryValueA VerQueryValue;
|
|
171 }
|