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