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