OSDN Git Service

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