4 * Windows National Language Support API definitions.
8 * Written by Anders Norlander <anorland@hem2.passagen.se>
9 * Copyright (C) 1998-2000, 2002-2004, 2006, 2009, 2019, MinGW.org Project.
12 * Permission is hereby granted, free of charge, to any person obtaining a
13 * copy of this software and associated documentation files (the "Software"),
14 * to deal in the Software without restriction, including without limitation
15 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
16 * and/or sell copies of the Software, and to permit persons to whom the
17 * Software is furnished to do so, subject to the following conditions:
19 * The above copyright notice and this permission notice (including the next
20 * paragraph) shall be included in all copies or substantial portions of the
23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29 * DEALINGS IN THE SOFTWARE.
33 #pragma GCC system_header
40 #define MAX_LEADBYTES 12
41 #define MAX_DEFAULTCHAR 2
42 #define LOCALE_NOUSEROVERRIDE 0x80000000
43 #define LOCALE_USE_CP_ACP 0x40000000
45 #if WINVER >= _WIN32_WINNT_NT4 /* also >= Win95 */
47 #define LOCALE_RETURN_NUMBER 0x20000000
49 #endif /* >= WinNT4 / Win95 */
51 #define LOCALE_ILANGUAGE 1
52 #define LOCALE_SLANGUAGE 2
53 #define LOCALE_SENGLANGUAGE 0x1001
54 #define LOCALE_SABBREVLANGNAME 3
55 #define LOCALE_SNATIVELANGNAME 4
56 #define LOCALE_ICOUNTRY 5
57 #define LOCALE_SCOUNTRY 6
58 #define LOCALE_SENGCOUNTRY 0x1002
59 #define LOCALE_SABBREVCTRYNAME 7
60 #define LOCALE_SNATIVECTRYNAME 8
61 #define LOCALE_IDEFAULTLANGUAGE 9
62 #define LOCALE_IDEFAULTCOUNTRY 10
63 #define LOCALE_IDEFAULTCODEPAGE 11
64 #define LOCALE_IDEFAULTANSICODEPAGE 0x1004
65 #define LOCALE_SLIST 12
66 #define LOCALE_IMEASURE 13
67 #define LOCALE_SDECIMAL 14
68 #define LOCALE_STHOUSAND 15
69 #define LOCALE_SGROUPING 16
70 #define LOCALE_IDIGITS 17
71 #define LOCALE_ILZERO 18
72 #define LOCALE_INEGNUMBER 0x1010
73 #define LOCALE_SNATIVEDIGITS 19
74 #define LOCALE_SCURRENCY 20
75 #define LOCALE_SINTLSYMBOL 21
76 #define LOCALE_SMONDECIMALSEP 22
77 #define LOCALE_SMONTHOUSANDSEP 23
78 #define LOCALE_SMONGROUPING 24
79 #define LOCALE_ICURRDIGITS 25
80 #define LOCALE_IINTLCURRDIGITS 26
81 #define LOCALE_ICURRENCY 27
82 #define LOCALE_INEGCURR 28
83 #define LOCALE_SDATE 29
84 #define LOCALE_STIME 30
85 #define LOCALE_SSHORTDATE 31
86 #define LOCALE_SLONGDATE 32
87 #define LOCALE_STIMEFORMAT 0x1003
88 #define LOCALE_IDATE 33
89 #define LOCALE_ILDATE 34
90 #define LOCALE_ITIME 35
91 #define LOCALE_ITIMEMARKPOSN 0x1005
92 #define LOCALE_ICENTURY 36
93 #define LOCALE_ITLZERO 37
94 #define LOCALE_IDAYLZERO 38
95 #define LOCALE_IMONLZERO 39
96 #define LOCALE_S1159 40
97 #define LOCALE_S2359 41
98 #define LOCALE_ICALENDARTYPE 0x1009
99 #define LOCALE_IOPTIONALCALENDAR 0x100B
100 #define LOCALE_IFIRSTDAYOFWEEK 0x100C
101 #define LOCALE_IFIRSTWEEKOFYEAR 0x100D
102 #define LOCALE_SDAYNAME1 42
103 #define LOCALE_SDAYNAME2 43
104 #define LOCALE_SDAYNAME3 44
105 #define LOCALE_SDAYNAME4 45
106 #define LOCALE_SDAYNAME5 46
107 #define LOCALE_SDAYNAME6 47
108 #define LOCALE_SDAYNAME7 48
109 #define LOCALE_SABBREVDAYNAME1 49
110 #define LOCALE_SABBREVDAYNAME2 50
111 #define LOCALE_SABBREVDAYNAME3 51
112 #define LOCALE_SABBREVDAYNAME4 52
113 #define LOCALE_SABBREVDAYNAME5 53
114 #define LOCALE_SABBREVDAYNAME6 54
115 #define LOCALE_SABBREVDAYNAME7 55
116 #define LOCALE_SMONTHNAME1 56
117 #define LOCALE_SMONTHNAME2 57
118 #define LOCALE_SMONTHNAME3 58
119 #define LOCALE_SMONTHNAME4 59
120 #define LOCALE_SMONTHNAME5 60
121 #define LOCALE_SMONTHNAME6 61
122 #define LOCALE_SMONTHNAME7 62
123 #define LOCALE_SMONTHNAME8 63
124 #define LOCALE_SMONTHNAME9 64
125 #define LOCALE_SMONTHNAME10 65
126 #define LOCALE_SMONTHNAME11 66
127 #define LOCALE_SMONTHNAME12 67
128 #define LOCALE_SMONTHNAME13 0x100E
129 #define LOCALE_SABBREVMONTHNAME1 68
130 #define LOCALE_SABBREVMONTHNAME2 69
131 #define LOCALE_SABBREVMONTHNAME3 70
132 #define LOCALE_SABBREVMONTHNAME4 71
133 #define LOCALE_SABBREVMONTHNAME5 72
134 #define LOCALE_SABBREVMONTHNAME6 73
135 #define LOCALE_SABBREVMONTHNAME7 74
136 #define LOCALE_SABBREVMONTHNAME8 75
137 #define LOCALE_SABBREVMONTHNAME9 76
138 #define LOCALE_SABBREVMONTHNAME10 77
139 #define LOCALE_SABBREVMONTHNAME11 78
140 #define LOCALE_SABBREVMONTHNAME12 79
141 #define LOCALE_SABBREVMONTHNAME13 0x100F
142 #define LOCALE_SPOSITIVESIGN 80
143 #define LOCALE_SNEGATIVESIGN 81
144 #define LOCALE_IPOSSIGNPOSN 82
145 #define LOCALE_INEGSIGNPOSN 83
146 #define LOCALE_IPOSSYMPRECEDES 84
147 #define LOCALE_IPOSSEPBYSPACE 85
148 #define LOCALE_INEGSYMPRECEDES 86
149 #define LOCALE_INEGSEPBYSPACE 87
150 #define LOCALE_FONTSIGNATURE 88
151 #define LOCALE_SISO639LANGNAME 89
152 #define LOCALE_SISO3166CTRYNAME 90
153 #define LOCALE_SYSTEM_DEFAULT 0x800
154 #define LOCALE_USER_DEFAULT 0x400
155 #define NORM_IGNORECASE 1
156 #define NORM_IGNOREKANATYPE 65536
157 #define NORM_IGNORENONSPACE 2
158 #define NORM_IGNORESYMBOLS 4
159 #define NORM_IGNOREWIDTH 131072
160 #define SORT_STRINGSORT 4096
161 #define LCMAP_LOWERCASE 0x00000100
162 #define LCMAP_UPPERCASE 0x00000200
163 #define LCMAP_SORTKEY 0x00000400
164 #define LCMAP_BYTEREV 0x00000800
165 #define LCMAP_HIRAGANA 0x00100000
166 #define LCMAP_KATAKANA 0x00200000
167 #define LCMAP_HALFWIDTH 0x00400000
168 #define LCMAP_FULLWIDTH 0x00800000
169 #define LCMAP_LINGUISTIC_CASING 0x01000000
170 #define LCMAP_SIMPLIFIED_CHINESE 0x02000000
171 #define LCMAP_TRADITIONAL_CHINESE 0x04000000
172 #define ENUM_ALL_CALENDARS (-1)
173 #define DATE_SHORTDATE 1
174 #define DATE_LONGDATE 2
175 #define DATE_USE_ALT_CALENDAR 4
176 #define CP_INSTALLED 1
177 #define CP_SUPPORTED 2
178 #define LCID_INSTALLED 1
179 #define LCID_SUPPORTED 2
180 #define LCID_ALTERNATE_SORTS 4
181 #define MAP_FOLDCZONE 16
182 #define MAP_FOLDDIGITS 128
183 #define MAP_PRECOMPOSED 32
184 #define MAP_COMPOSITE 64
188 #define CP_THREAD_ACP 3
190 #define CP_UTF7 65000
191 #define CP_UTF8 65001
202 #define C1_XDIGIT 128
204 #define C2_LEFTTORIGHT 1
205 #define C2_RIGHTTOLEFT 2
206 #define C2_EUROPENUMBER 3
207 #define C2_EUROPESEPARATOR 4
208 #define C2_EUROPETERMINATOR 5
209 #define C2_ARABICNUMBER 6
210 #define C2_COMMONSEPARATOR 7
211 #define C2_BLOCKSEPARATOR 8
212 #define C2_SEGMENTSEPARATOR 9
213 #define C2_WHITESPACE 10
214 #define C2_OTHERNEUTRAL 11
215 #define C2_NOTAPPLICABLE 0
216 #define C3_NONSPACING 1
217 #define C3_DIACRITIC 2
218 #define C3_VOWELMARK 4
220 #define C3_KATAKANA 16
221 #define C3_HIRAGANA 32
222 #define C3_HALFWIDTH 64
223 #define C3_FULLWIDTH 128
224 #define C3_IDEOGRAPH 256
225 #define C3_KASHIDA 512
226 #define C3_LEXICAL 1024
227 #define C3_ALPHA 32768
228 #define C3_NOTAPPLICABLE 0
229 #define TIME_NOMINUTESORSECONDS 1
230 #define TIME_NOSECONDS 2
231 #define TIME_NOTIMEMARKER 4
232 #define TIME_FORCE24HOURFORMAT 8
233 #define MB_PRECOMPOSED 1
234 #define MB_COMPOSITE 2
235 #define MB_ERR_INVALID_CHARS 8
236 #define MB_USEGLYPHCHARS 4
237 #define WC_COMPOSITECHECK 512
238 #define WC_DISCARDNS 16
239 #define WC_SEPCHARS 32
240 #define WC_DEFAULTCHAR 64
241 #define CTRY_DEFAULT 0
242 #define CTRY_ALBANIA 355
243 #define CTRY_ALGERIA 213
244 #define CTRY_ARGENTINA 54
245 #define CTRY_ARMENIA 374
246 #define CTRY_AUSTRALIA 61
247 #define CTRY_AUSTRIA 43
248 #define CTRY_AZERBAIJAN 994
249 #define CTRY_BAHRAIN 973
250 #define CTRY_BELARUS 375
251 #define CTRY_BELGIUM 32
252 #define CTRY_BELIZE 501
253 #define CTRY_BOLIVIA 591
254 #define CTRY_BRAZIL 55
255 #define CTRY_BRUNEI_DARUSSALAM 673
256 #define CTRY_BULGARIA 359
257 #define CTRY_CANADA 2
258 #define CTRY_CARIBBEAN 1
259 #define CTRY_CHILE 56
260 #define CTRY_COLOMBIA 57
261 #define CTRY_COSTA_RICA 506
262 #define CTRY_CROATIA 385
263 #define CTRY_CZECH 420
264 #define CTRY_DENMARK 45
265 #define CTRY_DOMINICAN_REPUBLIC 1
266 #define CTRY_ECUADOR 593
267 #define CTRY_EGYPT 20
268 #define CTRY_EL_SALVADOR 503
269 #define CTRY_ESTONIA 372
270 #define CTRY_FAEROE_ISLANDS 298
271 #define CTRY_FINLAND 358
272 #define CTRY_FRANCE 33
273 #define CTRY_GEORGIA 995
274 #define CTRY_GERMANY 49
275 #define CTRY_GREECE 30
276 #define CTRY_GUATEMALA 502
277 #define CTRY_HONDURAS 504
278 #define CTRY_HONG_KONG 852
279 #define CTRY_HUNGARY 36
280 #define CTRY_ICELAND 354
281 #define CTRY_INDIA 91
282 #define CTRY_INDONESIA 62
283 #define CTRY_IRAN 981
284 #define CTRY_IRAQ 964
285 #define CTRY_IRELAND 353
286 #define CTRY_ISRAEL 972
287 #define CTRY_ITALY 39
288 #define CTRY_JAMAICA 1
289 #define CTRY_JAPAN 81
290 #define CTRY_JORDAN 962
291 #define CTRY_KAZAKSTAN 7
292 #define CTRY_KENYA 254
293 #define CTRY_KUWAIT 965
294 #define CTRY_KYRGYZSTAN 996
295 #define CTRY_LATVIA 371
296 #define CTRY_LEBANON 961
297 #define CTRY_LIBYA 218
298 #define CTRY_LIECHTENSTEIN 41
299 #define CTRY_LITHUANIA 370
300 #define CTRY_LUXEMBOURG 352
301 #define CTRY_MACAU 853
302 #define CTRY_MACEDONIA 389
303 #define CTRY_MALAYSIA 60
304 #define CTRY_MALDIVES 960
305 #define CTRY_MEXICO 52
306 #define CTRY_MONACO 33
307 #define CTRY_MONGOLIA 976
308 #define CTRY_MOROCCO 212
309 #define CTRY_NETHERLANDS 31
310 #define CTRY_NEW_ZEALAND 64
311 #define CTRY_NICARAGUA 505
312 #define CTRY_NORWAY 47
313 #define CTRY_OMAN 968
314 #define CTRY_PAKISTAN 92
315 #define CTRY_PANAMA 507
316 #define CTRY_PARAGUAY 595
318 #define CTRY_PHILIPPINES 63
319 #define CTRY_POLAND 48
320 #define CTRY_PORTUGAL 351
321 #define CTRY_PRCHINA 86
322 #define CTRY_PUERTO_RICO 1
323 #define CTRY_QATAR 974
324 #define CTRY_ROMANIA 40
325 #define CTRY_RUSSIA 7
326 #define CTRY_SAUDI_ARABIA 966
327 #define CTRY_SERBIA 381
328 #define CTRY_SINGAPORE 65
329 #define CTRY_SLOVAK 421
330 #define CTRY_SLOVENIA 386
331 #define CTRY_SOUTH_AFRICA 27
332 #define CTRY_SOUTH_KOREA 82
333 #define CTRY_SPAIN 34
334 #define CTRY_SWEDEN 46
335 #define CTRY_SWITZERLAND 41
336 #define CTRY_SYRIA 963
337 #define CTRY_TAIWAN 886
338 #define CTRY_TATARSTAN 7
339 #define CTRY_THAILAND 66
340 #define CTRY_TRINIDAD_Y_TOBAGO 1
341 #define CTRY_TUNISIA 216
342 #define CTRY_TURKEY 90
344 #define CTRY_UKRAINE 380
345 #define CTRY_UNITED_KINGDOM 44
346 #define CTRY_UNITED_STATES 1
347 #define CTRY_URUGUAY 598
348 #define CTRY_UZBEKISTAN 7
349 #define CTRY_VENEZUELA 58
350 #define CTRY_VIET_NAM 84
351 #define CTRY_YEMEN 967
352 #define CTRY_ZIMBABWE 263
353 #define CAL_ICALINTVALUE 1
354 #define CAL_SCALNAME 2
355 #define CAL_IYEAROFFSETRANGE 3
356 #define CAL_SERASTRING 4
357 #define CAL_SSHORTDATE 5
358 #define CAL_SLONGDATE 6
359 #define CAL_SDAYNAME1 7
360 #define CAL_SDAYNAME2 8
361 #define CAL_SDAYNAME3 9
362 #define CAL_SDAYNAME4 10
363 #define CAL_SDAYNAME5 11
364 #define CAL_SDAYNAME6 12
365 #define CAL_SDAYNAME7 13
366 #define CAL_SABBREVDAYNAME1 14
367 #define CAL_SABBREVDAYNAME2 15
368 #define CAL_SABBREVDAYNAME3 16
369 #define CAL_SABBREVDAYNAME4 17
370 #define CAL_SABBREVDAYNAME5 18
371 #define CAL_SABBREVDAYNAME6 19
372 #define CAL_SABBREVDAYNAME7 20
373 #define CAL_SMONTHNAME1 21
374 #define CAL_SMONTHNAME2 22
375 #define CAL_SMONTHNAME3 23
376 #define CAL_SMONTHNAME4 24
377 #define CAL_SMONTHNAME5 25
378 #define CAL_SMONTHNAME6 26
379 #define CAL_SMONTHNAME7 27
380 #define CAL_SMONTHNAME8 28
381 #define CAL_SMONTHNAME9 29
382 #define CAL_SMONTHNAME10 30
383 #define CAL_SMONTHNAME11 31
384 #define CAL_SMONTHNAME12 32
385 #define CAL_SMONTHNAME13 33
386 #define CAL_SABBREVMONTHNAME1 34
387 #define CAL_SABBREVMONTHNAME2 35
388 #define CAL_SABBREVMONTHNAME3 36
389 #define CAL_SABBREVMONTHNAME4 37
390 #define CAL_SABBREVMONTHNAME5 38
391 #define CAL_SABBREVMONTHNAME6 39
392 #define CAL_SABBREVMONTHNAME7 40
393 #define CAL_SABBREVMONTHNAME8 41
394 #define CAL_SABBREVMONTHNAME9 42
395 #define CAL_SABBREVMONTHNAME10 43
396 #define CAL_SABBREVMONTHNAME11 44
397 #define CAL_SABBREVMONTHNAME12 45
398 #define CAL_SABBREVMONTHNAME13 46
399 #define CAL_GREGORIAN 1
400 #define CAL_GREGORIAN_US 2
407 #define CAL_GREGORIAN_ME_FRENCH 9
408 #define CAL_GREGORIAN_ARABIC 10
409 #define CAL_GREGORIAN_XLIT_ENGLISH 11
410 #define CAL_GREGORIAN_XLIT_FRENCH 12
411 #define CSTR_LESS_THAN 1
413 #define CSTR_GREATER_THAN 3
414 #define LGRPID_INSTALLED 1
415 #define LGRPID_SUPPORTED 2
416 #define LGRPID_WESTERN_EUROPE 1
417 #define LGRPID_CENTRAL_EUROPE 2
418 #define LGRPID_BALTIC 3
419 #define LGRPID_GREEK 4
420 #define LGRPID_CYRILLIC 5
421 #define LGRPID_TURKISH 6
422 #define LGRPID_JAPANESE 7
423 #define LGRPID_KOREAN 8
424 #define LGRPID_TRADITIONAL_CHINESE 9
425 #define LGRPID_SIMPLIFIED_CHINESE 10
426 #define LGRPID_THAI 11
427 #define LGRPID_HEBREW 12
428 #define LGRPID_ARABIC 13
429 #define LGRPID_VIETNAMESE 14
430 #define LGRPID_INDIC 15
431 #define LGRPID_GEORGIAN 16
432 #define LGRPID_ARMENIAN 17
433 #define IS_HIGH_SURROGATE(c) (((c) & 0xFC00) == 0xD800)
434 #define IS_LOW_SURROGATE(c) (((c) & 0xFC00) == 0xDC00)
435 #define IS_SURROGATE_PAIR(hc,lc) (IS_HIGH_SURROGATE(hc) && IS_LOW_SURROGATE(lc))
437 #if WINVER >= _WIN32_WINDOWS_98 /* also >= Win2K */
439 #define CAL_SYEARMONTH 47
440 #define CAL_ITWODIGITYEARMAX 48
441 #define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE
442 #define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER
443 #define CAL_USE_CP_ACP LOCALE_USE_CP_ACP
444 #define LOCALE_SYEARMONTH 0x1006
445 #define LOCALE_SENGCURRNAME 0x1007
446 #define LOCALE_SNATIVECURRNAME 0x1008
447 #define LOCALE_SSORTNAME 0x1013
449 #endif /* >= Win98 / Win2K */
451 #if _WIN32_WINNT >= _WIN32_WINNT_WIN2K
453 #define LOCALE_IDEFAULTEBCDICCODEPAGE 0x1012
454 #define LOCALE_IDIGITSUBSTITUTION 0x1014
455 #define LOCALE_IPAPERSIZE 0x100A
456 #define DATE_YEARMONTH 8
457 #define DATE_LTRREADING 16
458 #define DATE_RTLREADING 32
459 #define MAP_EXPAND_LIGATURES 0x2000
460 #define WC_NO_BEST_FIT_CHARS 1024
462 #endif /* >= Win2K */
464 #if _WIN32_WINNT >= _WIN32_WINNT_VISTA
467 #define CAL_SSHORTESTDAYNAME1
468 #define CAL_SSHORTESTDAYNAME2
469 #define CAL_SSHORTESTDAYNAME3
470 #define CAL_SSHORTESTDAYNAME4
471 #define CAL_SSHORTESTDAYNAME5
472 #define CAL_SSHORTESTDAYNAME6
473 #define CAL_SSHORTESTDAYNAME7
475 #define LOCALE_SSHORTESTDAYNAME1
476 #define LOCALE_SSHORTESTDAYNAME2
477 #define LOCALE_SSHORTESTDAYNAME3
478 #define LOCALE_SSHORTESTDAYNAME4
479 #define LOCALE_SSHORTESTDAYNAME5
480 #define LOCALE_SSHORTESTDAYNAME6
481 #define LOCALE_SSHORTESTDAYNAME7
484 #define CAL_UMALQURA 23
487 #define LOCALE_SDURATION
488 #define LOCALE_SIETFLANGUAGE
489 #define LOCALE_SISO3166CTRYNAME2
490 #define LOCALE_SISO639LANGNAME2
491 #define LOCALE_SKEYBOARDSTOINSTALL
494 #define LOCALE_SNEGINFINITY
495 #define LOCALE_SPOSINFINITY
496 #define LOCALE_SSCRIPTS
499 #endif /* >= WinVista */
503 typedef DWORD LCTYPE;
504 typedef DWORD CALTYPE;
506 typedef DWORD LGRPID;
508 typedef DWORD GEOTYPE;
509 typedef DWORD GEOCLASS;
511 #define CALINFO_ENUMPROC __AW_SUFFIXED__( CALINFO_ENUMPROC )
512 typedef BOOL (CALLBACK *CALINFO_ENUMPROCA) (LPSTR);
513 typedef BOOL (CALLBACK *CALINFO_ENUMPROCW) (LPWSTR);
515 #define CALINFO_ENUMPROCEX __AW_SUFFIXED__( CALINFO_ENUMPROCEX )
516 typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXA) (LPSTR, CALID);
517 typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXW) (LPWSTR, CALID);
519 #define LANGUAGEGROUP_ENUMPROC __AW_SUFFIXED__( LANGUAGEGROUP_ENUMPROC )
520 typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCA) (LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR);
521 typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCW) (LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR);
523 #define LANGGROUPLOCALE_ENUMPROC __AW_SUFFIXED__( LANGGROUPLOCALE_ENUMPROC )
524 typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCA) (LGRPID, LCID, LPSTR, LONG_PTR);
525 typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCW) (LGRPID, LCID, LPWSTR, LONG_PTR);
527 #define UILANGUAGE_ENUMPROC __AW_SUFFIXED__( UILANGUAGE_ENUMPROC )
528 typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCA) (LPSTR, LONG_PTR);
529 typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCW) (LPWSTR, LONG_PTR);
531 #define LOCALE_ENUMPROC __AW_SUFFIXED__( LOCALE_ENUMPROC )
532 typedef BOOL (CALLBACK *LOCALE_ENUMPROCA) (LPSTR);
533 typedef BOOL (CALLBACK *LOCALE_ENUMPROCW) (LPWSTR);
535 #define CODEPAGE_ENUMPROC __AW_SUFFIXED__( CODEPAGE_ENUMPROC )
536 typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCA) (LPSTR);
537 typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCW) (LPWSTR);
539 #define DATEFMT_ENUMPROC __AW_SUFFIXED__( DATEFMT_ENUMPROC )
540 typedef BOOL (CALLBACK *DATEFMT_ENUMPROCA) (LPSTR);
541 typedef BOOL (CALLBACK *DATEFMT_ENUMPROCW) (LPWSTR);
543 #define DATEFMT_ENUMPROCEX __AW_SUFFIXED__( DATEFMT_ENUMPROCEX )
544 typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXA) (LPSTR, CALID);
545 typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXW) (LPWSTR, CALID);
547 #define TIMEFMT_ENUMPROC __AW_SUFFIXED__( TIMEFMT_ENUMPROC )
548 typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCA) (LPSTR);
549 typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCW) (LPWSTR);
551 typedef BOOL (CALLBACK *GEO_ENUMPROC) (GEOID);
559 { GEOCLASS_REGION = 14,
574 GEO_OFFICIALLANGUAGES
577 typedef struct _cpinfo
579 BYTE DefaultChar[MAX_DEFAULTCHAR];
580 BYTE LeadByte[MAX_LEADBYTES];
583 typedef struct _cpinfoexA
585 BYTE DefaultChar[MAX_DEFAULTCHAR];
586 BYTE LeadByte[MAX_LEADBYTES];
587 WCHAR UnicodeDefaultChar;
589 CHAR CodePageName[MAX_PATH];
590 } CPINFOEXA, *LPCPINFOEXA;
592 typedef struct _cpinfoexW
594 BYTE DefaultChar[MAX_DEFAULTCHAR];
595 BYTE LeadByte[MAX_LEADBYTES];
596 WCHAR UnicodeDefaultChar;
598 WCHAR CodePageName[MAX_PATH];
599 } CPINFOEXW, *LPCPINFOEXW;
601 typedef __AW_ALIAS__( CPINFOEX ), *LPCPINFOEX;
603 typedef struct _currencyfmtA
611 LPSTR lpCurrencySymbol;
612 } CURRENCYFMTA, *LPCURRENCYFMTA;
614 typedef struct _currencyfmtW
619 LPWSTR lpThousandSep;
622 LPWSTR lpCurrencySymbol;
623 } CURRENCYFMTW, *LPCURRENCYFMTW;
625 typedef __AW_ALIAS__( CURRENCYFMT ), *LPCURRENCYFMT;
627 typedef struct nlsversioninfo
628 { DWORD dwNLSVersionInfoSize;
630 DWORD dwDefinedVersion;
631 } NLSVERSIONINFO, *LPNLSVERSIONINFO;
633 typedef struct _numberfmtA
640 } NUMBERFMTA, *LPNUMBERFMTA;
642 typedef struct _numberfmtW
647 LPWSTR lpThousandSep;
649 } NUMBERFMTW, *LPNUMBERFMTW;
651 typedef __AW_ALIAS__( NUMBERFMT ), *LPNUMBERFMT;
653 #define CompareString __AW_SUFFIXED__( CompareString )
654 WINBASEAPI WINAPI int CompareStringA (LCID, DWORD, LPCSTR, int, LPCSTR, int);
655 WINBASEAPI WINAPI int CompareStringW (LCID, DWORD, LPCWSTR, int, LPCWSTR, int);
657 WINBASEAPI WINAPI LCID ConvertDefaultLocale (LCID);
659 #define EnumCalendarInfo __AW_SUFFIXED__( EnumCalendarInfo )
660 WINBASEAPI WINAPI BOOL EnumCalendarInfoA (CALINFO_ENUMPROCA, LCID, CALID, CALTYPE);
661 WINBASEAPI WINAPI BOOL EnumCalendarInfoW (CALINFO_ENUMPROCW, LCID, CALID, CALTYPE);
663 #define EnumDateFormats __AW_SUFFIXED__( EnumDateFormats )
664 WINBASEAPI WINAPI BOOL EnumDateFormatsA (DATEFMT_ENUMPROCA, LCID, DWORD);
665 WINBASEAPI WINAPI BOOL EnumDateFormatsW (DATEFMT_ENUMPROCW, LCID, DWORD);
667 #define EnumSystemCodePages __AW_SUFFIXED__( EnumSystemCodePages )
668 WINBASEAPI WINAPI BOOL EnumSystemCodePagesA (CODEPAGE_ENUMPROCA, DWORD);
669 WINBASEAPI WINAPI BOOL EnumSystemCodePagesW (CODEPAGE_ENUMPROCW, DWORD);
671 WINBASEAPI WINAPI BOOL EnumSystemGeoID (GEOCLASS, GEOID, GEO_ENUMPROC);
673 #define EnumSystemLocales __AW_SUFFIXED__( EnumSystemLocales )
674 WINBASEAPI WINAPI BOOL EnumSystemLocalesA (LOCALE_ENUMPROCA, DWORD);
675 WINBASEAPI WINAPI BOOL EnumSystemLocalesW (LOCALE_ENUMPROCW, DWORD);
677 #define EnumTimeFormats __AW_SUFFIXED__( EnumTimeFormats )
678 WINBASEAPI WINAPI BOOL EnumTimeFormatsA (TIMEFMT_ENUMPROCA, LCID, DWORD);
679 WINBASEAPI WINAPI BOOL EnumTimeFormatsW (TIMEFMT_ENUMPROCW, LCID, DWORD);
681 #define FoldString __AW_SUFFIXED__( FoldString )
682 WINBASEAPI WINAPI int FoldStringA (DWORD, LPCSTR, int, LPSTR, int);
683 WINBASEAPI WINAPI int FoldStringW (DWORD, LPCWSTR, int, LPWSTR, int);
685 WINBASEAPI WINAPI UINT GetACP (void);
687 #define GetCalendarInfo __AW_SUFFIXED__( GetCalendarInfo )
688 WINBASEAPI WINAPI int GetCalendarInfoA (LCID, CALID, CALTYPE, LPSTR, int, LPDWORD);
689 WINBASEAPI WINAPI int GetCalendarInfoW (LCID, CALID, CALTYPE, LPWSTR, int, LPDWORD);
691 WINBASEAPI WINAPI BOOL GetCPInfo (UINT, LPCPINFO);
693 #define GetCPInfoEx __AW_SUFFIXED__( GetCPInfoEx )
694 WINBASEAPI WINAPI BOOL GetCPInfoExA (UINT, DWORD, LPCPINFOEXA);
695 WINBASEAPI WINAPI BOOL GetCPInfoExW (UINT, DWORD, LPCPINFOEXW);
697 #define GetCurrencyFormat __AW_SUFFIXED__( GetCurrencyFormat )
698 WINBASEAPI WINAPI int GetCurrencyFormatA (LCID, DWORD, LPCSTR, const CURRENCYFMTA *, LPSTR, int);
699 WINBASEAPI WINAPI int GetCurrencyFormatW (LCID, DWORD, LPCWSTR, const CURRENCYFMTW *, LPWSTR, int);
701 #define GetDateFormat __AW_SUFFIXED__( GetDateFormat )
702 WINBASEAPI WINAPI int GetDateFormatA (LCID, DWORD, const SYSTEMTIME *, LPCSTR, LPSTR, int);
703 WINBASEAPI WINAPI int GetDateFormatW (LCID, DWORD, const SYSTEMTIME *, LPCWSTR, LPWSTR, int);
705 #define GetGeoInfo __AW_SUFFIXED__( GetGeoInfo )
706 WINBASEAPI WINAPI int GetGeoInfoA (GEOID, GEOTYPE, LPSTR, int, LANGID);
707 WINBASEAPI WINAPI int GetGeoInfoW (GEOID, GEOTYPE, LPWSTR, int, LANGID);
709 #define GetLocaleInfo __AW_SUFFIXED__( GetLocaleInfo )
710 WINBASEAPI WINAPI int GetLocaleInfoA (LCID, LCTYPE, LPSTR, int);
711 WINBASEAPI WINAPI int GetLocaleInfoW (LCID, LCTYPE, LPWSTR, int);
713 WINBASEAPI WINAPI BOOL GetNLSVersion (NLS_FUNCTION, LCID, LPNLSVERSIONINFO);
715 #define GetNumberFormat __AW_SUFFIXED__( GetNumberFormat )
716 WINBASEAPI WINAPI int GetNumberFormatA (LCID, DWORD, LPCSTR, const NUMBERFMTA *, LPSTR, int);
717 WINBASEAPI WINAPI int GetNumberFormatW (LCID, DWORD, LPCWSTR, const NUMBERFMTW *, LPWSTR, int);
719 WINBASEAPI WINAPI UINT GetOEMCP (void);
721 WINBASEAPI WINAPI BOOL GetStringTypeA (LCID, DWORD, LPCSTR, int, LPWORD);
722 WINBASEAPI WINAPI BOOL GetStringTypeW (DWORD, LPCWSTR, int, LPWORD);
724 #define GetStringTypeEx __AW_SUFFIXED__( GetStringTypeEx )
725 WINBASEAPI WINAPI BOOL GetStringTypeExA (LCID, DWORD, LPCSTR, int, LPWORD);
726 WINBASEAPI WINAPI BOOL GetStringTypeExW (LCID, DWORD, LPCWSTR, int, LPWORD);
728 WINBASEAPI WINAPI LANGID GetSystemDefaultLangID (void);
729 WINBASEAPI WINAPI LCID GetSystemDefaultLCID (void);
730 WINBASEAPI WINAPI LCID GetThreadLocale (void);
732 #define GetTimeFormat __AW_SUFFIXED__( GetTimeFormat )
733 WINBASEAPI WINAPI int GetTimeFormatA (LCID, DWORD, const SYSTEMTIME *, LPCSTR, LPSTR, int);
734 WINBASEAPI WINAPI int GetTimeFormatW (LCID, DWORD, const SYSTEMTIME *, LPCWSTR, LPWSTR, int);
736 WINBASEAPI WINAPI LANGID GetUserDefaultLangID (void);
737 WINBASEAPI WINAPI LCID GetUserDefaultLCID (void);
738 WINBASEAPI WINAPI GEOID GetUserGeoID (GEOCLASS);
739 WINBASEAPI WINAPI BOOL IsDBCSLeadByte (BYTE);
740 WINBASEAPI WINAPI BOOL IsDBCSLeadByteEx (UINT, BYTE);
741 WINBASEAPI WINAPI BOOL IsNLSDefinedString (NLS_FUNCTION, DWORD, LPNLSVERSIONINFO, LPCWSTR, int);
742 WINBASEAPI WINAPI BOOL IsValidCodePage (UINT);
743 WINBASEAPI WINAPI BOOL IsValidLocale (LCID, DWORD);
745 #define LCMapString __AW_SUFFIXED__( LCMapString )
746 WINBASEAPI WINAPI int LCMapStringA (LCID, DWORD, LPCSTR, int, LPSTR, int);
747 WINBASEAPI WINAPI int LCMapStringW (LCID, DWORD, LPCWSTR, int, LPWSTR, int);
749 WINBASEAPI WINAPI int MultiByteToWideChar (UINT, DWORD, LPCSTR, int, LPWSTR, int);
751 #define SetCalendarInfo __AW_SUFFIXED__( SetCalendarInfo )
752 WINBASEAPI WINAPI int SetCalendarInfoA (LCID, CALID, CALTYPE, LPCSTR);
753 WINBASEAPI WINAPI int SetCalendarInfoW (LCID, CALID, CALTYPE, LPCWSTR);
755 #define SetLocaleInfo __AW_SUFFIXED__( SetLocaleInfo )
756 WINBASEAPI WINAPI BOOL SetLocaleInfoA (LCID, LCTYPE, LPCSTR);
757 WINBASEAPI WINAPI BOOL SetLocaleInfoW (LCID, LCTYPE, LPCWSTR);
759 WINBASEAPI WINAPI BOOL SetThreadLocale (LCID);
760 WINBASEAPI WINAPI BOOL SetUserGeoID (GEOID);
761 WINBASEAPI WINAPI int WideCharToMultiByte (UINT, DWORD, LPCWSTR, int, LPSTR, int, LPCSTR, LPBOOL);
763 #if _WIN32_WINNT >= _WIN32_WINNT_WIN2K
765 #define EnumCalendarInfoEx __AW_SUFFIXED__( EnumCalendarInfoEx )
766 WINBASEAPI WINAPI BOOL EnumCalendarInfoExA (CALINFO_ENUMPROCEXA, LCID, CALID, CALTYPE);
767 WINBASEAPI WINAPI BOOL EnumCalendarInfoExW (CALINFO_ENUMPROCEXW, LCID, CALID, CALTYPE);
769 #define EnumDateFormatsEx __AW_SUFFIXED__( EnumDateFormatsEx )
770 WINBASEAPI WINAPI BOOL EnumDateFormatsExA (DATEFMT_ENUMPROCEXA, LCID, DWORD);
771 WINBASEAPI WINAPI BOOL EnumDateFormatsExW (DATEFMT_ENUMPROCEXW, LCID, DWORD);
773 #define EnumSystemLanguageGroups __AW_SUFFIXED__( EnumSystemLanguageGroups )
774 WINBASEAPI WINAPI BOOL EnumSystemLanguageGroupsA (LANGUAGEGROUP_ENUMPROCA, DWORD, LONG_PTR);
775 WINBASEAPI WINAPI BOOL EnumSystemLanguageGroupsW (LANGUAGEGROUP_ENUMPROCW, DWORD, LONG_PTR);
777 #define EnumLanguageGroupLocales __AW_SUFFIXED__( EnumLanguageGroupLocales )
778 WINBASEAPI WINAPI BOOL EnumLanguageGroupLocalesA (LANGGROUPLOCALE_ENUMPROCA, LGRPID, DWORD, LONG_PTR);
779 WINBASEAPI WINAPI BOOL EnumLanguageGroupLocalesW (LANGGROUPLOCALE_ENUMPROCW, LGRPID, DWORD, LONG_PTR);
781 #define EnumUILanguages __AW_SUFFIXED__( EnumUILanguages )
782 WINBASEAPI WINAPI BOOL EnumUILanguagesA (UILANGUAGE_ENUMPROCA, DWORD, LONG_PTR);
783 WINBASEAPI WINAPI BOOL EnumUILanguagesW (UILANGUAGE_ENUMPROCW, DWORD, LONG_PTR);
785 WINBASEAPI WINAPI LANGID GetSystemDefaultUILanguage (void);
786 WINBASEAPI WINAPI LANGID GetUserDefaultUILanguage (void);
787 WINBASEAPI WINAPI BOOL IsValidLanguageGroup (LGRPID, DWORD);
789 #endif /* >= Win2K */
790 #endif /* ! RC_INVOKED */
794 #endif /* !_WINNLS_H: $RCSfile$: end of file */