OSDN Git Service

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