OSDN Git Service

Make <winnls.h> header effectively self-contained.
[mingw/mingw-org-wsl.git] / w32api / include / winnls.h
1 /*
2  * winnls.h
3  *
4  * Windows National Language Support API definitions.
5  *
6  * $Id$
7  *
8  * Written by Anders Norlander <anorland@hem2.passagen.se>
9  * Copyright (C) 1998-2000, 2002-2004, 2006, 2009, 2019, MinGW.org Project.
10  *
11  *
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:
18  *
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
21  * Software.
22  *
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.
30  *
31  */
32 #ifndef _WINNLS_H
33 #pragma GCC system_header
34 #define _WINNLS_H
35
36 #include <winbase.h>
37
38 _BEGIN_C_DECLS
39
40 #define MAX_LEADBYTES                                           12
41 #define MAX_DEFAULTCHAR                                          2
42 #define LOCALE_NOUSEROVERRIDE                           0x80000000
43 #define LOCALE_USE_CP_ACP                               0x40000000
44
45 #if WINVER >= _WIN32_WINNT_NT4          /* also >= Win95 */
46
47 #define LOCALE_RETURN_NUMBER                            0x20000000
48
49 #endif  /* >= WinNT4 / Win95 */
50
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
185 #define CP_ACP                                                   0
186 #define CP_OEMCP                                                 1
187 #define CP_MACCP                                                 2
188 #define CP_THREAD_ACP                                            3
189 #define CP_SYMBOL                                               42
190 #define CP_UTF7                                              65000
191 #define CP_UTF8                                              65001
192 #define CT_CTYPE1                                                1
193 #define CT_CTYPE2                                                2
194 #define CT_CTYPE3                                                4
195 #define C1_UPPER                                                 1
196 #define C1_LOWER                                                 2
197 #define C1_DIGIT                                                 4
198 #define C1_SPACE                                                 8
199 #define C1_PUNCT                                                16
200 #define C1_CNTRL                                                32
201 #define C1_BLANK                                                64
202 #define C1_XDIGIT                                              128
203 #define C1_ALPHA                                               256
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
219 #define C3_SYMBOL                                                8
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
317 #define CTRY_PERU                                               51
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
343 #define CTRY_UAE                                               971
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
401 #define CAL_JAPAN                                                3
402 #define CAL_TAIWAN                                               4
403 #define CAL_KOREA                                                5
404 #define CAL_HIJRI                                                6
405 #define CAL_THAI                                                 7
406 #define CAL_HEBREW                                               8
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
412 #define CSTR_EQUAL                                               2
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))
436
437 #if WINVER >= _WIN32_WINDOWS_98         /* also >= Win2K */
438
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
448
449 #endif /* >= Win98 / Win2K */
450
451 #if _WIN32_WINNT >= _WIN32_WINNT_WIN2K
452
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
461
462 #endif /* >= Win2K */
463
464 #if _WIN32_WINNT >= _WIN32_WINNT_VISTA
465
466 #if 0
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
474
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
482 #endif
483
484 #define CAL_UMALQURA                                            23
485
486 #if 0
487 #define LOCALE_SDURATION
488 #define LOCALE_SIETFLANGUAGE
489 #define LOCALE_SISO3166CTRYNAME2
490 #define LOCALE_SISO639LANGNAME2
491 #define LOCALE_SKEYBOARDSTOINSTALL
492 #define LOCALE_SNAME
493 #define LOCALE_SNAN
494 #define LOCALE_SNEGINFINITY
495 #define LOCALE_SPOSINFINITY
496 #define LOCALE_SSCRIPTS
497 #endif
498
499 #endif /* >= WinVista */
500
501 #ifndef RC_INVOKED
502
503 typedef DWORD LCTYPE;
504 typedef DWORD CALTYPE;
505 typedef DWORD CALID;
506 typedef DWORD LGRPID;
507 typedef DWORD GEOID;
508 typedef DWORD GEOTYPE;
509 typedef DWORD GEOCLASS;
510
511 #define CALINFO_ENUMPROC  __AW_SUFFIXED__( CALINFO_ENUMPROC )
512 typedef BOOL (CALLBACK *CALINFO_ENUMPROCA) (LPSTR);
513 typedef BOOL (CALLBACK *CALINFO_ENUMPROCW) (LPWSTR);
514
515 #define CALINFO_ENUMPROCEX  __AW_SUFFIXED__( CALINFO_ENUMPROCEX )
516 typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXA) (LPSTR, CALID);
517 typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXW) (LPWSTR, CALID);
518
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);
522
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);
526
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);
530
531 #define LOCALE_ENUMPROC  __AW_SUFFIXED__( LOCALE_ENUMPROC )
532 typedef BOOL (CALLBACK *LOCALE_ENUMPROCA) (LPSTR);
533 typedef BOOL (CALLBACK *LOCALE_ENUMPROCW) (LPWSTR);
534
535 #define CODEPAGE_ENUMPROC  __AW_SUFFIXED__( CODEPAGE_ENUMPROC )
536 typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCA) (LPSTR);
537 typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCW) (LPWSTR);
538
539 #define DATEFMT_ENUMPROC  __AW_SUFFIXED__( DATEFMT_ENUMPROC )
540 typedef BOOL (CALLBACK *DATEFMT_ENUMPROCA) (LPSTR);
541 typedef BOOL (CALLBACK *DATEFMT_ENUMPROCW) (LPWSTR);
542
543 #define DATEFMT_ENUMPROCEX  __AW_SUFFIXED__( DATEFMT_ENUMPROCEX )
544 typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXA) (LPSTR, CALID);
545 typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXW) (LPWSTR, CALID);
546
547 #define TIMEFMT_ENUMPROC  __AW_SUFFIXED__( TIMEFMT_ENUMPROC )
548 typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCA) (LPSTR);
549 typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCW) (LPWSTR);
550
551 typedef BOOL (CALLBACK *GEO_ENUMPROC) (GEOID);
552
553 typedef
554 enum NLS_FUNCTION
555 { COMPARE_STRING         =  1
556 } NLS_FUNCTION;
557
558 enum SYSGEOCLASS
559 { GEOCLASS_REGION        =  14,
560   GEOCLASS_NATION        =  16
561 };
562
563 enum SYSGEOTYPE
564 { GEO_NATION             =  1,
565   GEO_LATITUDE,
566   GEO_LONGITUDE,
567   GEO_ISO2,
568   GEO_ISO3,
569   GEO_RFC1766,
570   GEO_LCID,
571   GEO_FRIENDLYNAME,
572   GEO_OFFICIALNAME,
573   GEO_TIMEZONES,
574   GEO_OFFICIALLANGUAGES
575 };
576
577 typedef struct _cpinfo
578 { UINT                  MaxCharSize;
579   BYTE                  DefaultChar[MAX_DEFAULTCHAR];
580   BYTE                  LeadByte[MAX_LEADBYTES];
581 } CPINFO, *LPCPINFO;
582
583 typedef struct _cpinfoexA
584 { UINT                  MaxCharSize;
585   BYTE                  DefaultChar[MAX_DEFAULTCHAR];
586   BYTE                  LeadByte[MAX_LEADBYTES];
587   WCHAR                 UnicodeDefaultChar;
588   UINT                  CodePage;
589   CHAR                  CodePageName[MAX_PATH];
590 } CPINFOEXA, *LPCPINFOEXA;
591
592 typedef struct _cpinfoexW
593 { UINT                  MaxCharSize;
594   BYTE                  DefaultChar[MAX_DEFAULTCHAR];
595   BYTE                  LeadByte[MAX_LEADBYTES];
596   WCHAR                 UnicodeDefaultChar;
597   UINT                  CodePage;
598   WCHAR                 CodePageName[MAX_PATH];
599 } CPINFOEXW, *LPCPINFOEXW;
600
601 typedef __AW_ALIAS__( CPINFOEX ), *LPCPINFOEX;
602
603 typedef struct _currencyfmtA
604 { UINT                  NumDigits;
605   UINT                  LeadingZero;
606   UINT                  Grouping;
607   LPSTR                 lpDecimalSep;
608   LPSTR                 lpThousandSep;
609   UINT                  NegativeOrder;
610   UINT                  PositiveOrder;
611   LPSTR                 lpCurrencySymbol;
612 } CURRENCYFMTA, *LPCURRENCYFMTA;
613
614 typedef struct _currencyfmtW
615 { UINT                  NumDigits;
616   UINT                  LeadingZero;
617   UINT                  Grouping;
618   LPWSTR                lpDecimalSep;
619   LPWSTR                lpThousandSep;
620   UINT                  NegativeOrder;
621   UINT                  PositiveOrder;
622   LPWSTR                lpCurrencySymbol;
623 } CURRENCYFMTW, *LPCURRENCYFMTW;
624
625 typedef __AW_ALIAS__( CURRENCYFMT ), *LPCURRENCYFMT;
626
627 typedef struct nlsversioninfo
628 { DWORD                 dwNLSVersionInfoSize;
629   DWORD                 dwNLSVersion;
630   DWORD                 dwDefinedVersion;
631 } NLSVERSIONINFO, *LPNLSVERSIONINFO;
632
633 typedef struct _numberfmtA
634 { UINT                  NumDigits;
635   UINT                  LeadingZero;
636   UINT                  Grouping;
637   LPSTR                 lpDecimalSep;
638   LPSTR                 lpThousandSep;
639   UINT                  NegativeOrder;
640 } NUMBERFMTA, *LPNUMBERFMTA;
641
642 typedef struct _numberfmtW
643 { UINT                  NumDigits;
644   UINT                  LeadingZero;
645   UINT                  Grouping;
646   LPWSTR                lpDecimalSep;
647   LPWSTR                lpThousandSep;
648   UINT                  NegativeOrder;
649 } NUMBERFMTW, *LPNUMBERFMTW;
650
651 typedef __AW_ALIAS__( NUMBERFMT ), *LPNUMBERFMT;
652
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);
656
657 WINBASEAPI WINAPI  LCID   ConvertDefaultLocale (LCID);
658
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);
662
663 #define EnumDateFormats  __AW_SUFFIXED__( EnumDateFormats )
664 WINBASEAPI WINAPI  BOOL   EnumDateFormatsA (DATEFMT_ENUMPROCA, LCID, DWORD);
665 WINBASEAPI WINAPI  BOOL   EnumDateFormatsW (DATEFMT_ENUMPROCW, LCID, DWORD);
666
667 #define EnumSystemCodePages  __AW_SUFFIXED__( EnumSystemCodePages )
668 WINBASEAPI WINAPI  BOOL   EnumSystemCodePagesA (CODEPAGE_ENUMPROCA, DWORD);
669 WINBASEAPI WINAPI  BOOL   EnumSystemCodePagesW (CODEPAGE_ENUMPROCW, DWORD);
670
671 WINBASEAPI WINAPI  BOOL   EnumSystemGeoID (GEOCLASS, GEOID, GEO_ENUMPROC);
672
673 #define EnumSystemLocales  __AW_SUFFIXED__( EnumSystemLocales )
674 WINBASEAPI WINAPI  BOOL   EnumSystemLocalesA (LOCALE_ENUMPROCA, DWORD);
675 WINBASEAPI WINAPI  BOOL   EnumSystemLocalesW (LOCALE_ENUMPROCW, DWORD);
676
677 #define EnumTimeFormats  __AW_SUFFIXED__( EnumTimeFormats )
678 WINBASEAPI WINAPI  BOOL   EnumTimeFormatsA (TIMEFMT_ENUMPROCA, LCID, DWORD);
679 WINBASEAPI WINAPI  BOOL   EnumTimeFormatsW (TIMEFMT_ENUMPROCW, LCID, DWORD);
680
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);
684
685 WINBASEAPI WINAPI  UINT   GetACP (void);
686
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);
690
691 WINBASEAPI WINAPI  BOOL   GetCPInfo (UINT, LPCPINFO);
692
693 #define GetCPInfoEx  __AW_SUFFIXED__( GetCPInfoEx )
694 WINBASEAPI WINAPI  BOOL   GetCPInfoExA (UINT, DWORD, LPCPINFOEXA);
695 WINBASEAPI WINAPI  BOOL   GetCPInfoExW (UINT, DWORD, LPCPINFOEXW);
696
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);
700
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);
704
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);
708
709 #define GetLocaleInfo  __AW_SUFFIXED__( GetLocaleInfo )
710 WINBASEAPI WINAPI  int    GetLocaleInfoA (LCID, LCTYPE, LPSTR, int);
711 WINBASEAPI WINAPI  int    GetLocaleInfoW (LCID, LCTYPE, LPWSTR, int);
712
713 WINBASEAPI WINAPI  BOOL   GetNLSVersion (NLS_FUNCTION, LCID, LPNLSVERSIONINFO);
714
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);
718
719 WINBASEAPI WINAPI  UINT   GetOEMCP (void);
720
721 WINBASEAPI WINAPI  BOOL   GetStringTypeA (LCID, DWORD, LPCSTR, int, LPWORD);
722 WINBASEAPI WINAPI  BOOL   GetStringTypeW (DWORD, LPCWSTR, int, LPWORD);
723
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);
727
728 WINBASEAPI WINAPI  LANGID GetSystemDefaultLangID (void);
729 WINBASEAPI WINAPI  LCID   GetSystemDefaultLCID (void);
730 WINBASEAPI WINAPI  LCID   GetThreadLocale (void);
731
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);
735
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);
744
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);
748
749 WINBASEAPI WINAPI  int    MultiByteToWideChar (UINT, DWORD, LPCSTR, int, LPWSTR, int);
750
751 #define SetCalendarInfo  __AW_SUFFIXED__( SetCalendarInfo )
752 WINBASEAPI WINAPI  int    SetCalendarInfoA (LCID, CALID, CALTYPE, LPCSTR);
753 WINBASEAPI WINAPI  int    SetCalendarInfoW (LCID, CALID, CALTYPE, LPCWSTR);
754
755 #define SetLocaleInfo  __AW_SUFFIXED__( SetLocaleInfo )
756 WINBASEAPI WINAPI  BOOL   SetLocaleInfoA (LCID, LCTYPE, LPCSTR);
757 WINBASEAPI WINAPI  BOOL   SetLocaleInfoW (LCID, LCTYPE, LPCWSTR);
758
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);
762
763 #if _WIN32_WINNT >= _WIN32_WINNT_WIN2K
764
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);
768
769 #define EnumDateFormatsEx  __AW_SUFFIXED__( EnumDateFormatsEx )
770 WINBASEAPI WINAPI  BOOL   EnumDateFormatsExA (DATEFMT_ENUMPROCEXA, LCID, DWORD);
771 WINBASEAPI WINAPI  BOOL   EnumDateFormatsExW (DATEFMT_ENUMPROCEXW, LCID, DWORD);
772
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);
776
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);
780
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);
784
785 WINBASEAPI WINAPI  LANGID GetSystemDefaultUILanguage (void);
786 WINBASEAPI WINAPI  LANGID GetUserDefaultUILanguage (void);
787 WINBASEAPI WINAPI  BOOL   IsValidLanguageGroup (LGRPID, DWORD);
788
789 #endif /* >= Win2K */
790 #endif /* ! RC_INVOKED */
791
792 _END_C_DECLS
793
794 #endif  /* !_WINNLS_H: $RCSfile$: end of file */