4a1e55d07bee5378f53828c231a4857fd7af8506
[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 // FIXME
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 #define LOCALE_FONTSIGNATURE 88
127 #define LOCALE_SISO639LANGNAME 89
128 #define LOCALE_SISO3166CTRYNAME 90
129 #define LOCALE_SNAME 92 // FIXME
130
131 #if (WINVER >= 0x0600)
132 #define LOCALE_SNAME 92
133 #define LOCALE_SDURATION 93
134 #define LOCALE_SKEYBOARDSTOINSTALL 94
135 #define LOCALE_SSHORTESTDAYNAME1 96
136 #define LOCALE_SSHORTESTDAYNAME2 97
137 #define LOCALE_SSHORTESTDAYNAME3 98
138 #define LOCALE_SSHORTESTDAYNAME4 99
139 #define LOCALE_SSHORTESTDAYNAME5 100
140 #define LOCALE_SSHORTESTDAYNAME6 101
141 #define LOCALE_SSHORTESTDAYNAME7 102
142 #define LOCALE_SISO639LANGNAME2 103
143 #define LOCALE_SISO3166CTRYNAME2 104
144 #define LOCALE_SNAN 105
145 #define LOCALE_SPOSINFINITY 106
146 #define LOCALE_SNEGINFINITY 107
147 #define LOCALE_SSCRIPTS 108
148 #define LOCALE_SPARENT 109
149 #define LOCALE_SCONSOLEFALLBACKNAME 110
150 #endif /* (WINVER >= 0x0600) */
151
152 //#if (WINVER >= _WIN32_WINNT_WIN7)
153 #define LOCALE_IREADINGLAYOUT 0x0070
154 #define LOCALE_INEUTRAL 0x0071
155 #define LOCALE_INEGATIVEPERCENT 0x0074
156 #define LOCALE_IPOSITIVEPERCENT 0x0075
157 #define LOCALE_SPERCENT 0x0076
158 #define LOCALE_SPERMILLE 0x0077
159 #define LOCALE_SMONTHDAY 0x0078
160 #define LOCALE_SSHORTTIME 0x0079
161 #define LOCALE_SOPENTYPELANGUAGETAG 0x007a
162 #define LOCALE_SSORTLOCALE 0x007b
163 //#endif /* (WINVER >= _WIN32_WINNT_WIN7) */
164
165 #if (WINVER >= 0x0600)
166 #define LOCALE_NAME_USER_DEFAULT NULL
167 #define LOCALE_NAME_INVARIANT L""
168 #define LOCALE_NAME_SYSTEM_DEFAULT L"!sys-default-locale"
169 #endif
170
171 #define LOCALE_IDEFAULTUNIXCODEPAGE 0x1030 /* Wine extension */
172
173 #define NORM_IGNORECASE 1
174 #define NORM_IGNOREKANATYPE 65536
175 #define NORM_IGNORENONSPACE 2
176 #define NORM_IGNORESYMBOLS 4
177 #define NORM_IGNOREWIDTH 131072
178 #define LINGUISTIC_IGNORECASE 0x00000010
179 #define NORM_LINGUISTIC_CASING 0x08000000
180 #define SORT_STRINGSORT 4096
181 #define LCMAP_LOWERCASE 0x00000100
182 #define LCMAP_UPPERCASE 0x00000200
183 #define LCMAP_SORTKEY 0x00000400
184 #define LCMAP_BYTEREV 0x00000800
185 #define LCMAP_HIRAGANA 0x00100000
186 #define LCMAP_KATAKANA 0x00200000
187 #define LCMAP_HALFWIDTH 0x00400000
188 #define LCMAP_FULLWIDTH 0x00800000
189 #define LCMAP_LINGUISTIC_CASING 0x01000000
190 #define LCMAP_SIMPLIFIED_CHINESE 0x02000000
191 #define LCMAP_TRADITIONAL_CHINESE 0x04000000
192 #define ENUM_ALL_CALENDARS (-1)
193 #define DATE_SHORTDATE 1
194 #define DATE_LONGDATE 2
195 #define DATE_USE_ALT_CALENDAR 4
196 #define CP_INSTALLED 1
197 #define CP_SUPPORTED 2
198 #define LCID_INSTALLED 1
199 #define LCID_SUPPORTED 2
200 #define LCID_ALTERNATE_SORTS 4
201 #define MAP_FOLDCZONE 16
202 #define MAP_FOLDDIGITS 128
203 #define MAP_PRECOMPOSED 32
204 #define MAP_COMPOSITE 64
205
206 #define WC_DISCARDNS 0x0010
207 #define WC_SEPCHARS 0x0020
208 #define WC_DEFAULTCHAR 0x0040
209 #define WC_ERR_INVALID_CHARS 0x0080
210 #define WC_COMPOSITECHECK 0x0200
211 #if (WINVER >= 0x0500)
212 #define WC_NO_BEST_FIT_CHARS 0x0400
213 #endif
214
215 #define CP_ACP 0
216 #ifdef _WINE
217 #define CP_UNIXCP CP_ACP
218 #endif
219 #define CP_OEMCP 1
220 #define CP_MACCP 2
221 #define CP_THREAD_ACP 3
222 #define CP_SYMBOL 42
223 #define CP_UTF7 65000
224 #define CP_UTF8 65001
225 #define CT_CTYPE1 1
226 #define CT_CTYPE2 2
227 #define CT_CTYPE3 4
228 #define C1_UPPER 1
229 #define C1_LOWER 2
230 #define C1_DIGIT 4
231 #define C1_SPACE 8
232 #define C1_PUNCT 16
233 #define C1_CNTRL 32
234 #define C1_BLANK 64
235 #define C1_XDIGIT 128
236 #define C1_ALPHA 256
237 #define C1_DEFINED 512
238 #define C2_LEFTTORIGHT 1
239 #define C2_RIGHTTOLEFT 2
240 #define C2_EUROPENUMBER 3
241 #define C2_EUROPESEPARATOR 4
242 #define C2_EUROPETERMINATOR 5
243 #define C2_ARABICNUMBER 6
244 #define C2_COMMONSEPARATOR 7
245 #define C2_BLOCKSEPARATOR 8
246 #define C2_SEGMENTSEPARATOR 9
247 #define C2_WHITESPACE 10
248 #define C2_OTHERNEUTRAL 11
249 #define C2_NOTAPPLICABLE 0
250 #define C3_NONSPACING 1
251 #define C3_DIACRITIC 2
252 #define C3_VOWELMARK 4
253 #define C3_SYMBOL 8
254 #define C3_KATAKANA 16
255 #define C3_HIRAGANA 32
256 #define C3_HALFWIDTH 64
257 #define C3_FULLWIDTH 128
258 #define C3_IDEOGRAPH 256
259 #define C3_KASHIDA 512
260 #define C3_LEXICAL 1024
261 #define C3_ALPHA 32768
262 #define C3_NOTAPPLICABLE 0
263 #define TIME_NOMINUTESORSECONDS 1
264 #define TIME_NOSECONDS 2
265 #define TIME_NOTIMEMARKER 4
266 #define TIME_FORCE24HOURFORMAT 8
267 #define MB_PRECOMPOSED 1
268 #define MB_COMPOSITE 2
269 #define MB_ERR_INVALID_CHARS 8
270 #define MB_USEGLYPHCHARS 4
271 #define CTRY_DEFAULT 0
272 #define CTRY_ALBANIA 355
273 #define CTRY_ALGERIA 213
274 #define CTRY_ARGENTINA 54
275 #define CTRY_ARMENIA 374
276 #define CTRY_AUSTRALIA 61
277 #define CTRY_AUSTRIA 43
278 #define CTRY_AZERBAIJAN 994
279 #define CTRY_BAHRAIN 973
280 #define CTRY_BELARUS 375
281 #define CTRY_BELGIUM 32
282 #define CTRY_BELIZE 501
283 #define CTRY_BOLIVIA 591
284 #define CTRY_BRAZIL 55
285 #define CTRY_BRUNEI_DARUSSALAM 673
286 #define CTRY_BULGARIA 359
287 #define CTRY_CANADA 2
288 #define CTRY_CARIBBEAN 1
289 #define CTRY_CHILE 56
290 #define CTRY_COLOMBIA 57
291 #define CTRY_COSTA_RICA 506
292 #define CTRY_CROATIA 385
293 #define CTRY_CZECH 420
294 #define CTRY_DENMARK 45
295 #define CTRY_DOMINICAN_REPUBLIC 1
296 #define CTRY_ECUADOR 593
297 #define CTRY_EGYPT 20
298 #define CTRY_EL_SALVADOR 503
299 #define CTRY_ESTONIA 372
300 #define CTRY_FAEROE_ISLANDS 298
301 #define CTRY_FINLAND 358
302 #define CTRY_FRANCE 33
303 #define CTRY_GEORGIA 995
304 #define CTRY_GERMANY 49
305 #define CTRY_GREECE 30
306 #define CTRY_GUATEMALA 502
307 #define CTRY_HONDURAS 504
308 #define CTRY_HONG_KONG 852
309 #define CTRY_HUNGARY 36
310 #define CTRY_ICELAND 354
311 #define CTRY_INDIA 91
312 #define CTRY_INDONESIA 62
313 #define CTRY_IRAN 981
314 #define CTRY_IRAQ 964
315 #define CTRY_IRELAND 353
316 #define CTRY_ISRAEL 972
317 #define CTRY_ITALY 39
318 #define CTRY_JAMAICA 1
319 #define CTRY_JAPAN 81
320 #define CTRY_JORDAN 962
321 #define CTRY_KAZAKSTAN 7
322 #define CTRY_KENYA 254
323 #define CTRY_KUWAIT 965
324 #define CTRY_KYRGYZSTAN 996
325 #define CTRY_LATVIA 371
326 #define CTRY_LEBANON 961
327 #define CTRY_LIBYA 218
328 #define CTRY_LIECHTENSTEIN 41
329 #define CTRY_LITHUANIA 370
330 #define CTRY_LUXEMBOURG 352
331 #define CTRY_MACAU 853
332 #define CTRY_MACEDONIA 389
333 #define CTRY_MALAYSIA 60
334 #define CTRY_MALDIVES 960
335 #define CTRY_MEXICO 52
336 #define CTRY_MONACO 33
337 #define CTRY_MONGOLIA 976
338 #define CTRY_MOROCCO 212
339 #define CTRY_NETHERLANDS 31
340 #define CTRY_NEW_ZEALAND 64
341 #define CTRY_NICARAGUA 505
342 #define CTRY_NORWAY 47
343 #define CTRY_OMAN 968
344 #define CTRY_PAKISTAN 92
345 #define CTRY_PANAMA 507
346 #define CTRY_PARAGUAY 595
347 #define CTRY_PERU 51
348 #define CTRY_PHILIPPINES 63
349 #define CTRY_POLAND 48
350 #define CTRY_PORTUGAL 351
351 #define CTRY_PRCHINA 86
352 #define CTRY_PUERTO_RICO 1
353 #define CTRY_QATAR 974
354 #define CTRY_ROMANIA 40
355 #define CTRY_RUSSIA 7
356 #define CTRY_SAUDI_ARABIA 966
357 #define CTRY_SERBIA 381
358 #define CTRY_SINGAPORE 65
359 #define CTRY_SLOVAK 421
360 #define CTRY_SLOVENIA 386
361 #define CTRY_SOUTH_AFRICA 27
362 #define CTRY_SOUTH_KOREA 82
363 #define CTRY_SPAIN 34
364 #define CTRY_SWEDEN 46
365 #define CTRY_SWITZERLAND 41
366 #define CTRY_SYRIA 963
367 #define CTRY_TAIWAN 886
368 #define CTRY_TATARSTAN 7
369 #define CTRY_THAILAND 66
370 #define CTRY_TRINIDAD_Y_TOBAGO 1
371 #define CTRY_TUNISIA 216
372 #define CTRY_TURKEY 90
373 #define CTRY_UAE 971
374 #define CTRY_UKRAINE 380
375 #define CTRY_UNITED_KINGDOM 44
376 #define CTRY_UNITED_STATES 1
377 #define CTRY_URUGUAY 598
378 #define CTRY_UZBEKISTAN 7
379 #define CTRY_VENEZUELA 58
380 #define CTRY_VIET_NAM 84
381 #define CTRY_YEMEN 967
382 #define CTRY_ZIMBABWE 263
383 #define CAL_ICALINTVALUE 1
384 #define CAL_SCALNAME 2
385 #define CAL_IYEAROFFSETRANGE 3
386 #define CAL_SERASTRING 4
387 #define CAL_SSHORTDATE 5
388 #define CAL_SLONGDATE 6
389 #define CAL_SDAYNAME1 7
390 #define CAL_SDAYNAME2 8
391 #define CAL_SDAYNAME3 9
392 #define CAL_SDAYNAME4 10
393 #define CAL_SDAYNAME5 11
394 #define CAL_SDAYNAME6 12
395 #define CAL_SDAYNAME7 13
396 #define CAL_SABBREVDAYNAME1 14
397 #define CAL_SABBREVDAYNAME2 15
398 #define CAL_SABBREVDAYNAME3 16
399 #define CAL_SABBREVDAYNAME4 17
400 #define CAL_SABBREVDAYNAME5 18
401 #define CAL_SABBREVDAYNAME6 19
402 #define CAL_SABBREVDAYNAME7 20
403 #define CAL_SMONTHNAME1 21
404 #define CAL_SMONTHNAME2 22
405 #define CAL_SMONTHNAME3 23
406 #define CAL_SMONTHNAME4 24
407 #define CAL_SMONTHNAME5 25
408 #define CAL_SMONTHNAME6 26
409 #define CAL_SMONTHNAME7 27
410 #define CAL_SMONTHNAME8 28
411 #define CAL_SMONTHNAME9 29
412 #define CAL_SMONTHNAME10 30
413 #define CAL_SMONTHNAME11 31
414 #define CAL_SMONTHNAME12 32
415 #define CAL_SMONTHNAME13 33
416 #define CAL_SABBREVMONTHNAME1 34
417 #define CAL_SABBREVMONTHNAME2 35
418 #define CAL_SABBREVMONTHNAME3 36
419 #define CAL_SABBREVMONTHNAME4 37
420 #define CAL_SABBREVMONTHNAME5 38
421 #define CAL_SABBREVMONTHNAME6 39
422 #define CAL_SABBREVMONTHNAME7 40
423 #define CAL_SABBREVMONTHNAME8 41
424 #define CAL_SABBREVMONTHNAME9 42
425 #define CAL_SABBREVMONTHNAME10 43
426 #define CAL_SABBREVMONTHNAME11 44
427 #define CAL_SABBREVMONTHNAME12 45
428 #define CAL_SABBREVMONTHNAME13 46
429 #define CAL_GREGORIAN 1
430 #define CAL_GREGORIAN_US 2
431 #define CAL_JAPAN 3
432 #define CAL_TAIWAN 4
433 #define CAL_KOREA 5
434 #define CAL_HIJRI 6
435 #define CAL_THAI 7
436 #define CAL_HEBREW 8
437 #define CAL_GREGORIAN_ME_FRENCH 9
438 #define CAL_GREGORIAN_ARABIC 10
439 #define CAL_GREGORIAN_XLIT_ENGLISH 11
440 #define CAL_GREGORIAN_XLIT_FRENCH 12
441 #define CSTR_LESS_THAN 1
442 #define CSTR_EQUAL 2
443 #define CSTR_GREATER_THAN 3
444 #define LGRPID_INSTALLED 1
445 #define LGRPID_SUPPORTED 2
446 #define LGRPID_WESTERN_EUROPE 1
447 #define LGRPID_CENTRAL_EUROPE 2
448 #define LGRPID_BALTIC 3
449 #define LGRPID_GREEK 4
450 #define LGRPID_CYRILLIC 5
451 #define LGRPID_TURKISH 6
452 #define LGRPID_JAPANESE 7
453 #define LGRPID_KOREAN 8
454 #define LGRPID_TRADITIONAL_CHINESE 9
455 #define LGRPID_SIMPLIFIED_CHINESE 10
456 #define LGRPID_THAI 11
457 #define LGRPID_HEBREW 12
458 #define LGRPID_ARABIC 13
459 #define LGRPID_VIETNAMESE 14
460 #define LGRPID_INDIC 15
461 #define LGRPID_GEORGIAN 16
462 #define LGRPID_ARMENIAN 17
463
464 #if (WINVER >= 0x0500)
465 #define LOCALE_SYEARMONTH 0x1006
466 #define LOCALE_SENGCURRNAME 0x1007
467 #define LOCALE_SNATIVECURRNAME 0x1008
468 #define LOCALE_IDEFAULTEBCDICCODEPAGE 0x1012
469 #define LOCALE_SSORTNAME 0x1013
470 #define LOCALE_IDIGITSUBSTITUTION 0x1014
471 #define LOCALE_IPAPERSIZE 0x100A
472 #define DATE_YEARMONTH 8
473 #define DATE_LTRREADING 16
474 #define DATE_RTLREADING 32
475 #define MAP_EXPAND_LIGATURES 0x2000
476 #define CAL_SYEARMONTH 47
477 #define CAL_ITWODIGITYEARMAX 48
478 #define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE
479 #define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER
480 #define CAL_USE_CP_ACP LOCALE_USE_CP_ACP
481 #endif /* (WINVER >= 0x0500) */
482 #if WINVER >= 0x0600
483 #define IDN_ALLOW_UNASSIGNED 0x1
484 #define IDN_USE_STD3_ASCII_RULES 0x2
485 #define VS_ALLOW_LATIN 0x1
486 #define GSS_ALLOW_INHERITED_COMMON 0x1
487 #endif
488 #ifndef _BASETSD_H_
489 typedef long LONG_PTR;
490 #endif
491
492 #ifndef RC_INVOKED
493 typedef DWORD LCTYPE;
494 typedef DWORD CALTYPE;
495 typedef DWORD CALID;
496 typedef DWORD LGRPID;
497 typedef DWORD GEOID;
498 typedef DWORD GEOTYPE;
499 typedef DWORD GEOCLASS;
500 typedef BOOL (CALLBACK *CALINFO_ENUMPROCA)(LPSTR);
501 typedef BOOL (CALLBACK *CALINFO_ENUMPROCW)(LPWSTR);
502 typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXA)(LPSTR, CALID);
503 typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXW)(LPWSTR, CALID);
504 typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCA)(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR);
505 typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCW)(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR);
506 typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCA)(LGRPID, LCID, LPSTR, LONG_PTR);
507 typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCW)(LGRPID, LCID, LPWSTR, LONG_PTR);
508 typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCW)(LPWSTR, LONG_PTR);
509 typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCA)(LPSTR, LONG_PTR);
510 typedef BOOL (CALLBACK *LOCALE_ENUMPROCA)(LPSTR);
511 typedef BOOL (CALLBACK *LOCALE_ENUMPROCW)(LPWSTR);
512 typedef BOOL (CALLBACK *LOCALE_ENUMPROCEX)(LPWSTR, DWORD, LPARAM);
513 typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCA)(LPSTR);
514 typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCW)(LPWSTR);
515 typedef BOOL (CALLBACK *DATEFMT_ENUMPROCA)(LPSTR);
516 typedef BOOL (CALLBACK *DATEFMT_ENUMPROCW)(LPWSTR);
517 typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXA)(LPSTR, CALID);
518 typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXW)(LPWSTR, CALID);
519 typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCA)(LPSTR);
520 typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCW)(LPWSTR);
521 typedef BOOL (CALLBACK *GEO_ENUMPROC)(GEOID);
522
523 enum NLS_FUNCTION {
524 COMPARE_STRING = 0x0001
525 };
526 typedef enum NLS_FUNCTION NLS_FUNCTION;
527 enum SYSGEOCLASS {
528 GEOCLASS_NATION = 16,
529 GEOCLASS_REGION = 14
530 };
531 enum SYSGEOTYPE {
532 GEO_NATION = 0x0001,
533 GEO_LATITUDE = 0x0002,
534 GEO_LONGITUDE = 0x0003,
535 GEO_ISO2 = 0x0004,
536 GEO_ISO3 = 0x0005,
537 GEO_RFC1766 = 0x0006,
538 GEO_LCID = 0x0007,
539 GEO_FRIENDLYNAME = 0x0008,
540 GEO_OFFICIALNAME = 0x0009,
541 GEO_TIMEZONES = 0x000a,
542 GEO_OFFICIALLANGUAGES = 0x000b
543 };
544
545 typedef struct _cpinfo {
546 UINT MaxCharSize;
547 BYTE DefaultChar[MAX_DEFAULTCHAR];
548 BYTE LeadByte[MAX_LEADBYTES];
549 } CPINFO,*LPCPINFO;
550 typedef struct _cpinfoexA {
551 UINT MaxCharSize;
552 BYTE DefaultChar[MAX_DEFAULTCHAR];
553 BYTE LeadByte[MAX_LEADBYTES];
554 WCHAR UnicodeDefaultChar;
555 UINT CodePage;
556 CHAR CodePageName[MAX_PATH];
557 } CPINFOEXA,*LPCPINFOEXA;
558 typedef struct _cpinfoexW {
559 UINT MaxCharSize;
560 BYTE DefaultChar[MAX_DEFAULTCHAR];
561 BYTE LeadByte[MAX_LEADBYTES];
562 WCHAR UnicodeDefaultChar;
563 UINT CodePage;
564 WCHAR CodePageName[MAX_PATH];
565 } CPINFOEXW,*LPCPINFOEXW;
566 typedef struct _currencyfmtA {
567 UINT NumDigits;
568 UINT LeadingZero;
569 UINT Grouping;
570 LPSTR lpDecimalSep;
571 LPSTR lpThousandSep;
572 UINT NegativeOrder;
573 UINT PositiveOrder;
574 LPSTR lpCurrencySymbol;
575 } CURRENCYFMTA,*LPCURRENCYFMTA;
576 typedef struct _currencyfmtW {
577 UINT NumDigits;
578 UINT LeadingZero;
579 UINT Grouping;
580 LPWSTR lpDecimalSep;
581 LPWSTR lpThousandSep;
582 UINT NegativeOrder;
583 UINT PositiveOrder;
584 LPWSTR lpCurrencySymbol;
585 } CURRENCYFMTW,*LPCURRENCYFMTW;
586 typedef struct nlsversioninfo {
587 DWORD dwNLSVersionInfoSize;
588 DWORD dwNLSVersion;
589 DWORD dwDefinedVersion;
590 } NLSVERSIONINFO,*LPNLSVERSIONINFO;
591 typedef struct _numberfmtA {
592 UINT NumDigits;
593 UINT LeadingZero;
594 UINT Grouping;
595 LPSTR lpDecimalSep;
596 LPSTR lpThousandSep;
597 UINT NegativeOrder;
598 } NUMBERFMTA,*LPNUMBERFMTA;
599 typedef struct _numberfmtW {
600 UINT NumDigits;
601 UINT LeadingZero;
602 UINT Grouping;
603 LPWSTR lpDecimalSep;
604 LPWSTR lpThousandSep;
605 UINT NegativeOrder;
606 } NUMBERFMTW,*LPNUMBERFMTW;
607 #if (WINVER >= 0x0600)
608 typedef enum _NORM_FORM {
609 NormalizationOther = 0,
610 NormalizationC = 0x1,
611 NormalizationD = 0x2,
612 NormalizationKC = 0x5,
613 NormalizationKD = 0x6
614 } NORM_FORM;
615 #endif /* (WINVER >= 0x0600) */
616 typedef struct _FILEMUIINFO {
617 DWORD dwSize;
618 DWORD dwVersion;
619 DWORD dwFileType;
620 BYTE pChecksum[16];
621 BYTE pServiceChecksum[16];
622 DWORD dwLanguageNameOffset;
623 DWORD dwTypeIDMainSize;
624 DWORD dwTypeIDMainOffset;
625 DWORD dwTypeNameMainOffset;
626 DWORD dwTypeIDMUISize;
627 DWORD dwTypeIDMUIOffset;
628 DWORD dwTypeNameMUIOffset;
629 BYTE abBuffer[8];
630 } FILEMUIINFO, *PFILEMUIINFO;
631
632 #define HIGH_SURROGATE_START 0xd800
633 #define HIGH_SURROGATE_END 0xdbff
634 #define LOW_SURROGATE_START 0xdc00
635 #define LOW_SURROGATE_END 0xdfff
636
637 #define IS_HIGH_SURROGATE(ch) ((ch) >= HIGH_SURROGATE_START && (ch) <= HIGH_SURROGATE_END)
638 #define IS_LOW_SURROGATE(ch) ((ch) >= LOW_SURROGATE_START && (ch) <= LOW_SURROGATE_END)
639 #define IS_SURROGATE_PAIR(high,low) (IS_HIGH_SURROGATE(high) && IS_LOW_SURROGATE(low))
640
641 int
642 WINAPI
643 CompareStringA(
644 _In_ LCID Locale,
645 _In_ DWORD dwCmpFlags,
646 _In_reads_(cchCount1) LPCSTR lpString1,
647 _In_ int cchCount1,
648 _In_reads_(cchCount2) LPCSTR lpString2,
649 _In_ int cchCount2);
650
651 int
652 WINAPI
653 CompareStringW(
654 _In_ LCID Locale,
655 _In_ DWORD dwCmpFlags,
656 _In_reads_(cchCount1) LPCWSTR lpString1,
657 _In_ int cchCount1,
658 _In_reads_(cchCount2) LPCWSTR lpString2,
659 _In_ int cchCount2);
660
661 LCID WINAPI ConvertDefaultLocale(_In_ LCID);
662 BOOL WINAPI EnumCalendarInfoA(_In_ CALINFO_ENUMPROCA, _In_ LCID, _In_ CALID, _In_ CALTYPE);
663 BOOL WINAPI EnumCalendarInfoW(_In_ CALINFO_ENUMPROCW, _In_ LCID, _In_ CALID, _In_ CALTYPE);
664 BOOL WINAPI EnumDateFormatsA(_In_ DATEFMT_ENUMPROCA, _In_ LCID, _In_ DWORD);
665 BOOL WINAPI EnumDateFormatsW(_In_ DATEFMT_ENUMPROCW, _In_ LCID, _In_ DWORD);
666 BOOL WINAPI EnumSystemCodePagesA(_In_ CODEPAGE_ENUMPROCA, _In_ DWORD);
667 BOOL WINAPI EnumSystemCodePagesW(_In_ CODEPAGE_ENUMPROCW, _In_ DWORD);
668 BOOL WINAPI EnumSystemGeoID(_In_ GEOCLASS, _In_ GEOID, _In_ GEO_ENUMPROC);
669 BOOL WINAPI EnumSystemLocalesA(_In_ LOCALE_ENUMPROCA, _In_ DWORD);
670 BOOL WINAPI EnumSystemLocalesW(_In_ LOCALE_ENUMPROCW, _In_ DWORD);
671 BOOL WINAPI EnumTimeFormatsA(_In_ TIMEFMT_ENUMPROCA, _In_ LCID, _In_ DWORD);
672 BOOL WINAPI EnumTimeFormatsW(_In_ TIMEFMT_ENUMPROCW, _In_ LCID, _In_ DWORD);
673
674 int
675 WINAPI
676 FoldStringA(
677 _In_ DWORD dwMapFlags,
678 _In_reads_(cchSrc) LPCSTR lpSrcStr,
679 _In_ int cchSrc,
680 _Out_writes_opt_(cchDest) LPSTR lpDestStr,
681 _In_ int cchDest);
682
683 int
684 WINAPI
685 FoldStringW(
686 _In_ DWORD dwMapFlags,
687 _In_reads_(cchSrc) LPCWSTR lpSrcStr,
688 _In_ int cchSrc,
689 _Out_writes_opt_(cchDest) LPWSTR lpDestStr,
690 _In_ int cchDest);
691
692 UINT WINAPI GetACP(void);
693
694 int
695 WINAPI
696 GetCalendarInfoA(
697 _In_ LCID Locale,
698 _In_ CALID Calendar,
699 _In_ CALTYPE CalType,
700 _Out_writes_opt_(cchData) LPSTR lpCalData,
701 _In_ int cchData,
702 _Out_opt_ LPDWORD lpValue);
703
704 int
705 WINAPI
706 GetCalendarInfoW(
707 _In_ LCID Locale,
708 _In_ CALID Calendar,
709 _In_ CALTYPE CalType,
710 _Out_writes_opt_(cchData) LPWSTR lpCalData,
711 _In_ int cchData,
712 _Out_opt_ LPDWORD lpValue);
713
714 BOOL WINAPI GetCPInfo(_In_ UINT, _Out_ LPCPINFO);
715 BOOL WINAPI GetCPInfoExA(_In_ UINT, _In_ DWORD, _Out_ LPCPINFOEXA);
716 BOOL WINAPI GetCPInfoExW(_In_ UINT, _In_ DWORD, _Out_ LPCPINFOEXW);
717
718 int
719 WINAPI
720 GetCurrencyFormatA(
721 _In_ LCID Locale,
722 _In_ DWORD dwFlags,
723 _In_ LPCSTR lpValue,
724 _In_opt_ const CURRENCYFMTA *lpFormat,
725 _Out_writes_opt_(cchCurrency) LPSTR lpCurrencyStr,
726 _In_ int cchCurrency);
727
728 int
729 WINAPI
730 GetCurrencyFormatW(
731 _In_ LCID Locale,
732 _In_ DWORD dwFlags,
733 _In_ LPCWSTR lpValue,
734 _In_opt_ const CURRENCYFMTW *lpFormat,
735 _Out_writes_opt_(cchCurrency) LPWSTR lpCurrencyStr,
736 _In_ int cchCurrency);
737
738 int WINAPI GetDateFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int);
739 int WINAPI GetDateFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int);
740
741 int
742 WINAPI
743 GetGeoInfoA(
744 _In_ GEOID Location,
745 _In_ GEOTYPE GeoType,
746 _Out_writes_opt_(cchData) LPSTR lpGeoData,
747 _In_ int cchData,
748 _In_ LANGID LangId);
749
750 int
751 WINAPI
752 GetGeoInfoW(
753 _In_ GEOID Location,
754 _In_ GEOTYPE GeoType,
755 _Out_writes_opt_(cchData) LPWSTR lpGeoData,
756 _In_ int cchData,
757 _In_ LANGID LangId);
758
759 int
760 WINAPI
761 GetLocaleInfoA(
762 _In_ LCID Locale,
763 _In_ LCTYPE LCType,
764 _Out_writes_opt_(cchData) LPSTR lpLCData,
765 _In_ int cchData);
766
767 int
768 WINAPI
769 GetLocaleInfoW(
770 _In_ LCID Locale,
771 _In_ LCTYPE LCType,
772 _Out_writes_opt_(cchData) LPWSTR lpLCData,
773 _In_ int cchData);
774
775 BOOL WINAPI GetNLSVersion(_In_ NLS_FUNCTION, _In_ LCID, _Inout_ LPNLSVERSIONINFO);
776
777 int
778 WINAPI
779 GetNumberFormatA(
780 _In_ LCID Locale,
781 _In_ DWORD dwFlags,
782 _In_ LPCSTR lpValue,
783 _In_opt_ const NUMBERFMTA *lpFormat,
784 _Out_writes_opt_(cchNumber) LPSTR lpNumberStr,
785 _In_ int cchNumber);
786
787 int
788 WINAPI
789 GetNumberFormatW(
790 _In_ LCID Locale,
791 _In_ DWORD dwFlags,
792 _In_ LPCWSTR lpValue,
793 _In_opt_ const NUMBERFMTW *lpFormat,
794 _Out_writes_opt_(cchNumber) LPWSTR lpNumberStr,
795 _In_ int cchNumber);
796
797 UINT WINAPI GetOEMCP(void);
798
799 BOOL
800 WINAPI
801 GetStringTypeA(
802 _In_ LCID Locale,
803 _In_ DWORD dwInfoType,
804 _In_reads_(cchSrc) LPCSTR lpSrcStr,
805 _In_ int cchSrc,
806 _Out_ LPWORD lpCharType);
807
808 BOOL
809 WINAPI
810 GetStringTypeW(
811 _In_ DWORD dwInfoType,
812 _In_reads_(cchSrc) LPCWSTR lpSrcStr,
813 _In_ int cchSrc,
814 _Out_ LPWORD lpCharType);
815
816 BOOL
817 WINAPI
818 GetStringTypeExA(
819 _In_ LCID Locale,
820 _In_ DWORD dwInfoType,
821 _In_reads_(cchSrc) LPCSTR lpSrcStr,
822 _In_ int cchSrc,
823 _Out_writes_(cchSrc) LPWORD lpCharType);
824
825 BOOL
826 WINAPI
827 GetStringTypeExW(
828 _In_ LCID Locale,
829 _In_ DWORD dwInfoType,
830 _In_reads_(cchSrc) LPCWSTR lpSrcStr,
831 _In_ int cchSrc,
832 _Out_writes_(cchSrc) LPWORD lpCharType);
833
834 LANGID WINAPI GetSystemDefaultLangID(void);
835 LCID WINAPI GetSystemDefaultLCID(void);
836 LCID WINAPI GetThreadLocale(void);
837 int WINAPI GetTimeFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int);
838 int WINAPI GetTimeFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int);
839 LANGID WINAPI GetUserDefaultLangID(void);
840 LCID WINAPI GetUserDefaultLCID(void);
841 GEOID WINAPI GetUserGeoID(_In_ GEOCLASS);
842 BOOL WINAPI IsDBCSLeadByte(_In_ BYTE);
843 BOOL WINAPI IsDBCSLeadByteEx(_In_ UINT, _In_ BYTE);
844
845 BOOL
846 WINAPI
847 IsNLSDefinedString(
848 _In_ NLS_FUNCTION Function,
849 _In_ DWORD dwFlags,
850 _In_ LPNLSVERSIONINFO lpVersionInformation,
851 _In_reads_(cchStr) LPCWSTR lpString,
852 _In_ int cchStr);
853
854 BOOL WINAPI IsValidCodePage(_In_ UINT);
855 BOOL WINAPI IsValidLocale(_In_ LCID, _In_ DWORD);
856
857 int
858 WINAPI
859 LCMapStringA(
860 _In_ LCID Locale,
861 _In_ DWORD dwMapFlags,
862 _In_reads_(cchSrc) LPCSTR lpSrcStr,
863 _In_ int cchSrc,
864 _Out_writes_opt_(_Inexpressible_(cchDest)) LPSTR lpDestStr,
865 _In_ int cchDest);
866
867 int
868 WINAPI
869 LCMapStringW(
870 _In_ LCID Locale,
871 _In_ DWORD dwMapFlags,
872 _In_reads_(cchSrc) LPCWSTR lpSrcStr,
873 _In_ int cchSrc,
874 _Out_writes_opt_(_Inexpressible_(cchDest)) LPWSTR lpDestStr,
875 _In_ int cchDest);
876
877 int WINAPI MultiByteToWideChar(UINT,DWORD,LPCSTR,int,LPWSTR,int);
878 int WINAPI SetCalendarInfoA(_In_ LCID, _In_ CALID, _In_ CALTYPE, _In_ LPCSTR);
879 int WINAPI SetCalendarInfoW(_In_ LCID, _In_ CALID, _In_ CALTYPE, _In_ LPCWSTR);
880 BOOL WINAPI SetLocaleInfoA(_In_ LCID, _In_ LCTYPE, _In_ LPCSTR);
881 BOOL WINAPI SetLocaleInfoW(_In_ LCID, _In_ LCTYPE, _In_ LPCWSTR);
882 BOOL WINAPI SetThreadLocale(_In_ LCID);
883 LANGID WINAPI SetThreadUILanguage(_In_ LANGID);
884 BOOL WINAPI SetUserDefaultLCID(LCID);
885 BOOL WINAPI SetUserDefaultUILanguage(LANGID);
886 BOOL WINAPI SetUserGeoID(_In_ GEOID);
887 int WINAPI WideCharToMultiByte(UINT,DWORD,LPCWSTR,int,LPSTR,int,LPCSTR,LPBOOL);
888 #if (WINVER >= 0x0500)
889 BOOL WINAPI EnumCalendarInfoExA(_In_ CALINFO_ENUMPROCEXA, _In_ LCID, _In_ CALID, _In_ CALTYPE);
890 BOOL WINAPI EnumCalendarInfoExW(_In_ CALINFO_ENUMPROCEXW, _In_ LCID, _In_ CALID, _In_ CALTYPE);
891 BOOL WINAPI EnumDateFormatsExA(_In_ DATEFMT_ENUMPROCEXA, _In_ LCID, _In_ DWORD);
892 BOOL WINAPI EnumDateFormatsExW(_In_ DATEFMT_ENUMPROCEXW, _In_ LCID, _In_ DWORD);
893 BOOL WINAPI EnumSystemLanguageGroupsA(_In_ LANGUAGEGROUP_ENUMPROCA, _In_ DWORD, _In_ LONG_PTR);
894 BOOL WINAPI EnumSystemLanguageGroupsW(_In_ LANGUAGEGROUP_ENUMPROCW, _In_ DWORD, _In_ LONG_PTR);
895 BOOL WINAPI EnumLanguageGroupLocalesA(_In_ LANGGROUPLOCALE_ENUMPROCA, _In_ LGRPID, _In_ DWORD, _In_ LONG_PTR);
896 BOOL WINAPI EnumLanguageGroupLocalesW(_In_ LANGGROUPLOCALE_ENUMPROCW, _In_ LGRPID, _In_ DWORD, _In_ LONG_PTR);
897 BOOL WINAPI EnumUILanguagesA(_In_ UILANGUAGE_ENUMPROCA, _In_ DWORD, _In_ LONG_PTR);
898 BOOL WINAPI EnumUILanguagesW(_In_ UILANGUAGE_ENUMPROCW, _In_ DWORD, _In_ LONG_PTR);
899 LANGID WINAPI GetSystemDefaultUILanguage(void);
900 LANGID WINAPI GetUserDefaultUILanguage(void);
901 BOOL WINAPI IsValidLanguageGroup(_In_ LGRPID, _In_ DWORD);
902 #endif /* (WINVER >= 0x0500) */
903
904 #if (WINVER >= 0x0600)
905
906 _Success_(return != FALSE)
907 BOOL
908 WINAPI
909 GetFileMUIInfo(
910 _In_ DWORD dwFlags,
911 _In_ PCWSTR pcwszFilePath,
912 _Inout_updates_bytes_to_opt_(*pcbFileMUIInfo, *pcbFileMUIInfo) PFILEMUIINFO pFileMUIInfo,
913 _Inout_ DWORD *pcbFileMUIInfo);
914
915 BOOL
916 WINAPI
917 GetFileMUIPath(
918 _In_ DWORD dwFlags,
919 _In_ PCWSTR pcwszFilePath,
920 _Inout_updates_opt_(*pcchLanguage) PWSTR pwszLanguage,
921 _Inout_ PULONG pcchLanguage,
922 _Out_writes_opt_(*pcchFileMUIPath) PWSTR pwszFileMUIPath,
923 _Inout_ PULONG pcchFileMUIPath,
924 _Inout_ PULONGLONG pululEnumerator);
925
926 WINBASEAPI
927 int
928 WINAPI
929 GetLocaleInfoEx(
930 _In_opt_ LPCWSTR lpLocaleName,
931 _In_ LCTYPE LCType,
932 _Out_writes_opt_(cchData) LPWSTR lpLCData,
933 _In_ int cchData);
934
935 BOOL
936 WINAPI
937 GetProcessPreferredUILanguages(
938 _In_ DWORD dwFlags,
939 _Out_ PULONG pulNumLanguages,
940 _Out_writes_opt_(*pcchLanguagesBuffer) PZZWSTR pwszLanguagesBuffer,
941 _Inout_ PULONG pcchLanguagesBuffer);
942
943 BOOL
944 WINAPI
945 GetSystemPreferredUILanguages(
946 _In_ DWORD dwFlags,
947 _Out_ PULONG pulNumLanguages,
948 _Out_writes_opt_(*pcchLanguagesBuffer) PZZWSTR pwszLanguagesBuffer,
949 _Inout_ PULONG pcchLanguagesBuffer);
950
951 BOOL
952 WINAPI
953 GetThreadPreferredUILanguages(
954 _In_ DWORD dwFlags,
955 _Out_ PULONG pulNumLanguages,
956 _Out_writes_opt_(*pcchLanguagesBuffer) PZZWSTR pwszLanguagesBuffer,
957 _Inout_ PULONG pcchLanguagesBuffer);
958
959 LANGID WINAPI GetThreadUILanguage(void);
960
961 BOOL
962 WINAPI
963 GetUILanguageInfo(
964 _In_ DWORD dwFlags,
965 _In_ PCZZWSTR pwmszLanguage,
966 _Out_writes_opt_(*pcchFallbackLanguages) PZZWSTR pwszFallbackLanguages,
967 _Inout_opt_ PDWORD pcchFallbackLanguages,
968 _Out_ PDWORD pAttributes);
969
970 BOOL
971 WINAPI
972 GetUserPreferredUILanguages(
973 _In_ DWORD dwFlags,
974 _Out_ PULONG pulNumLanguages,
975 _Out_writes_opt_(*pcchLanguagesBuffer) PZZWSTR pwszLanguagesBuffer,
976 _Inout_ PULONG pcchLanguagesBuffer);
977
978 int
979 WINAPI
980 IdnToAscii(
981 _In_ DWORD dwFlags,
982 _In_reads_(cchUnicodeChar) LPCWSTR lpUnicodeCharStr,
983 _In_ int cchUnicodeChar,
984 _Out_writes_opt_(cchASCIIChar) LPWSTR lpASCIICharStr,
985 _In_ int cchASCIIChar);
986
987 int
988 WINAPI
989 IdnToNameprepUnicode(
990 _In_ DWORD dwFlags,
991 _In_reads_(cchUnicodeChar) LPCWSTR lpUnicodeCharStr,
992 _In_ int cchUnicodeChar,
993 _Out_writes_opt_(cchNameprepChar) LPWSTR lpNameprepCharStr,
994 _In_ int cchNameprepChar);
995
996 int
997 WINAPI
998 IdnToUnicode(
999 _In_ DWORD dwFlags,
1000 _In_reads_(cchASCIIChar) LPCWSTR lpASCIICharStr,
1001 _In_ int cchASCIIChar,
1002 _Out_writes_opt_(cchUnicodeChar) LPWSTR lpUnicodeCharStr,
1003 _In_ int cchUnicodeChar);
1004
1005 BOOL
1006 WINAPI
1007 IsNormalizedString(
1008 _In_ NORM_FORM NormForm,
1009 _In_reads_(cwLength) LPCWSTR lpString,
1010 _In_ int cwLength);
1011
1012 int
1013 WINAPI
1014 NormalizeString(
1015 _In_ NORM_FORM NormForm,
1016 _In_reads_(cwSrcLength) LPCWSTR lpSrcString,
1017 _In_ int cwSrcLength,
1018 _Out_writes_opt_(cwDstLength) LPWSTR lpDstString,
1019 _In_ int cwDstLength);
1020
1021 int
1022 WINAPI
1023 GetStringScripts(
1024 _In_ DWORD dwFlags,
1025 _In_ LPCWSTR lpString,
1026 _In_ int cchString,
1027 _Out_writes_opt_(cchScripts) LPWSTR lpScripts,
1028 _In_ int cchScripts);
1029
1030 BOOL WINAPI SetProcessPreferredUILanguages(_In_ DWORD, _In_opt_ PCZZWSTR, _Out_opt_ PULONG);
1031 BOOL WINAPI SetThreadPreferredUILanguages(_In_ DWORD, _In_opt_ PCZZWSTR, _Out_opt_ PULONG);
1032 BOOL WINAPI VerifyScripts(_In_ DWORD, _In_ LPCWSTR, _In_ int, _In_ LPCWSTR, _In_ int);
1033
1034 #endif /* (WINVER >= 0x0600) */
1035
1036 #ifdef UNICODE
1037 #define CALINFO_ENUMPROC CALINFO_ENUMPROCW
1038 #define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXW
1039 #define LOCALE_ENUMPROC LOCALE_ENUMPROCW
1040 #define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCW
1041 #define DATEFMT_ENUMPROC DATEFMT_ENUMPROCW
1042 #define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXW
1043 #define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCW
1044 #define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCW
1045 #define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCW
1046 #define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCW
1047 typedef CPINFOEXW CPINFOEX;
1048 typedef LPCPINFOEXW LPCPINFOEX;
1049 typedef CURRENCYFMTW CURRENCYFMT;
1050 typedef LPCURRENCYFMTW LPCURRENCYFMT;
1051 typedef NUMBERFMTW NUMBERFMT;
1052 typedef LPNUMBERFMTW LPNUMBERFMT;
1053 #define CompareString CompareStringW
1054 #define EnumCalendarInfo EnumCalendarInfoW
1055 #define EnumDateFormats EnumDateFormatsW
1056 #define EnumSystemCodePages EnumSystemCodePagesW
1057 #define EnumSystemLocales EnumSystemLocalesW
1058 #define EnumTimeFormats EnumTimeFormatsW
1059 #define FoldString FoldStringW
1060 #define GetCalendarInfo GetCalendarInfoW
1061 #define GetCPInfoEx GetCPInfoExW
1062 #define GetCurrencyFormat GetCurrencyFormatW
1063 #define GetDateFormat GetDateFormatW
1064 #define GetGeoInfo GetGeoInfoW
1065 #define GetLocaleInfo GetLocaleInfoW
1066 #define GetNumberFormat GetNumberFormatW
1067 #define GetStringTypeEx GetStringTypeExW
1068 #define GetTimeFormat GetTimeFormatW
1069 #define LCMapString LCMapStringW
1070 #define SetCalendarInfo SetCalendarInfoW
1071 #define SetLocaleInfo SetLocaleInfoW
1072 #if (WINVER >= 0x0500)
1073 #define EnumCalendarInfoEx EnumCalendarInfoExW
1074 #define EnumDateFormatsEx EnumDateFormatsExW
1075 #define EnumSystemLanguageGroups EnumSystemLanguageGroupsW
1076 #define EnumLanguageGroupLocales EnumLanguageGroupLocalesW
1077 #define EnumUILanguages EnumUILanguagesW
1078 #endif /* (WINVER >= 0x0500) */
1079 #else
1080 #define CALINFO_ENUMPROC CALINFO_ENUMPROCA
1081 #define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXA
1082 #define LOCALE_ENUMPROC LOCALE_ENUMPROCA
1083 #define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCA
1084 #define DATEFMT_ENUMPROC DATEFMT_ENUMPROCA
1085 #define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXA
1086 #define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCA
1087 #define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCA
1088 #define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCA
1089 #define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCA
1090 typedef CPINFOEXA CPINFOEX;
1091 typedef LPCPINFOEXA LPCPINFOEX;
1092 typedef CURRENCYFMTA CURRENCYFMT;
1093 typedef LPCURRENCYFMTA LPCURRENCYFMT;
1094 typedef NUMBERFMTA NUMBERFMT;
1095 typedef LPNUMBERFMTA LPNUMBERFMT;
1096 #define CompareString CompareStringA
1097 #define EnumCalendarInfo EnumCalendarInfoA
1098 #define EnumDateFormats EnumDateFormatsA
1099 #define EnumSystemCodePages EnumSystemCodePagesA
1100 #define EnumSystemLocales EnumSystemLocalesA
1101 #define EnumTimeFormats EnumTimeFormatsA
1102 #define FoldString FoldStringA
1103 #define GetCalendarInfo GetCalendarInfoA
1104 #define GetCPInfoEx GetCPInfoExA
1105 #define GetCurrencyFormat GetCurrencyFormatA
1106 #define GetDateFormat GetDateFormatA
1107 #define GetGeoInfo GetGeoInfoA
1108 #define GetLocaleInfo GetLocaleInfoA
1109 #define GetNumberFormat GetNumberFormatA
1110 #define GetStringTypeEx GetStringTypeExA
1111 #define GetTimeFormat GetTimeFormatA
1112 #define LCMapString LCMapStringA
1113 #define SetCalendarInfo SetCalendarInfoA
1114 #define SetLocaleInfo SetLocaleInfoA
1115 #if (WINVER >= 0x0500)
1116 #define EnumCalendarInfoEx EnumCalendarInfoExA
1117 #define EnumDateFormatsEx EnumDateFormatsExA
1118 #define EnumSystemLanguageGroups EnumSystemLanguageGroupsA
1119 #define EnumLanguageGroupLocales EnumLanguageGroupLocalesA
1120 #define EnumUILanguages EnumUILanguagesA
1121 #endif /* (WINVER >= 0x0500) */
1122 #endif /* UNICODE */
1123 #endif /* RC_INVOKED */
1124
1125 #ifdef _MSC_VER
1126 #pragma warning(pop)
1127 #endif
1128
1129 #ifdef __cplusplus
1130 }
1131 #endif
1132 #endif