1
|
1 /***********************************************************************\
|
|
2 * winnls.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.winnls;
|
|
12 pragma(lib, "kernel32.lib");
|
|
13
|
|
14 private import win32.basetsd, win32.w32api, win32.winbase, win32.windef;
|
|
15
|
|
16 alias DWORD LCTYPE, CALTYPE, CALID, LGRPID, GEOID, GEOTYPE, GEOCLASS;
|
|
17
|
|
18 const size_t
|
|
19 MAX_DEFAULTCHAR = 2,
|
|
20 MAX_LEADBYTES = 12;
|
|
21
|
|
22 const LCTYPE
|
|
23 LOCALE_USE_CP_ACP = 0x40000000,
|
|
24 LOCALE_RETURN_NUMBER = 0x20000000;
|
|
25
|
|
26 enum : LCTYPE {
|
|
27 LOCALE_ILANGUAGE = 1,
|
|
28 LOCALE_SLANGUAGE,
|
|
29 LOCALE_SABBREVLANGNAME,
|
|
30 LOCALE_SNATIVELANGNAME,
|
|
31 LOCALE_ICOUNTRY,
|
|
32 LOCALE_SCOUNTRY,
|
|
33 LOCALE_SABBREVCTRYNAME,
|
|
34 LOCALE_SNATIVECTRYNAME,
|
|
35 LOCALE_IDEFAULTLANGUAGE,
|
|
36 LOCALE_IDEFAULTCOUNTRY,
|
|
37 LOCALE_IDEFAULTCODEPAGE,
|
|
38 LOCALE_SLIST,
|
|
39 LOCALE_IMEASURE,
|
|
40 LOCALE_SDECIMAL,
|
|
41 LOCALE_STHOUSAND,
|
|
42 LOCALE_SGROUPING,
|
|
43 LOCALE_IDIGITS,
|
|
44 LOCALE_ILZERO,
|
|
45 LOCALE_SNATIVEDIGITS,
|
|
46 LOCALE_SCURRENCY,
|
|
47 LOCALE_SINTLSYMBOL,
|
|
48 LOCALE_SMONDECIMALSEP,
|
|
49 LOCALE_SMONTHOUSANDSEP,
|
|
50 LOCALE_SMONGROUPING,
|
|
51 LOCALE_ICURRDIGITS,
|
|
52 LOCALE_IINTLCURRDIGITS,
|
|
53 LOCALE_ICURRENCY,
|
|
54 LOCALE_INEGCURR,
|
|
55 LOCALE_SDATE,
|
|
56 LOCALE_STIME,
|
|
57 LOCALE_SSHORTDATE,
|
|
58 LOCALE_SLONGDATE,
|
|
59 LOCALE_IDATE,
|
|
60 LOCALE_ILDATE,
|
|
61 LOCALE_ITIME,
|
|
62 LOCALE_ICENTURY,
|
|
63 LOCALE_ITLZERO,
|
|
64 LOCALE_IDAYLZERO,
|
|
65 LOCALE_IMONLZERO,
|
|
66 LOCALE_S1159,
|
|
67 LOCALE_S2359,
|
|
68 LOCALE_SDAYNAME1,
|
|
69 LOCALE_SDAYNAME2,
|
|
70 LOCALE_SDAYNAME3,
|
|
71 LOCALE_SDAYNAME4,
|
|
72 LOCALE_SDAYNAME5,
|
|
73 LOCALE_SDAYNAME6,
|
|
74 LOCALE_SDAYNAME7,
|
|
75 LOCALE_SABBREVDAYNAME1,
|
|
76 LOCALE_SABBREVDAYNAME2,
|
|
77 LOCALE_SABBREVDAYNAME3,
|
|
78 LOCALE_SABBREVDAYNAME4,
|
|
79 LOCALE_SABBREVDAYNAME5,
|
|
80 LOCALE_SABBREVDAYNAME6,
|
|
81 LOCALE_SABBREVDAYNAME7,
|
|
82 LOCALE_SMONTHNAME1,
|
|
83 LOCALE_SMONTHNAME2,
|
|
84 LOCALE_SMONTHNAME3,
|
|
85 LOCALE_SMONTHNAME4,
|
|
86 LOCALE_SMONTHNAME5,
|
|
87 LOCALE_SMONTHNAME6,
|
|
88 LOCALE_SMONTHNAME7,
|
|
89 LOCALE_SMONTHNAME8,
|
|
90 LOCALE_SMONTHNAME9,
|
|
91 LOCALE_SMONTHNAME10,
|
|
92 LOCALE_SMONTHNAME11,
|
|
93 LOCALE_SMONTHNAME12,
|
|
94 LOCALE_SABBREVMONTHNAME1,
|
|
95 LOCALE_SABBREVMONTHNAME2,
|
|
96 LOCALE_SABBREVMONTHNAME3,
|
|
97 LOCALE_SABBREVMONTHNAME4,
|
|
98 LOCALE_SABBREVMONTHNAME5,
|
|
99 LOCALE_SABBREVMONTHNAME6,
|
|
100 LOCALE_SABBREVMONTHNAME7,
|
|
101 LOCALE_SABBREVMONTHNAME8,
|
|
102 LOCALE_SABBREVMONTHNAME9,
|
|
103 LOCALE_SABBREVMONTHNAME10,
|
|
104 LOCALE_SABBREVMONTHNAME11,
|
|
105 LOCALE_SABBREVMONTHNAME12,
|
|
106 LOCALE_SPOSITIVESIGN,
|
|
107 LOCALE_SNEGATIVESIGN,
|
|
108 LOCALE_IPOSSIGNPOSN,
|
|
109 LOCALE_INEGSIGNPOSN,
|
|
110 LOCALE_IPOSSYMPRECEDES,
|
|
111 LOCALE_IPOSSEPBYSPACE,
|
|
112 LOCALE_INEGSYMPRECEDES,
|
|
113 LOCALE_INEGSEPBYSPACE,
|
|
114 LOCALE_FONTSIGNATURE,
|
|
115 LOCALE_SISO639LANGNAME,
|
|
116 LOCALE_SISO3166CTRYNAME, // = 90
|
|
117 LOCALE_SENGLANGUAGE = 0x1001,
|
|
118 LOCALE_SENGCOUNTRY = 0x1002,
|
|
119 LOCALE_IDEFAULTANSICODEPAGE = 0x1004,
|
|
120 LOCALE_INEGNUMBER = 0x1010,
|
|
121 LOCALE_STIMEFORMAT = 0x1003,
|
|
122 LOCALE_ITIMEMARKPOSN = 0x1005,
|
|
123 LOCALE_ICALENDARTYPE = 0x1009,
|
|
124 LOCALE_IOPTIONALCALENDAR = 0x100B,
|
|
125 LOCALE_IFIRSTDAYOFWEEK = 0x100C,
|
|
126 LOCALE_IFIRSTWEEKOFYEAR = 0x100D,
|
|
127 LOCALE_SMONTHNAME13 = 0x100E,
|
|
128 LOCALE_SABBREVMONTHNAME13 = 0x100F
|
|
129 }
|
|
130
|
|
131 enum : LCID {
|
|
132 LOCALE_USER_DEFAULT = 0x400,
|
|
133 LOCALE_SYSTEM_DEFAULT = 0x800
|
|
134 }
|
|
135
|
|
136 const DWORD
|
|
137 NORM_IGNORECASE = 1,
|
|
138 NORM_IGNORENONSPACE = 2,
|
|
139 NORM_IGNORESYMBOLS = 4,
|
|
140 SORT_STRINGSORT = 0x01000,
|
|
141 NORM_IGNOREKANATYPE = 0x10000,
|
|
142 NORM_IGNOREWIDTH = 0x20000;
|
|
143
|
|
144 const DWORD
|
|
145 LCMAP_LOWERCASE = 0x00000100,
|
|
146 LCMAP_UPPERCASE = 0x00000200,
|
|
147 LCMAP_SORTKEY = 0x00000400,
|
|
148 LCMAP_BYTEREV = 0x00000800,
|
|
149 LCMAP_HIRAGANA = 0x00100000,
|
|
150 LCMAP_KATAKANA = 0x00200000,
|
|
151 LCMAP_HALFWIDTH = 0x00400000,
|
|
152 LCMAP_FULLWIDTH = 0x00800000,
|
|
153 LCMAP_LINGUISTIC_CASING = 0x01000000,
|
|
154 LCMAP_SIMPLIFIED_CHINESE = 0x02000000,
|
|
155 LCMAP_TRADITIONAL_CHINESE = 0x04000000;
|
|
156
|
|
157 const CALID ENUM_ALL_CALENDARS = -1;
|
|
158
|
|
159 const DWORD
|
|
160 DATE_SHORTDATE = 1,
|
|
161 DATE_LONGDATE = 2,
|
|
162 DATE_USE_ALT_CALENDAR = 4,
|
|
163 LOCALE_NOUSEROVERRIDE = 0x80000000;
|
|
164
|
|
165 enum : DWORD {
|
|
166 CP_INSTALLED = 1,
|
|
167 CP_SUPPORTED
|
|
168 }
|
|
169
|
|
170 enum : DWORD {
|
|
171 LCID_INSTALLED = 1,
|
|
172 LCID_SUPPORTED = 2,
|
|
173 LCID_ALTERNATE_SORTS = 4
|
|
174 }
|
|
175
|
|
176 const DWORD
|
|
177 MAP_FOLDCZONE = 16,
|
|
178 MAP_PRECOMPOSED = 32,
|
|
179 MAP_COMPOSITE = 64,
|
|
180 MAP_FOLDDIGITS = 128;
|
|
181
|
|
182 enum : UINT {
|
|
183 CP_ACP,
|
|
184 CP_OEMCP,
|
|
185 CP_MACCP,
|
|
186 CP_THREAD_ACP, // = 3
|
|
187 CP_SYMBOL = 42,
|
|
188 CP_UTF7 = 65000,
|
|
189 CP_UTF8 = 65001
|
|
190 }
|
|
191
|
|
192 enum : DWORD {
|
|
193 CT_CTYPE1 = 1,
|
|
194 CT_CTYPE2 = 2,
|
|
195 CT_CTYPE3 = 4
|
|
196 }
|
|
197
|
|
198 const WORD
|
|
199 C1_UPPER = 1,
|
|
200 C1_LOWER = 2,
|
|
201 C1_DIGIT = 4,
|
|
202 C1_SPACE = 8,
|
|
203 C1_PUNCT = 16,
|
|
204 C1_CNTRL = 32,
|
|
205 C1_BLANK = 64,
|
|
206 C1_XDIGIT = 128,
|
|
207 C1_ALPHA = 256;
|
|
208
|
|
209 enum : WORD {
|
|
210 C2_NOTAPPLICABLE,
|
|
211 C2_LEFTTORIGHT,
|
|
212 C2_RIGHTTOLEFT,
|
|
213 C2_EUROPENUMBER,
|
|
214 C2_EUROPESEPARATOR,
|
|
215 C2_EUROPETERMINATOR,
|
|
216 C2_ARABICNUMBER,
|
|
217 C2_COMMONSEPARATOR,
|
|
218 C2_BLOCKSEPARATOR,
|
|
219 C2_SEGMENTSEPARATOR,
|
|
220 C2_WHITESPACE,
|
|
221 C2_OTHERNEUTRAL // = 11
|
|
222 }
|
|
223
|
|
224 const WORD
|
|
225 C3_NOTAPPLICABLE = 0,
|
|
226 C3_NONSPACING = 1,
|
|
227 C3_DIACRITIC = 2,
|
|
228 C3_VOWELMARK = 4,
|
|
229 C3_SYMBOL = 8,
|
|
230 C3_KATAKANA = 0x0010,
|
|
231 C3_HIRAGANA = 0x0020,
|
|
232 C3_HALFWIDTH = 0x0040,
|
|
233 C3_FULLWIDTH = 0x0080,
|
|
234 C3_IDEOGRAPH = 0x0100,
|
|
235 C3_KASHIDA = 0x0200,
|
|
236 C3_LEXICAL = 0x0400,
|
|
237 C3_ALPHA = 0x8000;
|
|
238
|
|
239 const DWORD
|
|
240 TIME_NOMINUTESORSECONDS = 1,
|
|
241 TIME_NOSECONDS = 2,
|
|
242 TIME_NOTIMEMARKER = 4,
|
|
243 TIME_FORCE24HOURFORMAT = 8;
|
|
244
|
|
245 const DWORD
|
|
246 MB_PRECOMPOSED = 1,
|
|
247 MB_COMPOSITE = 2,
|
|
248 MB_USEGLYPHCHARS = 4,
|
|
249 MB_ERR_INVALID_CHARS = 8;
|
|
250
|
|
251 const DWORD
|
|
252 WC_DISCARDNS = 16,
|
|
253 WC_SEPCHARS = 32,
|
|
254 WC_DEFAULTCHAR = 64,
|
|
255 WC_COMPOSITECHECK = 512;
|
|
256
|
|
257 enum : LONG {
|
|
258 CTRY_DEFAULT = 0,
|
|
259 CTRY_DOMINICAN_REPUBLIC = 1,
|
|
260 CTRY_PUERTO_RICO = 1,
|
|
261 CTRY_CARIBBEAN = 1,
|
|
262 CTRY_JAMAICA = 1,
|
|
263 CTRY_UNITED_STATES = 1,
|
|
264 CTRY_TRINIDAD_Y_TOBAGO = 1,
|
|
265 CTRY_CANADA = 2,
|
|
266 CTRY_RUSSIA = 7,
|
|
267 CTRY_UZBEKISTAN = 7,
|
|
268 CTRY_KAZAKSTAN = 7,
|
|
269 CTRY_TATARSTAN = 7,
|
|
270 CTRY_EGYPT = 20,
|
|
271 CTRY_SOUTH_AFRICA = 27,
|
|
272 CTRY_GREECE = 30,
|
|
273 CTRY_NETHERLANDS = 31,
|
|
274 CTRY_BELGIUM = 32,
|
|
275 CTRY_FRANCE = 33,
|
|
276 CTRY_MONACO = 33,
|
|
277 CTRY_SPAIN = 34,
|
|
278 CTRY_HUNGARY = 36,
|
|
279 CTRY_ITALY = 39,
|
|
280 CTRY_ROMANIA = 40,
|
|
281 CTRY_SWITZERLAND = 41,
|
|
282 CTRY_LIECHTENSTEIN = 41,
|
|
283 CTRY_AUSTRIA = 43,
|
|
284 CTRY_UNITED_KINGDOM = 44,
|
|
285 CTRY_DENMARK = 45,
|
|
286 CTRY_SWEDEN = 46,
|
|
287 CTRY_NORWAY = 47,
|
|
288 CTRY_POLAND = 48,
|
|
289 CTRY_GERMANY = 49,
|
|
290 CTRY_PERU = 51,
|
|
291 CTRY_MEXICO = 52,
|
|
292 CTRY_ARGENTINA = 54,
|
|
293 CTRY_BRAZIL = 55,
|
|
294 CTRY_CHILE = 56,
|
|
295 CTRY_COLOMBIA = 57,
|
|
296 CTRY_VENEZUELA = 58,
|
|
297 CTRY_MALAYSIA = 60,
|
|
298 CTRY_AUSTRALIA = 61,
|
|
299 CTRY_INDONESIA = 62,
|
|
300 CTRY_PHILIPPINES = 63,
|
|
301 CTRY_NEW_ZEALAND = 64,
|
|
302 CTRY_SINGAPORE = 65,
|
|
303 CTRY_THAILAND = 66,
|
|
304 CTRY_JAPAN = 81,
|
|
305 CTRY_SOUTH_KOREA = 82,
|
|
306 CTRY_VIET_NAM = 84,
|
|
307 CTRY_PRCHINA = 86,
|
|
308 CTRY_TURKEY = 90,
|
|
309 CTRY_INDIA = 91,
|
|
310 CTRY_PAKISTAN = 92,
|
|
311 CTRY_MOROCCO = 212,
|
|
312 CTRY_ALGERIA = 213,
|
|
313 CTRY_TUNISIA = 216,
|
|
314 CTRY_LIBYA = 218,
|
|
315 CTRY_KENYA = 254,
|
|
316 CTRY_ZIMBABWE = 263,
|
|
317 CTRY_FAEROE_ISLANDS = 298,
|
|
318 CTRY_PORTUGAL = 351,
|
|
319 CTRY_LUXEMBOURG = 352,
|
|
320 CTRY_IRELAND = 353,
|
|
321 CTRY_ICELAND = 354,
|
|
322 CTRY_ALBANIA = 355,
|
|
323 CTRY_FINLAND = 358,
|
|
324 CTRY_BULGARIA = 359,
|
|
325 CTRY_LITHUANIA = 370,
|
|
326 CTRY_LATVIA = 371,
|
|
327 CTRY_ESTONIA = 372,
|
|
328 CTRY_ARMENIA = 374,
|
|
329 CTRY_BELARUS = 375,
|
|
330 CTRY_UKRAINE = 380,
|
|
331 CTRY_SERBIA = 381,
|
|
332 CTRY_CROATIA = 385,
|
|
333 CTRY_SLOVENIA = 386,
|
|
334 CTRY_MACEDONIA = 389,
|
|
335 CTRY_CZECH = 420,
|
|
336 CTRY_SLOVAK = 421,
|
|
337 CTRY_BELIZE = 501,
|
|
338 CTRY_GUATEMALA = 502,
|
|
339 CTRY_EL_SALVADOR = 503,
|
|
340 CTRY_HONDURAS = 504,
|
|
341 CTRY_NICARAGUA = 505,
|
|
342 CTRY_COSTA_RICA = 506,
|
|
343 CTRY_PANAMA = 507,
|
|
344 CTRY_BOLIVIA = 591,
|
|
345 CTRY_ECUADOR = 593,
|
|
346 CTRY_PARAGUAY = 595,
|
|
347 CTRY_URUGUAY = 598,
|
|
348 CTRY_BRUNEI_DARUSSALAM = 673,
|
|
349 CTRY_HONG_KONG = 852,
|
|
350 CTRY_MACAU = 853,
|
|
351 CTRY_TAIWAN = 886,
|
|
352 CTRY_MALDIVES = 960,
|
|
353 CTRY_LEBANON = 961,
|
|
354 CTRY_JORDAN = 962,
|
|
355 CTRY_SYRIA = 963,
|
|
356 CTRY_IRAQ = 964,
|
|
357 CTRY_KUWAIT = 965,
|
|
358 CTRY_SAUDI_ARABIA = 966,
|
|
359 CTRY_YEMEN = 967,
|
|
360 CTRY_OMAN = 968,
|
|
361 CTRY_UAE = 971,
|
|
362 CTRY_ISRAEL = 972,
|
|
363 CTRY_BAHRAIN = 973,
|
|
364 CTRY_QATAR = 974,
|
|
365 CTRY_MONGOLIA = 976,
|
|
366 CTRY_IRAN = 981,
|
|
367 CTRY_AZERBAIJAN = 994,
|
|
368 CTRY_GEORGIA = 995,
|
|
369 CTRY_KYRGYZSTAN = 996
|
|
370 }
|
|
371
|
|
372 enum : CALTYPE {
|
|
373 CAL_ICALINTVALUE = 1,
|
|
374 CAL_SCALNAME,
|
|
375 CAL_IYEAROFFSETRANGE,
|
|
376 CAL_SERASTRING,
|
|
377 CAL_SSHORTDATE,
|
|
378 CAL_SLONGDATE,
|
|
379 CAL_SDAYNAME1,
|
|
380 CAL_SDAYNAME2,
|
|
381 CAL_SDAYNAME3,
|
|
382 CAL_SDAYNAME4,
|
|
383 CAL_SDAYNAME5,
|
|
384 CAL_SDAYNAME6,
|
|
385 CAL_SDAYNAME7,
|
|
386 CAL_SABBREVDAYNAME1,
|
|
387 CAL_SABBREVDAYNAME2,
|
|
388 CAL_SABBREVDAYNAME3,
|
|
389 CAL_SABBREVDAYNAME4,
|
|
390 CAL_SABBREVDAYNAME5,
|
|
391 CAL_SABBREVDAYNAME6,
|
|
392 CAL_SABBREVDAYNAME7,
|
|
393 CAL_SMONTHNAME1,
|
|
394 CAL_SMONTHNAME2,
|
|
395 CAL_SMONTHNAME3,
|
|
396 CAL_SMONTHNAME4,
|
|
397 CAL_SMONTHNAME5,
|
|
398 CAL_SMONTHNAME6,
|
|
399 CAL_SMONTHNAME7,
|
|
400 CAL_SMONTHNAME8,
|
|
401 CAL_SMONTHNAME9,
|
|
402 CAL_SMONTHNAME10,
|
|
403 CAL_SMONTHNAME11,
|
|
404 CAL_SMONTHNAME12,
|
|
405 CAL_SMONTHNAME13,
|
|
406 CAL_SABBREVMONTHNAME1,
|
|
407 CAL_SABBREVMONTHNAME2,
|
|
408 CAL_SABBREVMONTHNAME3,
|
|
409 CAL_SABBREVMONTHNAME4,
|
|
410 CAL_SABBREVMONTHNAME5,
|
|
411 CAL_SABBREVMONTHNAME6,
|
|
412 CAL_SABBREVMONTHNAME7,
|
|
413 CAL_SABBREVMONTHNAME8,
|
|
414 CAL_SABBREVMONTHNAME9,
|
|
415 CAL_SABBREVMONTHNAME10,
|
|
416 CAL_SABBREVMONTHNAME11,
|
|
417 CAL_SABBREVMONTHNAME12,
|
|
418 CAL_SABBREVMONTHNAME13 // = 46
|
|
419 }
|
|
420
|
|
421
|
|
422 enum : CALTYPE {
|
|
423 CAL_GREGORIAN = 1,
|
|
424 CAL_GREGORIAN_US,
|
|
425 CAL_JAPAN,
|
|
426 CAL_TAIWAN,
|
|
427 CAL_KOREA,
|
|
428 CAL_HIJRI,
|
|
429 CAL_THAI,
|
|
430 CAL_HEBREW,
|
|
431 CAL_GREGORIAN_ME_FRENCH,
|
|
432 CAL_GREGORIAN_ARABIC,
|
|
433 CAL_GREGORIAN_XLIT_ENGLISH,
|
|
434 CAL_GREGORIAN_XLIT_FRENCH // = 12
|
|
435 }
|
|
436
|
|
437 enum : int {
|
|
438 CSTR_LESS_THAN = 1,
|
|
439 CSTR_EQUAL,
|
|
440 CSTR_GREATER_THAN
|
|
441 }
|
|
442
|
|
443 enum : DWORD {
|
|
444 LGRPID_INSTALLED = 1,
|
|
445 LGRPID_SUPPORTED
|
|
446 }
|
|
447
|
|
448 enum : LGRPID {
|
|
449 LGRPID_WESTERN_EUROPE = 1,
|
|
450 LGRPID_CENTRAL_EUROPE,
|
|
451 LGRPID_BALTIC,
|
|
452 LGRPID_GREEK,
|
|
453 LGRPID_CYRILLIC,
|
|
454 LGRPID_TURKISH,
|
|
455 LGRPID_JAPANESE,
|
|
456 LGRPID_KOREAN,
|
|
457 LGRPID_TRADITIONAL_CHINESE,
|
|
458 LGRPID_SIMPLIFIED_CHINESE,
|
|
459 LGRPID_THAI,
|
|
460 LGRPID_HEBREW,
|
|
461 LGRPID_ARABIC,
|
|
462 LGRPID_VIETNAMESE,
|
|
463 LGRPID_INDIC,
|
|
464 LGRPID_GEORGIAN,
|
|
465 LGRPID_ARMENIAN // = 17
|
|
466 }
|
|
467
|
|
468 static if (WINVER >= 0x500) {
|
|
469 enum : LCTYPE {
|
|
470 LOCALE_SYEARMONTH = 0x1006,
|
|
471 LOCALE_SENGCURRNAME = 0x1007,
|
|
472 LOCALE_SNATIVECURRNAME = 0x1008,
|
|
473 LOCALE_IDEFAULTEBCDICCODEPAGE = 0x1012,
|
|
474 LOCALE_SSORTNAME = 0x1013,
|
|
475 LOCALE_IDIGITSUBSTITUTION = 0x1014,
|
|
476 LOCALE_IPAPERSIZE = 0x100A
|
|
477 }
|
|
478
|
|
479 const DWORD
|
|
480 DATE_YEARMONTH = 8,
|
|
481 DATE_LTRREADING = 16,
|
|
482 DATE_RTLREADING = 32;
|
|
483
|
|
484 const DWORD MAP_EXPAND_LIGATURES = 0x2000;
|
|
485 const DWORD WC_NO_BEST_FIT_CHARS = 1024;
|
|
486
|
|
487 enum : CALTYPE {
|
|
488 CAL_SYEARMONTH = 47,
|
|
489 CAL_ITWODIGITYEARMAX = 48,
|
|
490 CAL_NOUSEROVERRIDE = LOCALE_NOUSEROVERRIDE,
|
|
491 CAL_RETURN_NUMBER = LOCALE_RETURN_NUMBER,
|
|
492 CAL_USE_CP_ACP = LOCALE_USE_CP_ACP
|
|
493 }
|
|
494 } // (WINVER >= 0x500)
|
|
495
|
|
496 extern (Windows) {
|
|
497 alias BOOL function(LPSTR) CALINFO_ENUMPROCA;
|
|
498 alias BOOL function(LPWSTR) CALINFO_ENUMPROCW;
|
|
499 alias BOOL function(LPSTR, CALID) CALINFO_ENUMPROCEXA;
|
|
500 alias BOOL function(LPWSTR, CALID) CALINFO_ENUMPROCEXW;
|
|
501 alias BOOL function(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR)
|
|
502 LANGUAGEGROUP_ENUMPROCA;
|
|
503 alias BOOL function(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR)
|
|
504 LANGUAGEGROUP_ENUMPROCW;
|
|
505 alias BOOL function(LGRPID, LCID, LPSTR, LONG_PTR)
|
|
506 LANGGROUPLOCALE_ENUMPROCA;
|
|
507 alias BOOL function(LGRPID, LCID, LPWSTR, LONG_PTR)
|
|
508 LANGGROUPLOCALE_ENUMPROCW;
|
|
509 alias BOOL function(LPWSTR, LONG_PTR) UILANGUAGE_ENUMPROCW;
|
|
510 alias BOOL function(LPSTR, LONG_PTR) UILANGUAGE_ENUMPROCA;
|
|
511 alias BOOL function(LPSTR) LOCALE_ENUMPROCA;
|
|
512 alias BOOL function(LPWSTR) LOCALE_ENUMPROCW;
|
|
513 alias BOOL function(LPSTR) CODEPAGE_ENUMPROCA;
|
|
514 alias BOOL function(LPWSTR) CODEPAGE_ENUMPROCW;
|
|
515 alias BOOL function(LPSTR) DATEFMT_ENUMPROCA;
|
|
516 alias BOOL function(LPWSTR) DATEFMT_ENUMPROCW;
|
|
517 alias BOOL function(LPSTR, CALID) DATEFMT_ENUMPROCEXA;
|
|
518 alias BOOL function(LPWSTR, CALID) DATEFMT_ENUMPROCEXW;
|
|
519 alias BOOL function(LPSTR) TIMEFMT_ENUMPROCA;
|
|
520 alias BOOL function(LPWSTR) TIMEFMT_ENUMPROCW;
|
|
521 alias BOOL function(GEOID) GEO_ENUMPROC;
|
|
522 }
|
|
523
|
|
524 enum NLS_FUNCTION {
|
|
525 COMPARE_STRING = 0x0001
|
|
526 }
|
|
527
|
|
528 enum SYSGEOCLASS {
|
|
529 GEOCLASS_NATION = 16,
|
|
530 GEOCLASS_REGION = 14
|
|
531 }
|
|
532
|
|
533 enum SYSGEOTYPE {
|
|
534 GEO_NATION = 0x0001,
|
|
535 GEO_LATITUDE = 0x0002,
|
|
536 GEO_LONGITUDE = 0x0003,
|
|
537 GEO_ISO2 = 0x0004,
|
|
538 GEO_ISO3 = 0x0005,
|
|
539 GEO_RFC1766 = 0x0006,
|
|
540 GEO_LCID = 0x0007,
|
|
541 GEO_FRIENDLYNAME = 0x0008,
|
|
542 GEO_OFFICIALNAME = 0x0009,
|
|
543 GEO_TIMEZONES = 0x000a,
|
|
544 GEO_OFFICIALLANGUAGES = 0x000a
|
|
545 }
|
|
546
|
|
547 struct CPINFO {
|
|
548 UINT MaxCharSize;
|
|
549 BYTE[MAX_DEFAULTCHAR] DefaultChar;
|
|
550 BYTE[MAX_LEADBYTES] LeadByte;
|
|
551 }
|
|
552 alias CPINFO* LPCPINFO;
|
|
553
|
|
554 struct CPINFOEXA {
|
|
555 UINT MaxCharSize;
|
|
556 BYTE[MAX_DEFAULTCHAR] DefaultChar;
|
|
557 BYTE[MAX_LEADBYTES] LeadByte;
|
|
558 WCHAR UnicodeDefaultChar;
|
|
559 UINT CodePage;
|
|
560 CHAR[MAX_PATH] CodePageName;
|
|
561 }
|
|
562 alias CPINFOEXA* LPCPINFOEXA;
|
|
563
|
|
564 struct CPINFOEXW {
|
|
565 UINT MaxCharSize;
|
|
566 BYTE[MAX_DEFAULTCHAR] DefaultChar;
|
|
567 BYTE[MAX_LEADBYTES] LeadByte;
|
|
568 WCHAR UnicodeDefaultChar;
|
|
569 UINT CodePage;
|
|
570 WCHAR[MAX_PATH] CodePageName;
|
|
571 }
|
|
572 alias CPINFOEXW* LPCPINFOEXW;
|
|
573
|
|
574 struct CURRENCYFMTA {
|
|
575 UINT NumDigits;
|
|
576 UINT LeadingZero;
|
|
577 UINT Grouping;
|
|
578 LPSTR lpDecimalSep;
|
|
579 LPSTR lpThousandSep;
|
|
580 UINT NegativeOrder;
|
|
581 UINT PositiveOrder;
|
|
582 LPSTR lpCurrencySymbol;
|
|
583 }
|
|
584 alias CURRENCYFMTA* LPCURRENCYFMTA;
|
|
585
|
|
586 struct CURRENCYFMTW {
|
|
587 UINT NumDigits;
|
|
588 UINT LeadingZero;
|
|
589 UINT Grouping;
|
|
590 LPWSTR lpDecimalSep;
|
|
591 LPWSTR lpThousandSep;
|
|
592 UINT NegativeOrder;
|
|
593 UINT PositiveOrder;
|
|
594 LPWSTR lpCurrencySymbol;
|
|
595 }
|
|
596 alias CURRENCYFMTW* LPCURRENCYFMTW;
|
|
597
|
|
598 struct NLSVERSIONINFO {
|
|
599 DWORD dwNLSVersionInfoSize;
|
|
600 DWORD dwNLSVersion;
|
|
601 DWORD dwDefinedVersion;
|
|
602 }
|
|
603 alias NLSVERSIONINFO* LPNLSVERSIONINFO;
|
|
604
|
|
605 struct NUMBERFMTA {
|
|
606 UINT NumDigits;
|
|
607 UINT LeadingZero;
|
|
608 UINT Grouping;
|
|
609 LPSTR lpDecimalSep;
|
|
610 LPSTR lpThousandSep;
|
|
611 UINT NegativeOrder;
|
|
612 }
|
|
613 alias NUMBERFMTA* LPNUMBERFMTA;
|
|
614
|
|
615 struct NUMBERFMTW {
|
|
616 UINT NumDigits;
|
|
617 UINT LeadingZero;
|
|
618 UINT Grouping;
|
|
619 LPWSTR lpDecimalSep;
|
|
620 LPWSTR lpThousandSep;
|
|
621 UINT NegativeOrder;
|
|
622 }
|
|
623 alias NUMBERFMTW* LPNUMBERFMTW;
|
|
624
|
|
625 extern (Windows) {
|
|
626 int CompareStringA(LCID, DWORD, LPCSTR, int, LPCSTR, int);
|
|
627 int CompareStringW(LCID, DWORD, LPCWSTR, int, LPCWSTR, int);
|
|
628 LCID ConvertDefaultLocale(LCID);
|
|
629 BOOL EnumCalendarInfoA(CALINFO_ENUMPROCA, LCID, CALID, CALTYPE);
|
|
630 BOOL EnumCalendarInfoW(CALINFO_ENUMPROCW, LCID, CALID, CALTYPE);
|
|
631 BOOL EnumDateFormatsA(DATEFMT_ENUMPROCA, LCID, DWORD);
|
|
632 BOOL EnumDateFormatsW(DATEFMT_ENUMPROCW, LCID, DWORD);
|
|
633 BOOL EnumSystemCodePagesA(CODEPAGE_ENUMPROCA, DWORD);
|
|
634 BOOL EnumSystemCodePagesW(CODEPAGE_ENUMPROCW, DWORD);
|
|
635 BOOL EnumSystemGeoID(GEOCLASS, GEOID, GEO_ENUMPROC);
|
|
636 BOOL EnumSystemLocalesA(LOCALE_ENUMPROCA, DWORD);
|
|
637 BOOL EnumSystemLocalesW(LOCALE_ENUMPROCW, DWORD);
|
|
638 BOOL EnumTimeFormatsA(TIMEFMT_ENUMPROCA, LCID, DWORD);
|
|
639 BOOL EnumTimeFormatsW(TIMEFMT_ENUMPROCW, LCID, DWORD);
|
|
640 int FoldStringA(DWORD, LPCSTR, int, LPSTR, int);
|
|
641 int FoldStringW(DWORD, LPCWSTR, int, LPWSTR, int);
|
|
642 UINT GetACP();
|
|
643 int GetCalendarInfoA(LCID, CALID, CALTYPE, LPSTR, int, LPDWORD);
|
|
644 int GetCalendarInfoW(LCID, CALID, CALTYPE, LPWSTR, int, LPDWORD);
|
|
645 BOOL GetCPInfo(UINT, LPCPINFO);
|
|
646 BOOL GetCPInfoExA(UINT, DWORD, LPCPINFOEXA);
|
|
647 BOOL GetCPInfoExW(UINT, DWORD, LPCPINFOEXW);
|
|
648 int GetCurrencyFormatA(LCID, DWORD, LPCSTR, CURRENCYFMTA*, LPSTR, int);
|
|
649 int GetCurrencyFormatW(LCID, DWORD, LPCWSTR, CURRENCYFMTW*, LPWSTR,
|
|
650 int);
|
|
651 int GetDateFormatA(LCID, DWORD, SYSTEMTIME*, LPCSTR, LPSTR, int);
|
|
652 int GetDateFormatW(LCID, DWORD, SYSTEMTIME*, LPCWSTR, LPWSTR, int);
|
|
653 int GetGeoInfoA(GEOID, GEOTYPE, LPSTR, int, LANGID);
|
|
654 int GetGeoInfoW(GEOID, GEOTYPE, LPWSTR, int, LANGID);
|
|
655 int GetLocaleInfoA(LCID, LCTYPE, LPSTR, int);
|
|
656 int GetLocaleInfoW(LCID, LCTYPE, LPWSTR, int);
|
|
657 BOOL GetNLSVersion(NLS_FUNCTION, LCID, LPNLSVERSIONINFO);
|
|
658 int GetNumberFormatA(LCID, DWORD, LPCSTR, NUMBERFMTA*, LPSTR, int);
|
|
659 int GetNumberFormatW(LCID, DWORD, LPCWSTR, NUMBERFMTW*, LPWSTR, int);
|
|
660 UINT GetOEMCP();
|
|
661 BOOL GetStringTypeA(LCID, DWORD, LPCSTR, int, LPWORD);
|
|
662 BOOL GetStringTypeW(DWORD, LPCWSTR, int, LPWORD);
|
|
663 BOOL GetStringTypeExA(LCID, DWORD, LPCSTR, int, LPWORD);
|
|
664 BOOL GetStringTypeExW(LCID, DWORD, LPCWSTR, int, LPWORD);
|
|
665 LANGID GetSystemDefaultLangID();
|
|
666 LCID GetSystemDefaultLCID();
|
|
667 LCID GetThreadLocale();
|
|
668 int GetTimeFormatA(LCID, DWORD, SYSTEMTIME*, LPCSTR, LPSTR, int);
|
|
669 int GetTimeFormatW(LCID, DWORD, SYSTEMTIME*, LPCWSTR, LPWSTR, int);
|
|
670 LANGID GetUserDefaultLangID();
|
|
671 LCID GetUserDefaultLCID();
|
|
672 GEOID GetUserGeoID(GEOCLASS);
|
|
673 BOOL IsDBCSLeadByte(BYTE);
|
|
674 BOOL IsDBCSLeadByteEx(UINT, BYTE);
|
|
675 BOOL IsNLSDefinedString(NLS_FUNCTION, DWORD, LPNLSVERSIONINFO, LPCWSTR,
|
|
676 int);
|
|
677 BOOL IsValidCodePage(UINT);
|
|
678 BOOL IsValidLocale(LCID, DWORD);
|
|
679 int LCMapStringA(LCID, DWORD, LPCSTR, int, LPSTR, int);
|
|
680 int LCMapStringW(LCID, DWORD, LPCWSTR, int, LPWSTR, int);
|
|
681 int MultiByteToWideChar(UINT, DWORD, LPCSTR, int, LPWSTR, int);
|
|
682 int SetCalendarInfoA(LCID, CALID, CALTYPE, LPCSTR);
|
|
683 int SetCalendarInfoW(LCID, CALID, CALTYPE, LPCWSTR);
|
|
684 BOOL SetLocaleInfoA(LCID, LCTYPE, LPCSTR);
|
|
685 BOOL SetLocaleInfoW(LCID, LCTYPE, LPCWSTR);
|
|
686 BOOL SetThreadLocale(LCID);
|
|
687 BOOL SetUserGeoID(GEOID);
|
|
688 int WideCharToMultiByte(UINT, DWORD, LPCWSTR, int, LPSTR, int, LPCSTR,
|
|
689 LPBOOL);
|
|
690
|
|
691 static if (WINVER >= 0x410) {
|
|
692 BOOL EnumCalendarInfoExA(CALINFO_ENUMPROCEXA, LCID, CALID, CALTYPE);
|
|
693 BOOL EnumCalendarInfoExW(CALINFO_ENUMPROCEXW, LCID, CALID, CALTYPE);
|
|
694 BOOL EnumDateFormatsExA(DATEFMT_ENUMPROCEXA, LCID, DWORD);
|
|
695 BOOL EnumDateFormatsExW(DATEFMT_ENUMPROCEXW, LCID, DWORD);
|
|
696 BOOL IsValidLanguageGroup(LGRPID, DWORD);
|
|
697 }
|
|
698
|
|
699 static if (WINVER >= 0x500) {
|
|
700 LANGID GetSystemDefaultUILanguage();
|
|
701 LANGID GetUserDefaultUILanguage();
|
|
702
|
|
703 static if (_WIN32_WINNT_ONLY) {
|
|
704 BOOL EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA, DWORD,
|
|
705 LONG_PTR);
|
|
706 BOOL EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW, DWORD,
|
|
707 LONG_PTR);
|
|
708 BOOL EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA, LGRPID,
|
|
709 DWORD, LONG_PTR);
|
|
710 BOOL EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW, LGRPID,
|
|
711 DWORD, LONG_PTR);
|
|
712 BOOL EnumUILanguagesA(UILANGUAGE_ENUMPROCA, DWORD, LONG_PTR);
|
|
713 BOOL EnumUILanguagesW(UILANGUAGE_ENUMPROCW, DWORD, LONG_PTR);
|
|
714 }
|
|
715 }
|
|
716 }
|
|
717
|
|
718 version (Unicode) {
|
|
719 alias CALINFO_ENUMPROCW CALINFO_ENUMPROC;
|
|
720 alias CALINFO_ENUMPROCEXW CALINFO_ENUMPROCEX;
|
|
721 alias LOCALE_ENUMPROCW LOCALE_ENUMPROC;
|
|
722 alias CODEPAGE_ENUMPROCW CODEPAGE_ENUMPROC;
|
|
723 alias DATEFMT_ENUMPROCW DATEFMT_ENUMPROC;
|
|
724 alias DATEFMT_ENUMPROCEXW DATEFMT_ENUMPROCEX;
|
|
725 alias TIMEFMT_ENUMPROCW TIMEFMT_ENUMPROC;
|
|
726 alias LANGUAGEGROUP_ENUMPROCW LANGUAGEGROUP_ENUMPROC;
|
|
727 alias LANGGROUPLOCALE_ENUMPROCW LANGGROUPLOCALE_ENUMPROC;
|
|
728 alias UILANGUAGE_ENUMPROCW UILANGUAGE_ENUMPROC;
|
|
729 alias CPINFOEXW CPINFOEX;
|
|
730 alias LPCPINFOEXW LPCPINFOEX;
|
|
731 alias CURRENCYFMTW CURRENCYFMT;
|
|
732 alias LPCURRENCYFMTW LPCURRENCYFMT;
|
|
733 alias NUMBERFMTW NUMBERFMT;
|
|
734 alias LPNUMBERFMTW LPNUMBERFMT;
|
|
735 alias CompareStringW CompareString;
|
|
736 alias EnumCalendarInfoW EnumCalendarInfo;
|
|
737 alias EnumSystemCodePagesW EnumSystemCodePages;
|
|
738 alias EnumSystemLocalesW EnumSystemLocales;
|
|
739 alias EnumTimeFormatsW EnumTimeFormats;
|
|
740 alias FoldStringW FoldString;
|
|
741 alias GetCalendarInfoW GetCalendarInfo;
|
|
742 alias GetCPInfoExW GetCPInfoEx;
|
|
743 alias GetCurrencyFormatW GetCurrencyFormat;
|
|
744 alias GetDateFormatW GetDateFormat;
|
|
745 alias GetGeoInfoW GetGeoInfo;
|
|
746 alias GetLocaleInfoW GetLocaleInfo;
|
|
747 alias GetNumberFormatW GetNumberFormat;
|
|
748 alias GetStringTypeExW GetStringTypeEx;
|
|
749 alias GetTimeFormatW GetTimeFormat;
|
|
750 alias LCMapStringW LCMapString;
|
|
751 alias SetCalendarInfoW SetCalendarInfo;
|
|
752 alias SetLocaleInfoW SetLocaleInfo;
|
|
753
|
|
754 static if (WINVER >= 0x410) {
|
|
755 alias EnumCalendarInfoExW EnumCalendarInfoEx;
|
|
756 alias EnumDateFormatsExW EnumDateFormatsEx;
|
|
757 }
|
|
758
|
|
759 static if (_WIN32_WINNT_ONLY && WINVER >= 0x500) {
|
|
760 alias EnumSystemLanguageGroupsW EnumSystemLanguageGroups;
|
|
761 alias EnumLanguageGroupLocalesW EnumLanguageGroupLocales;
|
|
762 alias EnumUILanguagesW EnumUILanguages;
|
|
763 }
|
|
764
|
|
765 } else {
|
|
766 alias CALINFO_ENUMPROCA CALINFO_ENUMPROC;
|
|
767 alias CALINFO_ENUMPROCEXA CALINFO_ENUMPROCEX;
|
|
768 alias LOCALE_ENUMPROCA LOCALE_ENUMPROC;
|
|
769 alias CODEPAGE_ENUMPROCA CODEPAGE_ENUMPROC;
|
|
770 alias DATEFMT_ENUMPROCA DATEFMT_ENUMPROC;
|
|
771 alias DATEFMT_ENUMPROCEXA DATEFMT_ENUMPROCEX;
|
|
772 alias TIMEFMT_ENUMPROCA TIMEFMT_ENUMPROC;
|
|
773 alias LANGUAGEGROUP_ENUMPROCA LANGUAGEGROUP_ENUMPROC;
|
|
774 alias LANGGROUPLOCALE_ENUMPROCA LANGGROUPLOCALE_ENUMPROC;
|
|
775 alias UILANGUAGE_ENUMPROCA UILANGUAGE_ENUMPROC;
|
|
776 alias CPINFOEXA CPINFOEX;
|
|
777 alias LPCPINFOEXA LPCPINFOEX;
|
|
778 alias CURRENCYFMTA CURRENCYFMT;
|
|
779 alias LPCURRENCYFMTA LPCURRENCYFMT;
|
|
780 alias NUMBERFMTA NUMBERFMT;
|
|
781 alias LPNUMBERFMTA LPNUMBERFMT;
|
|
782 alias CompareStringA CompareString;
|
|
783 alias EnumCalendarInfoA EnumCalendarInfo;
|
|
784 alias EnumSystemCodePagesA EnumSystemCodePages;
|
|
785 alias EnumSystemLocalesA EnumSystemLocales;
|
|
786 alias EnumTimeFormatsA EnumTimeFormats;
|
|
787 alias FoldStringA FoldString;
|
|
788 alias GetCalendarInfoA GetCalendarInfo;
|
|
789 alias GetCPInfoExA GetCPInfoEx;
|
|
790 alias GetCurrencyFormatA GetCurrencyFormat;
|
|
791 alias GetDateFormatA GetDateFormat;
|
|
792 alias GetGeoInfoA GetGeoInfo;
|
|
793 alias GetLocaleInfoA GetLocaleInfo;
|
|
794 alias GetNumberFormatA GetNumberFormat;
|
|
795 alias GetStringTypeExA GetStringTypeEx;
|
|
796 alias GetTimeFormatA GetTimeFormat;
|
|
797 alias LCMapStringA LCMapString;
|
|
798 alias SetCalendarInfoA SetCalendarInfo;
|
|
799 alias SetLocaleInfoA SetLocaleInfo;
|
|
800
|
|
801 static if (WINVER >= 0x410) {
|
|
802 alias EnumCalendarInfoExA EnumCalendarInfoEx;
|
|
803 alias EnumDateFormatsExA EnumDateFormatsEx;
|
|
804 }
|
|
805
|
|
806 static if (_WIN32_WINNT_ONLY && WINVER >= 0x500) {
|
|
807 alias EnumSystemLanguageGroupsA EnumSystemLanguageGroups;
|
|
808 alias EnumLanguageGroupLocalesA EnumLanguageGroupLocales;
|
|
809 alias EnumUILanguagesA EnumUILanguages;
|
|
810 }
|
|
811 }
|