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