OSDN Git Service

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