source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/winnls.h@ 1175

Last change on this file since 1175 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 42.9 KB
Line 
1/**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5
6#ifndef _WINNLS_
7#define _WINNLS_
8
9#include <winapifamily.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#ifndef NOAPISET
16#include <datetimeapi.h>
17#include <libloaderapi.h>
18#endif
19
20#ifndef NONLS
21
22#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
23
24#ifndef _NORMALIZE_
25#define WINNORMALIZEAPI DECLSPEC_IMPORT
26#else
27#define WINNORMALIZEAPI
28#endif
29
30#define MAX_LEADBYTES 12
31#define MAX_DEFAULTCHAR 2
32
33#define HIGH_SURROGATE_START 0xd800
34#define HIGH_SURROGATE_END 0xdbff
35#define LOW_SURROGATE_START 0xdc00
36#define LOW_SURROGATE_END 0xdfff
37
38#define MB_PRECOMPOSED 0x00000001
39#define MB_COMPOSITE 0x00000002
40#define MB_USEGLYPHCHARS 0x00000004
41#define MB_ERR_INVALID_CHARS 0x00000008
42#define WC_DISCARDNS 0x00000010
43#define WC_SEPCHARS 0x00000020
44#define WC_DEFAULTCHAR 0x00000040
45#if WINVER >= 0x0600
46#define WC_ERR_INVALID_CHARS 0x00000080
47#endif
48#define WC_COMPOSITECHECK 0x00000200
49#define WC_NO_BEST_FIT_CHARS 0x00000400
50
51#define CT_CTYPE1 0x00000001
52#define CT_CTYPE2 0x00000002
53#define CT_CTYPE3 0x00000004
54
55#define C1_UPPER 0x0001
56#define C1_LOWER 0x0002
57#define C1_DIGIT 0x0004
58#define C1_SPACE 0x0008
59#define C1_PUNCT 0x0010
60#define C1_CNTRL 0x0020
61#define C1_BLANK 0x0040
62#define C1_XDIGIT 0x0080
63#define C1_ALPHA 0x0100
64#define C1_DEFINED 0x0200
65
66#define C2_LEFTTORIGHT 0x0001
67#define C2_RIGHTTOLEFT 0x0002
68#define C2_EUROPENUMBER 0x0003
69#define C2_EUROPESEPARATOR 0x0004
70#define C2_EUROPETERMINATOR 0x0005
71#define C2_ARABICNUMBER 0x0006
72#define C2_COMMONSEPARATOR 0x0007
73#define C2_BLOCKSEPARATOR 0x0008
74#define C2_SEGMENTSEPARATOR 0x0009
75#define C2_WHITESPACE 0x000a
76#define C2_OTHERNEUTRAL 0x000b
77
78#define C2_NOTAPPLICABLE 0x0000
79
80#define C3_NONSPACING 0x0001
81#define C3_DIACRITIC 0x0002
82#define C3_VOWELMARK 0x0004
83#define C3_SYMBOL 0x0008
84#define C3_KATAKANA 0x0010
85#define C3_HIRAGANA 0x0020
86#define C3_HALFWIDTH 0x0040
87#define C3_FULLWIDTH 0x0080
88#define C3_IDEOGRAPH 0x0100
89#define C3_KASHIDA 0x0200
90#define C3_LEXICAL 0x0400
91#define C3_HIGHSURROGATE 0x0800
92#define C3_LOWSURROGATE 0x1000
93#define C3_ALPHA 0x8000
94
95#define C3_NOTAPPLICABLE 0x0000
96
97#define NORM_IGNORECASE 0x00000001
98#define NORM_IGNORENONSPACE 0x00000002
99#define NORM_IGNORESYMBOLS 0x00000004
100
101#define LINGUISTIC_IGNORECASE 0x00000010
102#define LINGUISTIC_IGNOREDIACRITIC 0x00000020
103
104#define NORM_IGNOREKANATYPE 0x00010000
105#define NORM_IGNOREWIDTH 0x00020000
106#define NORM_LINGUISTIC_CASING 0x08000000
107
108#define MAP_FOLDCZONE 0x00000010
109#define MAP_PRECOMPOSED 0x00000020
110#define MAP_COMPOSITE 0x00000040
111#define MAP_FOLDDIGITS 0x00000080
112
113#define MAP_EXPAND_LIGATURES 0x00002000
114
115#define LCMAP_LOWERCASE 0x00000100
116#define LCMAP_UPPERCASE 0x00000200
117#if WINVER >= 0x0601
118#define LCMAP_TITLECASE 0x00000300
119#endif
120
121#define LCMAP_SORTKEY 0x00000400
122#define LCMAP_BYTEREV 0x00000800
123
124#define LCMAP_HIRAGANA 0x00100000
125#define LCMAP_KATAKANA 0x00200000
126#define LCMAP_HALFWIDTH 0x00400000
127#define LCMAP_FULLWIDTH 0x00800000
128
129#define LCMAP_LINGUISTIC_CASING 0x01000000
130
131#define LCMAP_SIMPLIFIED_CHINESE 0x02000000
132#define LCMAP_TRADITIONAL_CHINESE 0x04000000
133
134#if WINVER >= 0x0602
135#define LCMAP_SORTHANDLE 0x20000000
136#define LCMAP_HASH 0x00040000
137#endif
138
139#define FIND_STARTSWITH 0x00100000
140#define FIND_ENDSWITH 0x00200000
141#define FIND_FROMSTART 0x00400000
142#define FIND_FROMEND 0x00800000
143
144#define LGRPID_INSTALLED 0x00000001
145#define LGRPID_SUPPORTED 0x00000002
146
147#define LCID_INSTALLED 0x00000001
148#define LCID_SUPPORTED 0x00000002
149#define LCID_ALTERNATE_SORTS 0x00000004
150
151#if WINVER >= 0x0600
152
153#define LOCALE_ALL 0
154#define LOCALE_WINDOWS 0x00000001
155#define LOCALE_SUPPLEMENTAL 0x00000002
156#define LOCALE_ALTERNATE_SORTS 0x00000004
157#define LOCALE_REPLACEMENT 0x00000008
158#endif
159#if WINVER >= 0x0601
160#define LOCALE_NEUTRALDATA 0x00000010
161#define LOCALE_SPECIFICDATA 0x00000020
162#endif
163
164#define CP_INSTALLED 0x00000001
165#define CP_SUPPORTED 0x00000002
166
167#define SORT_STRINGSORT 0x00001000
168
169#if WINVER >= 0x0601
170#define SORT_DIGITSASNUMBERS 0x00000008
171#endif
172
173#define CSTR_LESS_THAN 1
174#define CSTR_EQUAL 2
175#define CSTR_GREATER_THAN 3
176
177#define CP_ACP 0
178#define CP_OEMCP 1
179#define CP_MACCP 2
180#define CP_THREAD_ACP 3
181#define CP_SYMBOL 42
182
183#define CP_UTF7 65000
184#define CP_UTF8 65001
185
186#define CTRY_DEFAULT 0
187
188#define CTRY_ALBANIA 355
189#define CTRY_ALGERIA 213
190#define CTRY_ARGENTINA 54
191#define CTRY_ARMENIA 374
192#define CTRY_AUSTRALIA 61
193#define CTRY_AUSTRIA 43
194#define CTRY_AZERBAIJAN 994
195#define CTRY_BAHRAIN 973
196#define CTRY_BELARUS 375
197#define CTRY_BELGIUM 32
198#define CTRY_BELIZE 501
199#define CTRY_BOLIVIA 591
200#define CTRY_BRAZIL 55
201#define CTRY_BRUNEI_DARUSSALAM 673
202#define CTRY_BULGARIA 359
203#define CTRY_CANADA 2
204#define CTRY_CARIBBEAN 1
205#define CTRY_CHILE 56
206#define CTRY_COLOMBIA 57
207#define CTRY_COSTA_RICA 506
208#define CTRY_CROATIA 385
209#define CTRY_CZECH 420
210#define CTRY_DENMARK 45
211#define CTRY_DOMINICAN_REPUBLIC 1
212#define CTRY_ECUADOR 593
213#define CTRY_EGYPT 20
214#define CTRY_EL_SALVADOR 503
215#define CTRY_ESTONIA 372
216#define CTRY_FAEROE_ISLANDS 298
217#define CTRY_FINLAND 358
218#define CTRY_FRANCE 33
219#define CTRY_GEORGIA 995
220#define CTRY_GERMANY 49
221#define CTRY_GREECE 30
222#define CTRY_GUATEMALA 502
223#define CTRY_HONDURAS 504
224#define CTRY_HONG_KONG 852
225#define CTRY_HUNGARY 36
226#define CTRY_ICELAND 354
227#define CTRY_INDIA 91
228#define CTRY_INDONESIA 62
229#define CTRY_IRAN 981
230#define CTRY_IRAQ 964
231#define CTRY_IRELAND 353
232#define CTRY_ISRAEL 972
233#define CTRY_ITALY 39
234#define CTRY_JAMAICA 1
235#define CTRY_JAPAN 81
236#define CTRY_JORDAN 962
237#define CTRY_KAZAKSTAN 7
238#define CTRY_KENYA 254
239#define CTRY_KUWAIT 965
240#define CTRY_KYRGYZSTAN 996
241#define CTRY_LATVIA 371
242#define CTRY_LEBANON 961
243#define CTRY_LIBYA 218
244#define CTRY_LIECHTENSTEIN 41
245#define CTRY_LITHUANIA 370
246#define CTRY_LUXEMBOURG 352
247#define CTRY_MACAU 853
248#define CTRY_MACEDONIA 389
249#define CTRY_MALAYSIA 60
250#define CTRY_MALDIVES 960
251#define CTRY_MEXICO 52
252#define CTRY_MONACO 33
253#define CTRY_MONGOLIA 976
254#define CTRY_MOROCCO 212
255#define CTRY_NETHERLANDS 31
256#define CTRY_NEW_ZEALAND 64
257#define CTRY_NICARAGUA 505
258#define CTRY_NORWAY 47
259#define CTRY_OMAN 968
260#define CTRY_PAKISTAN 92
261#define CTRY_PANAMA 507
262#define CTRY_PARAGUAY 595
263#define CTRY_PERU 51
264#define CTRY_PHILIPPINES 63
265#define CTRY_POLAND 48
266#define CTRY_PORTUGAL 351
267#define CTRY_PRCHINA 86
268#define CTRY_PUERTO_RICO 1
269#define CTRY_QATAR 974
270#define CTRY_ROMANIA 40
271#define CTRY_RUSSIA 7
272#define CTRY_SAUDI_ARABIA 966
273#define CTRY_SERBIA 381
274#define CTRY_SINGAPORE 65
275#define CTRY_SLOVAK 421
276#define CTRY_SLOVENIA 386
277#define CTRY_SOUTH_AFRICA 27
278#define CTRY_SOUTH_KOREA 82
279#define CTRY_SPAIN 34
280#define CTRY_SWEDEN 46
281#define CTRY_SWITZERLAND 41
282#define CTRY_SYRIA 963
283#define CTRY_TAIWAN 886
284#define CTRY_TATARSTAN 7
285#define CTRY_THAILAND 66
286#define CTRY_TRINIDAD_Y_TOBAGO 1
287#define CTRY_TUNISIA 216
288#define CTRY_TURKEY 90
289#define CTRY_UAE 971
290#define CTRY_UKRAINE 380
291#define CTRY_UNITED_KINGDOM 44
292#define CTRY_UNITED_STATES 1
293#define CTRY_URUGUAY 598
294#define CTRY_UZBEKISTAN 7
295#define CTRY_VENEZUELA 58
296#define CTRY_VIET_NAM 84
297#define CTRY_YEMEN 967
298#define CTRY_ZIMBABWE 263
299
300#define LOCALE_SLOCALIZEDDISPLAYNAME 0x00000002
301#if WINVER >= 0x0601
302#define LOCALE_ALLOW_NEUTRAL_NAMES 0x08000000
303#define LOCALE_RETURN_GENITIVE_NAMES 0x10000000
304#endif
305#define LOCALE_RETURN_NUMBER 0x20000000
306#define LOCALE_USE_CP_ACP 0x40000000
307#define LOCALE_NOUSEROVERRIDE 0x80000000
308
309#if WINVER >= 0x0601
310#define LOCALE_SENGLISHDISPLAYNAME 0x00000072
311#define LOCALE_SNATIVEDISPLAYNAME 0x00000073
312#endif
313
314#if WINVER >= 0x0600
315#define LOCALE_SLOCALIZEDLANGUAGENAME 0x0000006f
316#endif
317
318#define LOCALE_SENGLISHLANGUAGENAME 0x00001001
319#define LOCALE_SNATIVELANGUAGENAME 0x00000004
320
321#define LOCALE_SLOCALIZEDCOUNTRYNAME 0x00000006
322#define LOCALE_SENGLISHCOUNTRYNAME 0x00001002
323#define LOCALE_SNATIVECOUNTRYNAME 0x00000008
324
325#define LOCALE_SLANGUAGE 0x00000002
326#if WINVER >= 0x0600
327#define LOCALE_SLANGDISPLAYNAME 0x0000006f
328#endif
329#define LOCALE_SENGLANGUAGE 0x00001001
330#define LOCALE_SNATIVELANGNAME 0x00000004
331#define LOCALE_SCOUNTRY 0x00000006
332#define LOCALE_SENGCOUNTRY 0x00001002
333#define LOCALE_SNATIVECTRYNAME 0x00000008
334
335#define LOCALE_ILANGUAGE 0x00000001
336
337#define LOCALE_SABBREVLANGNAME 0x00000003
338
339#define LOCALE_ICOUNTRY 0x00000005
340#define LOCALE_SABBREVCTRYNAME 0x00000007
341#define LOCALE_IGEOID 0x0000005b
342
343#define LOCALE_IDEFAULTLANGUAGE 0x00000009
344#define LOCALE_IDEFAULTCOUNTRY 0x0000000a
345#define LOCALE_IDEFAULTCODEPAGE 0x0000000b
346#define LOCALE_IDEFAULTANSICODEPAGE 0x00001004
347#define LOCALE_IDEFAULTMACCODEPAGE 0x00001011
348
349#define LOCALE_IDIALINGCODE 0x00000005
350
351#define LOCALE_SLIST 0x0000000c
352#define LOCALE_IMEASURE 0x0000000d
353
354#define LOCALE_SDECIMAL 0x0000000e
355#define LOCALE_STHOUSAND 0x0000000f
356#define LOCALE_SGROUPING 0x00000010
357#define LOCALE_IDIGITS 0x00000011
358#define LOCALE_ILZERO 0x00000012
359#define LOCALE_INEGNUMBER 0x00001010
360#define LOCALE_SNATIVEDIGITS 0x00000013
361
362#define LOCALE_SCURRENCY 0x00000014
363#define LOCALE_SINTLSYMBOL 0x00000015
364#define LOCALE_SMONDECIMALSEP 0x00000016
365#define LOCALE_SMONTHOUSANDSEP 0x00000017
366#define LOCALE_SMONGROUPING 0x00000018
367#define LOCALE_ICURRDIGITS 0x00000019
368#define LOCALE_IINTLCURRDIGITS 0x0000001a
369#define LOCALE_ICURRENCY 0x0000001b
370#define LOCALE_INEGCURR 0x0000001c
371
372#define LOCALE_SDATE 0x0000001d
373#define LOCALE_STIME 0x0000001e
374#define LOCALE_SSHORTDATE 0x0000001f
375#define LOCALE_SLONGDATE 0x00000020
376#define LOCALE_STIMEFORMAT 0x00001003
377#define LOCALE_SAM 0x00000028
378#define LOCALE_SPM 0x00000029
379#define LOCALE_IDATE 0x00000021
380#define LOCALE_ILDATE 0x00000022
381#define LOCALE_ITIME 0x00000023
382#define LOCALE_ITIMEMARKPOSN 0x00001005
383#define LOCALE_ICENTURY 0x00000024
384#define LOCALE_ITLZERO 0x00000025
385#define LOCALE_IDAYLZERO 0x00000026
386#define LOCALE_IMONLZERO 0x00000027
387#define LOCALE_S1159 0x00000028
388#define LOCALE_S2359 0x00000029
389
390#define LOCALE_ICALENDARTYPE 0x00001009
391#define LOCALE_IOPTIONALCALENDAR 0x0000100b
392#define LOCALE_IFIRSTDAYOFWEEK 0x0000100c
393#define LOCALE_IFIRSTWEEKOFYEAR 0x0000100d
394
395#define LOCALE_SDAYNAME1 0x0000002a
396#define LOCALE_SDAYNAME2 0x0000002b
397#define LOCALE_SDAYNAME3 0x0000002c
398#define LOCALE_SDAYNAME4 0x0000002d
399#define LOCALE_SDAYNAME5 0x0000002e
400#define LOCALE_SDAYNAME6 0x0000002f
401#define LOCALE_SDAYNAME7 0x00000030
402#define LOCALE_SABBREVDAYNAME1 0x00000031
403#define LOCALE_SABBREVDAYNAME2 0x00000032
404#define LOCALE_SABBREVDAYNAME3 0x00000033
405#define LOCALE_SABBREVDAYNAME4 0x00000034
406#define LOCALE_SABBREVDAYNAME5 0x00000035
407#define LOCALE_SABBREVDAYNAME6 0x00000036
408#define LOCALE_SABBREVDAYNAME7 0x00000037
409#define LOCALE_SMONTHNAME1 0x00000038
410#define LOCALE_SMONTHNAME2 0x00000039
411#define LOCALE_SMONTHNAME3 0x0000003a
412#define LOCALE_SMONTHNAME4 0x0000003b
413#define LOCALE_SMONTHNAME5 0x0000003c
414#define LOCALE_SMONTHNAME6 0x0000003d
415#define LOCALE_SMONTHNAME7 0x0000003e
416#define LOCALE_SMONTHNAME8 0x0000003f
417#define LOCALE_SMONTHNAME9 0x00000040
418#define LOCALE_SMONTHNAME10 0x00000041
419#define LOCALE_SMONTHNAME11 0x00000042
420#define LOCALE_SMONTHNAME12 0x00000043
421#define LOCALE_SMONTHNAME13 0x0000100e
422#define LOCALE_SABBREVMONTHNAME1 0x00000044
423#define LOCALE_SABBREVMONTHNAME2 0x00000045
424#define LOCALE_SABBREVMONTHNAME3 0x00000046
425#define LOCALE_SABBREVMONTHNAME4 0x00000047
426#define LOCALE_SABBREVMONTHNAME5 0x00000048
427#define LOCALE_SABBREVMONTHNAME6 0x00000049
428#define LOCALE_SABBREVMONTHNAME7 0x0000004a
429#define LOCALE_SABBREVMONTHNAME8 0x0000004b
430#define LOCALE_SABBREVMONTHNAME9 0x0000004c
431#define LOCALE_SABBREVMONTHNAME10 0x0000004d
432#define LOCALE_SABBREVMONTHNAME11 0x0000004e
433#define LOCALE_SABBREVMONTHNAME12 0x0000004f
434#define LOCALE_SABBREVMONTHNAME13 0x0000100f
435
436#define LOCALE_SPOSITIVESIGN 0x00000050
437#define LOCALE_SNEGATIVESIGN 0x00000051
438#define LOCALE_IPOSSIGNPOSN 0x00000052
439#define LOCALE_INEGSIGNPOSN 0x00000053
440#define LOCALE_IPOSSYMPRECEDES 0x00000054
441#define LOCALE_IPOSSEPBYSPACE 0x00000055
442#define LOCALE_INEGSYMPRECEDES 0x00000056
443#define LOCALE_INEGSEPBYSPACE 0x00000057
444
445#define LOCALE_FONTSIGNATURE 0x00000058
446#define LOCALE_SISO639LANGNAME 0x00000059
447#define LOCALE_SISO3166CTRYNAME 0x0000005a
448
449#define LOCALE_IDEFAULTEBCDICCODEPAGE 0x00001012
450#define LOCALE_IPAPERSIZE 0x0000100a
451#define LOCALE_SENGCURRNAME 0x00001007
452#define LOCALE_SNATIVECURRNAME 0x00001008
453#define LOCALE_SYEARMONTH 0x00001006
454#define LOCALE_SSORTNAME 0x00001013
455#define LOCALE_IDIGITSUBSTITUTION 0x00001014
456
457#if WINVER >= 0x0600
458#define LOCALE_SNAME 0x0000005c
459#define LOCALE_SDURATION 0x0000005d
460#define LOCALE_SKEYBOARDSTOINSTALL 0x0000005e
461#define LOCALE_SSHORTESTDAYNAME1 0x00000060
462#define LOCALE_SSHORTESTDAYNAME2 0x00000061
463#define LOCALE_SSHORTESTDAYNAME3 0x00000062
464#define LOCALE_SSHORTESTDAYNAME4 0x00000063
465#define LOCALE_SSHORTESTDAYNAME5 0x00000064
466#define LOCALE_SSHORTESTDAYNAME6 0x00000065
467#define LOCALE_SSHORTESTDAYNAME7 0x00000066
468#define LOCALE_SISO639LANGNAME2 0x00000067
469#define LOCALE_SISO3166CTRYNAME2 0x00000068
470#define LOCALE_SNAN 0x00000069
471#define LOCALE_SPOSINFINITY 0x0000006a
472#define LOCALE_SNEGINFINITY 0x0000006b
473#define LOCALE_SSCRIPTS 0x0000006c
474#define LOCALE_SPARENT 0x0000006d
475#define LOCALE_SCONSOLEFALLBACKNAME 0x0000006e
476#endif
477
478#if WINVER >= 0x0601
479#define LOCALE_IREADINGLAYOUT 0x00000070
480
481#define LOCALE_INEUTRAL 0x00000071
482#define LOCALE_INEGATIVEPERCENT 0x00000074
483#define LOCALE_IPOSITIVEPERCENT 0x00000075
484#define LOCALE_SPERCENT 0x00000076
485#define LOCALE_SPERMILLE 0x00000077
486#define LOCALE_SMONTHDAY 0x00000078
487#define LOCALE_SSHORTTIME 0x00000079
488#define LOCALE_SOPENTYPELANGUAGETAG 0x0000007a
489#define LOCALE_SSORTLOCALE 0x0000007b
490#endif
491
492#if WINVER >= _WIN32_WINNT_WIN8
493#define LOCALE_SRELATIVELONGDATE 0x0000007c
494#endif
495
496#if WINVER >= _WIN32_WINNT_WIN10
497#define LOCALE_SSHORTESTAM 0x0000007e
498#define LOCALE_SSHORTESTPM 0x0000007f
499#endif
500
501#define TIME_NOMINUTESORSECONDS 0x00000001
502#define TIME_NOSECONDS 0x00000002
503#define TIME_NOTIMEMARKER 0x00000004
504#define TIME_FORCE24HOURFORMAT 0x00000008
505
506#define DATE_SHORTDATE 0x00000001
507#define DATE_LONGDATE 0x00000002
508#define DATE_USE_ALT_CALENDAR 0x00000004
509
510#define DATE_YEARMONTH 0x00000008
511#define DATE_LTRREADING 0x00000010
512#define DATE_RTLREADING 0x00000020
513#if WINVER >= 0x0601
514#define DATE_AUTOLAYOUT 0x00000040
515#endif
516#if WINVER >= _WIN32_WINNT_WINTHRESHOLD
517#define DATE_MONTHDAY 0x00000080
518#endif
519
520#define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE
521#define CAL_USE_CP_ACP LOCALE_USE_CP_ACP
522#define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER
523#if WINVER >= 0x0601
524#define CAL_RETURN_GENITIVE_NAMES LOCALE_RETURN_GENITIVE_NAMES
525#endif
526
527#define CAL_ICALINTVALUE 0x00000001
528#define CAL_SCALNAME 0x00000002
529#define CAL_IYEAROFFSETRANGE 0x00000003
530#define CAL_SERASTRING 0x00000004
531#define CAL_SSHORTDATE 0x00000005
532#define CAL_SLONGDATE 0x00000006
533#define CAL_SDAYNAME1 0x00000007
534#define CAL_SDAYNAME2 0x00000008
535#define CAL_SDAYNAME3 0x00000009
536#define CAL_SDAYNAME4 0x0000000a
537#define CAL_SDAYNAME5 0x0000000b
538#define CAL_SDAYNAME6 0x0000000c
539#define CAL_SDAYNAME7 0x0000000d
540#define CAL_SABBREVDAYNAME1 0x0000000e
541#define CAL_SABBREVDAYNAME2 0x0000000f
542#define CAL_SABBREVDAYNAME3 0x00000010
543#define CAL_SABBREVDAYNAME4 0x00000011
544#define CAL_SABBREVDAYNAME5 0x00000012
545#define CAL_SABBREVDAYNAME6 0x00000013
546#define CAL_SABBREVDAYNAME7 0x00000014
547
548#define CAL_SMONTHNAME1 0x00000015
549#define CAL_SMONTHNAME2 0x00000016
550#define CAL_SMONTHNAME3 0x00000017
551#define CAL_SMONTHNAME4 0x00000018
552#define CAL_SMONTHNAME5 0x00000019
553#define CAL_SMONTHNAME6 0x0000001a
554#define CAL_SMONTHNAME7 0x0000001b
555#define CAL_SMONTHNAME8 0x0000001c
556#define CAL_SMONTHNAME9 0x0000001d
557#define CAL_SMONTHNAME10 0x0000001e
558#define CAL_SMONTHNAME11 0x0000001f
559#define CAL_SMONTHNAME12 0x00000020
560#define CAL_SMONTHNAME13 0x00000021
561#define CAL_SABBREVMONTHNAME1 0x00000022
562#define CAL_SABBREVMONTHNAME2 0x00000023
563#define CAL_SABBREVMONTHNAME3 0x00000024
564#define CAL_SABBREVMONTHNAME4 0x00000025
565#define CAL_SABBREVMONTHNAME5 0x00000026
566#define CAL_SABBREVMONTHNAME6 0x00000027
567#define CAL_SABBREVMONTHNAME7 0x00000028
568#define CAL_SABBREVMONTHNAME8 0x00000029
569#define CAL_SABBREVMONTHNAME9 0x0000002a
570#define CAL_SABBREVMONTHNAME10 0x0000002b
571#define CAL_SABBREVMONTHNAME11 0x0000002c
572#define CAL_SABBREVMONTHNAME12 0x0000002d
573#define CAL_SABBREVMONTHNAME13 0x0000002e
574#define CAL_SYEARMONTH 0x0000002f
575#define CAL_ITWODIGITYEARMAX 0x00000030
576#if WINVER >= 0x0600
577#define CAL_SSHORTESTDAYNAME1 0x00000031
578#define CAL_SSHORTESTDAYNAME2 0x00000032
579#define CAL_SSHORTESTDAYNAME3 0x00000033
580#define CAL_SSHORTESTDAYNAME4 0x00000034
581#define CAL_SSHORTESTDAYNAME5 0x00000035
582#define CAL_SSHORTESTDAYNAME6 0x00000036
583#define CAL_SSHORTESTDAYNAME7 0x00000037
584#endif
585#if WINVER >= 0x0601
586#define CAL_SMONTHDAY 0x00000038
587#define CAL_SABBREVERASTRING 0x00000039
588#endif
589#if WINVER >= _WIN32_WINNT_WIN8
590#define CAL_SRELATIVELONGDATE 0x0000003a
591#endif
592#if NTDDI_VERSION >= NTDDI_WIN10_RS2
593#define CAL_SENGLISHERANAME 0x0000003b
594#define CAL_SENGLISHABBREVERANAME 0x0000003c
595#endif
596#define CAL_SJAPANESEERAFIRSTYEAR 0x0000003d
597
598#define ENUM_ALL_CALENDARS 0xffffffff
599
600#define CAL_GREGORIAN 1
601#define CAL_GREGORIAN_US 2
602#define CAL_JAPAN 3
603#define CAL_TAIWAN 4
604#define CAL_KOREA 5
605#define CAL_HIJRI 6
606#define CAL_THAI 7
607#define CAL_HEBREW 8
608#define CAL_GREGORIAN_ME_FRENCH 9
609#define CAL_GREGORIAN_ARABIC 10
610#define CAL_GREGORIAN_XLIT_ENGLISH 11
611#define CAL_GREGORIAN_XLIT_FRENCH 12
612#define CAL_UMALQURA 23
613
614#define LGRPID_WESTERN_EUROPE 0x0001
615#define LGRPID_CENTRAL_EUROPE 0x0002
616#define LGRPID_BALTIC 0x0003
617#define LGRPID_GREEK 0x0004
618#define LGRPID_CYRILLIC 0x0005
619#define LGRPID_TURKIC 0x0006
620#define LGRPID_TURKISH 0x0006
621#define LGRPID_JAPANESE 0x0007
622#define LGRPID_KOREAN 0x0008
623#define LGRPID_TRADITIONAL_CHINESE 0x0009
624#define LGRPID_SIMPLIFIED_CHINESE 0x000a
625#define LGRPID_THAI 0x000b
626#define LGRPID_HEBREW 0x000c
627#define LGRPID_ARABIC 0x000d
628#define LGRPID_VIETNAMESE 0x000e
629#define LGRPID_INDIC 0x000f
630#define LGRPID_GEORGIAN 0x0010
631#define LGRPID_ARMENIAN 0x0011
632
633#if WINVER >= 0x0600
634
635#define MUI_LANGUAGE_ID 0x4
636#define MUI_LANGUAGE_NAME 0x8
637#define MUI_MERGE_SYSTEM_FALLBACK 0x10
638#define MUI_MERGE_USER_FALLBACK 0x20
639#define MUI_UI_FALLBACK MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK
640#define MUI_THREAD_LANGUAGES 0x40
641#define MUI_CONSOLE_FILTER 0x100
642#define MUI_COMPLEX_SCRIPT_FILTER 0x200
643#define MUI_RESET_FILTERS 0x001
644#define MUI_USER_PREFERRED_UI_LANGUAGES 0x10
645#define MUI_USE_INSTALLED_LANGUAGES 0x20
646#define MUI_USE_SEARCH_ALL_LANGUAGES 0x40
647#define MUI_LANG_NEUTRAL_PE_FILE 0x100
648#define MUI_NON_LANG_NEUTRAL_FILE 0x200
649#define MUI_MACHINE_LANGUAGE_SETTINGS 0x400
650#define MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL 0x001
651#define MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN 0x002
652#define MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI 0x004
653#define MUI_QUERY_TYPE 0x001
654#define MUI_QUERY_CHECKSUM 0x002
655#define MUI_QUERY_LANGUAGE_NAME 0x004
656#define MUI_QUERY_RESOURCE_TYPES 0x008
657#define MUI_FILEINFO_VERSION 0x001
658
659#define MUI_FULL_LANGUAGE 0x01
660#define MUI_PARTIAL_LANGUAGE 0x02
661#define MUI_LIP_LANGUAGE 0x04
662#define MUI_LANGUAGE_INSTALLED 0x20
663#define MUI_LANGUAGE_LICENSED 0x40
664
665#define MUI_CALLBACK_ALL_FLAGS MUI_CALLBACK_FLAG_UPGRADED_INSTALLATION
666#endif
667
668 typedef DWORD LGRPID;
669 typedef DWORD LCTYPE;
670 typedef DWORD CALTYPE;
671 typedef DWORD CALID;
672
673 typedef struct _cpinfo {
674 UINT MaxCharSize;
675 BYTE DefaultChar[MAX_DEFAULTCHAR];
676 BYTE LeadByte[MAX_LEADBYTES];
677 } CPINFO,*LPCPINFO;
678 typedef struct _cpinfoexA {
679 UINT MaxCharSize;
680 BYTE DefaultChar[MAX_DEFAULTCHAR];
681 BYTE LeadByte[MAX_LEADBYTES];
682 WCHAR UnicodeDefaultChar;
683 UINT CodePage;
684 CHAR CodePageName[MAX_PATH];
685 } CPINFOEXA,*LPCPINFOEXA;
686
687 typedef struct _cpinfoexW {
688 UINT MaxCharSize;
689 BYTE DefaultChar[MAX_DEFAULTCHAR];
690 BYTE LeadByte[MAX_LEADBYTES];
691 WCHAR UnicodeDefaultChar;
692 UINT CodePage;
693 WCHAR CodePageName[MAX_PATH];
694 } CPINFOEXW,*LPCPINFOEXW;
695
696 __MINGW_TYPEDEF_AW(CPINFOEX)
697 __MINGW_TYPEDEF_AW(LPCPINFOEX)
698
699 typedef struct _numberfmtA {
700 UINT NumDigits;
701 UINT LeadingZero;
702 UINT Grouping;
703 LPSTR lpDecimalSep;
704 LPSTR lpThousandSep;
705 UINT NegativeOrder;
706 } NUMBERFMTA,*LPNUMBERFMTA;
707 typedef struct _numberfmtW {
708 UINT NumDigits;
709 UINT LeadingZero;
710 UINT Grouping;
711 LPWSTR lpDecimalSep;
712 LPWSTR lpThousandSep;
713 UINT NegativeOrder;
714 } NUMBERFMTW,*LPNUMBERFMTW;
715
716 __MINGW_TYPEDEF_AW(NUMBERFMT)
717 __MINGW_TYPEDEF_AW(LPNUMBERFMT)
718
719 typedef struct _currencyfmtA {
720 UINT NumDigits;
721 UINT LeadingZero;
722 UINT Grouping;
723 LPSTR lpDecimalSep;
724 LPSTR lpThousandSep;
725 UINT NegativeOrder;
726 UINT PositiveOrder;
727 LPSTR lpCurrencySymbol;
728 } CURRENCYFMTA,*LPCURRENCYFMTA;
729
730 typedef struct _currencyfmtW {
731 UINT NumDigits;
732 UINT LeadingZero;
733 UINT Grouping;
734 LPWSTR lpDecimalSep;
735 LPWSTR lpThousandSep;
736 UINT NegativeOrder;
737 UINT PositiveOrder;
738 LPWSTR lpCurrencySymbol;
739 } CURRENCYFMTW,*LPCURRENCYFMTW;
740
741 __MINGW_TYPEDEF_AW(CURRENCYFMT)
742 __MINGW_TYPEDEF_AW(LPCURRENCYFMT)
743
744 enum SYSNLS_FUNCTION {
745 COMPARE_STRING = 0x1
746 };
747
748 typedef DWORD NLS_FUNCTION;
749
750#if WINVER >= 0x0602
751 typedef struct _nlsversioninfo {
752 DWORD dwNLSVersionInfoSize;
753 DWORD dwNLSVersion;
754 DWORD dwDefinedVersion;
755 DWORD dwEffectiveId;
756 GUID guidCustomVersion;
757 } NLSVERSIONINFO,*LPNLSVERSIONINFO;
758#else
759 typedef struct _nlsversioninfo {
760 DWORD dwNLSVersionInfoSize;
761 DWORD dwNLSVersion;
762 DWORD dwDefinedVersion;
763 } NLSVERSIONINFO,*LPNLSVERSIONINFO;
764#endif
765
766 typedef struct _nlsversioninfoex {
767 DWORD dwNLSVersionInfoSize;
768 DWORD dwNLSVersion;
769 DWORD dwDefinedVersion;
770 DWORD dwEffectiveId;
771 GUID guidCustomVersion;
772 } NLSVERSIONINFOEX,*LPNLSVERSIONINFOEX;
773
774 typedef LONG GEOID;
775 typedef DWORD GEOTYPE;
776 typedef DWORD GEOCLASS;
777
778#define GEOID_NOT_AVAILABLE -1
779
780 enum SYSGEOTYPE {
781 GEO_NATION = 0x0001,
782 GEO_LATITUDE = 0x0002,
783 GEO_LONGITUDE = 0x0003,
784 GEO_ISO2 = 0x0004,
785 GEO_ISO3 = 0x0005,
786 GEO_RFC1766 = 0x0006,
787 GEO_LCID = 0x0007,
788 GEO_FRIENDLYNAME= 0x0008,
789 GEO_OFFICIALNAME= 0x0009,
790 GEO_TIMEZONES = 0x000a,
791 GEO_OFFICIALLANGUAGES = 0x000b,
792 GEO_ISO_UN_NUMBER = 0x000c,
793 GEO_PARENT = 0x000d,
794 GEO_DIALINGCODE = 0x000e,
795 GEO_CURRENCYCODE= 0x000f,
796 GEO_CURRENCYSYMBOL= 0x0010,
797#if NTDDI_VERSION >= NTDDI_WIN10_RS3
798 GEO_NAME = 0x0011,
799 GEO_ID = 0x0012
800#endif
801 };
802
803 enum SYSGEOCLASS {
804 GEOCLASS_NATION = 16,
805 GEOCLASS_REGION = 14,
806 GEOCLASS_ALL = 0
807 };
808
809#if WINVER >= 0x0600
810 typedef enum _NORM_FORM {
811 NormalizationOther = 0,
812 NormalizationC = 0x1,
813 NormalizationD = 0x2,
814 NormalizationKC = 0x5,
815 NormalizationKD = 0x6
816 } NORM_FORM;
817
818#define IDN_ALLOW_UNASSIGNED 0x01
819#define IDN_USE_STD3_ASCII_RULES 0x02
820#define IDN_EMAIL_ADDRESS 0x04
821#define IDN_RAW_PUNYCODE 0x08
822
823#define VS_ALLOW_LATIN 0x0001
824
825#define GSS_ALLOW_INHERITED_COMMON 0x0001
826#endif
827
828#ifdef STRICT
829 typedef WINBOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCA) (LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR);
830 typedef WINBOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCA) (LGRPID, LCID, LPSTR, LONG_PTR);
831 typedef WINBOOL (CALLBACK *UILANGUAGE_ENUMPROCA) (LPSTR, LONG_PTR);
832 typedef WINBOOL (CALLBACK *CODEPAGE_ENUMPROCA) (LPSTR);
833 typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCA) (LPSTR);
834 typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCEXA) (LPSTR, CALID);
835 typedef WINBOOL (CALLBACK *TIMEFMT_ENUMPROCA) (LPSTR);
836 typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCA) (LPSTR);
837 typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCEXA) (LPSTR, CALID);
838 typedef WINBOOL (CALLBACK *LOCALE_ENUMPROCA) (LPSTR);
839 typedef WINBOOL (CALLBACK *LOCALE_ENUMPROCW) (LPWSTR);
840 typedef WINBOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCW) (LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR);
841 typedef WINBOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCW) (LGRPID, LCID, LPWSTR, LONG_PTR);
842 typedef WINBOOL (CALLBACK *UILANGUAGE_ENUMPROCW) (LPWSTR, LONG_PTR);
843 typedef WINBOOL (CALLBACK *CODEPAGE_ENUMPROCW) (LPWSTR);
844 typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCW) (LPWSTR);
845 typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCEXW) (LPWSTR, CALID);
846 typedef WINBOOL (CALLBACK *TIMEFMT_ENUMPROCW) (LPWSTR);
847 typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCW) (LPWSTR);
848 typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCEXW) (LPWSTR, CALID);
849 typedef WINBOOL (CALLBACK *GEO_ENUMPROC) (GEOID);
850 #if NTDDI_VERSION >= NTDDI_WIN10_RS3
851 typedef WINBOOL (CALLBACK *GEO_ENUMNAMEPROC) (PWSTR, LPARAM);
852 #endif
853#else
854 typedef FARPROC LANGUAGEGROUP_ENUMPROCA;
855 typedef FARPROC LANGGROUPLOCALE_ENUMPROCA;
856 typedef FARPROC UILANGUAGE_ENUMPROCA;
857 typedef FARPROC CODEPAGE_ENUMPROCA;
858 typedef FARPROC DATEFMT_ENUMPROCA;
859 typedef FARPROC DATEFMT_ENUMPROCEXA;
860 typedef FARPROC TIMEFMT_ENUMPROCA;
861 typedef FARPROC CALINFO_ENUMPROCA;
862 typedef FARPROC CALINFO_ENUMPROCEXA;
863 typedef FARPROC GEO_ENUMPROC;
864 typedef FARPROC LOCALE_ENUMPROCA;
865 typedef FARPROC LOCALE_ENUMPROCW;
866 typedef FARPROC LANGUAGEGROUP_ENUMPROCW;
867 typedef FARPROC LANGGROUPLOCALE_ENUMPROCW;
868 typedef FARPROC UILANGUAGE_ENUMPROCW;
869 typedef FARPROC CODEPAGE_ENUMPROCW;
870 typedef FARPROC DATEFMT_ENUMPROCW;
871 typedef FARPROC DATEFMT_ENUMPROCEXW;
872 typedef FARPROC TIMEFMT_ENUMPROCW;
873 typedef FARPROC CALINFO_ENUMPROCW;
874 typedef FARPROC CALINFO_ENUMPROCEXW;
875 #if NTDDI_VERSION >= NTDDI_WIN10_RS3
876 typedef FARPROC GEO_ENUMNAMEPROC;
877 #endif
878#endif
879
880#ifdef UNICODE
881
882#define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCW
883#define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCW
884#define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCW
885#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCW
886#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCW
887#define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXW
888#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCW
889#define CALINFO_ENUMPROC CALINFO_ENUMPROCW
890#define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXW
891#define LOCALE_ENUMPROC LOCALE_ENUMPROCW
892#else
893
894#define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCA
895#define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCA
896#define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCA
897#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCA
898#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCA
899#define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXA
900#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCA
901#define CALINFO_ENUMPROC CALINFO_ENUMPROCA
902#define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXA
903#define LOCALE_ENUMPROC LOCALE_ENUMPROCA
904#endif
905
906 typedef struct _FILEMUIINFO {
907 DWORD dwSize;
908 DWORD dwVersion;
909 DWORD dwFileType;
910 BYTE pChecksum[16];
911 BYTE pServiceChecksum[16];
912 DWORD dwLanguageNameOffset;
913 DWORD dwTypeIDMainSize;
914 DWORD dwTypeIDMainOffset;
915 DWORD dwTypeNameMainOffset;
916 DWORD dwTypeIDMUISize;
917 DWORD dwTypeIDMUIOffset;
918 DWORD dwTypeNameMUIOffset;
919 BYTE abBuffer[8];
920 } FILEMUIINFO,*PFILEMUIINFO;
921
922#ifndef NOAPISET
923#include <stringapiset.h>
924#endif
925
926#define IS_HIGH_SURROGATE(wch) (((wch) >= HIGH_SURROGATE_START) && ((wch) <= HIGH_SURROGATE_END))
927#define IS_LOW_SURROGATE(wch) (((wch) >= LOW_SURROGATE_START) && ((wch) <= LOW_SURROGATE_END))
928#define IS_SURROGATE_PAIR(hs, ls) (IS_HIGH_SURROGATE (hs) && IS_LOW_SURROGATE (ls))
929
930#define FILEMUIINFO_GET_CULTURE(pInfo) ((LPWSTR) ((pInfo->dwLanguageNameOffset>0)? (ULONG_PTR)pInfo+pInfo->dwLanguageNameOffset:NULL))
931#define FILEMUIINFO_GET_MAIN_TYPEIDS(pInfo) ((DWORD *) ((pInfo->dwTypeIDMainOffset>0)? (ULONG_PTR)pInfo+pInfo->dwTypeIDMainOffset:NULL))
932#define FILEMUIINFO_GET_MAIN_TYPEID(pInfo, iType) (((iType<pInfo->dwTypeIDMainSize)&& (pInfo->dwTypeIDMainOffset>0))? *((DWORD *) ((ULONG_PTR)pInfo+pInfo->dwTypeIDMainOffset)+iType):0)
933#define FILEMUIINFO_GET_MAIN_TYPENAMES(pInfo) ((LPWSTR) ((pInfo->dwTypeNameMainOffset>0)? (ULONG_PTR)pInfo+pInfo->dwTypeNameMainOffset:NULL))
934#define FILEMUIINFO_GET_MUI_TYPEIDS(pInfo) ((DWORD *) ((pInfo->dwTypeIDMUIOffset>0)? (ULONG_PTR)pInfo+pInfo->dwTypeIDMUIOffset:NULL))
935#define FILEMUIINFO_GET_MUI_TYPEID(pInfo, iType) (((iType<pInfo->dwTypeIDMUISize)&& (pInfo->dwTypeIDMUIOffset>0))? *((DWORD *) ((ULONG_PTR)pInfo+pInfo->dwTypeIDMUIOffset)+iType):0)
936#define FILEMUIINFO_GET_MUI_TYPENAMES(pInfo) ((LPWSTR) ((pInfo->dwTypeNameMUIOffset>0)? (ULONG_PTR)pInfo+pInfo->dwTypeNameMUIOffset:NULL))
937
938 WINBASEAPI WINBOOL WINAPI IsValidCodePage (UINT CodePage);
939#endif
940
941#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
942 WINBASEAPI UINT WINAPI GetACP (void);
943 WINBASEAPI WINBOOL WINAPI IsDBCSLeadByte (BYTE TestChar);
944 WINBASEAPI WINBOOL WINAPI IsDBCSLeadByteEx (UINT CodePage, BYTE TestChar);
945 WINBASEAPI WINBOOL WINAPI IsNLSDefinedString (NLS_FUNCTION Function, DWORD dwFlags, LPNLSVERSIONINFO lpVersionInformation, LPCWSTR lpString, INT cchStr);
946 WINBASEAPI int WINAPI GetLocaleInfoW (LCID Locale, LCTYPE LCType, LPWSTR lpLCData, int cchData);
947 WINBASEAPI int WINAPI GetLocaleInfoA (LCID Locale, LCTYPE LCType, LPSTR lpLCData, int cchData);
948
949#ifndef UNICODE
950#define GetLocaleInfo GetLocaleInfoA
951#else
952#define GetLocaleInfo GetLocaleInfoW
953#endif
954
955#endif
956
957#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
958 WINBASEAPI UINT WINAPI GetOEMCP (void);
959 WINBASEAPI int WINAPI CompareStringA (LCID Locale, DWORD dwCmpFlags, PCNZCH lpString1, int cchCount1, PCNZCH lpString2, int cchCount2);
960 WINBASEAPI int WINAPI LCMapStringW (LCID Locale, DWORD dwMapFlags, LPCWSTR lpSrcStr, int cchSrc, LPWSTR lpDestStr, int cchDest);
961 WINBASEAPI int WINAPI LCMapStringA (LCID Locale, DWORD dwMapFlags, LPCSTR lpSrcStr, int cchSrc, LPSTR lpDestStr, int cchDest);
962 WINBASEAPI int WINAPI GetNumberFormatA (LCID Locale, DWORD dwFlags, LPCSTR lpValue, CONST NUMBERFMTA *lpFormat, LPSTR lpNumberStr, int cchNumber);
963 WINBASEAPI int WINAPI GetNumberFormatW (LCID Locale, DWORD dwFlags, LPCWSTR lpValue, CONST NUMBERFMTW *lpFormat, LPWSTR lpNumberStr, int cchNumber);
964 WINBASEAPI int WINAPI GetCurrencyFormatA (LCID Locale, DWORD dwFlags, LPCSTR lpValue, CONST CURRENCYFMTA *lpFormat, LPSTR lpCurrencyStr, int cchCurrency);
965 WINBASEAPI int WINAPI GetCurrencyFormatW (LCID Locale, DWORD dwFlags, LPCWSTR lpValue, CONST CURRENCYFMTW *lpFormat, LPWSTR lpCurrencyStr, int cchCurrency);
966 WINBASEAPI WINBOOL WINAPI EnumCalendarInfoA (CALINFO_ENUMPROCA lpCalInfoEnumProc, LCID Locale, CALID Calendar, CALTYPE CalType);
967 WINBASEAPI WINBOOL WINAPI EnumCalendarInfoW (CALINFO_ENUMPROCW lpCalInfoEnumProc, LCID Locale, CALID Calendar, CALTYPE CalType);
968 WINBASEAPI WINBOOL WINAPI EnumCalendarInfoExA (CALINFO_ENUMPROCEXA lpCalInfoEnumProcEx, LCID Locale, CALID Calendar, CALTYPE CalType);
969 WINBASEAPI WINBOOL WINAPI EnumCalendarInfoExW (CALINFO_ENUMPROCEXW lpCalInfoEnumProcEx, LCID Locale, CALID Calendar, CALTYPE CalType);
970 WINBASEAPI WINBOOL WINAPI EnumTimeFormatsA (TIMEFMT_ENUMPROCA lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags);
971 WINBASEAPI WINBOOL WINAPI EnumTimeFormatsW (TIMEFMT_ENUMPROCW lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags);
972 WINBASEAPI WINBOOL WINAPI EnumDateFormatsA (DATEFMT_ENUMPROCA lpDateFmtEnumProc, LCID Locale, DWORD dwFlags);
973 WINBASEAPI WINBOOL WINAPI EnumDateFormatsW (DATEFMT_ENUMPROCW lpDateFmtEnumProc, LCID Locale, DWORD dwFlags);
974 WINBASEAPI WINBOOL WINAPI EnumDateFormatsExA (DATEFMT_ENUMPROCEXA lpDateFmtEnumProcEx, LCID Locale, DWORD dwFlags);
975 WINBASEAPI WINBOOL WINAPI EnumDateFormatsExW (DATEFMT_ENUMPROCEXW lpDateFmtEnumProcEx, LCID Locale, DWORD dwFlags);
976 WINBASEAPI WINBOOL WINAPI IsValidLanguageGroup (LGRPID LanguageGroup, DWORD dwFlags);
977 WINBASEAPI WINBOOL WINAPI GetNLSVersion (NLS_FUNCTION Function, LCID Locale, LPNLSVERSIONINFO lpVersionInformation);
978 WINBASEAPI WINBOOL WINAPI IsValidLocale (LCID Locale, DWORD dwFlags);
979 WINBASEAPI WINBOOL WINAPI SetLocaleInfoA (LCID Locale, LCTYPE LCType, LPCSTR lpLCData);
980 WINBASEAPI WINBOOL WINAPI SetLocaleInfoW (LCID Locale, LCTYPE LCType, LPCWSTR lpLCData);
981 WINBASEAPI int WINAPI GetCalendarInfoA (LCID Locale, CALID Calendar, CALTYPE CalType, LPSTR lpCalData, int cchData, LPDWORD lpValue);
982 WINBASEAPI int WINAPI GetCalendarInfoW (LCID Locale, CALID Calendar, CALTYPE CalType, LPWSTR lpCalData, int cchData, LPDWORD lpValue);
983 WINBASEAPI WINBOOL WINAPI SetCalendarInfoA (LCID Locale, CALID Calendar, CALTYPE CalType, LPCSTR lpCalData);
984 WINBASEAPI WINBOOL WINAPI SetCalendarInfoW (LCID Locale, CALID Calendar, CALTYPE CalType, LPCWSTR lpCalData);
985#if WINVER >= 0x0600
986 WINBASEAPI int WINAPI GetDurationFormat (LCID Locale, DWORD dwFlags, CONST SYSTEMTIME *lpDuration, ULONGLONG ullDuration, LPCWSTR lpFormat, LPWSTR lpDurationStr, int cchDuration);
987 WINBASEAPI int WINAPI FindNLSString (LCID Locale, DWORD dwFindNLSStringFlags, LPCWSTR lpStringSource, int cchSource, LPCWSTR lpStringValue, int cchValue, LPINT pcchFound);
988#endif
989#if WINVER >= 0x0601
990 WINBASEAPI WINBOOL WINAPI LoadStringByReference (DWORD Flags, PCWSTR Language, PCWSTR SourceString, PWSTR Buffer, ULONG cchBuffer, PCWSTR Directory, PULONG pcchBufferOut);
991#endif
992
993#define SetLocaleInfo __MINGW_NAME_AW(SetLocaleInfo)
994#define GetCalendarInfo __MINGW_NAME_AW(GetCalendarInfo)
995#define SetCalendarInfo __MINGW_NAME_AW(SetCalendarInfo)
996
997#if WINVER >= 0x0601
998#define MUI_FORMAT_REG_COMPAT 0x0001
999#define MUI_FORMAT_INF_COMPAT 0x0002
1000#define MUI_VERIFY_FILE_EXISTS 0x0004
1001#define MUI_SKIP_STRING_CACHE 0x0008
1002#define MUI_IMMUTABLE_LOOKUP 0x0010
1003#endif
1004
1005#ifndef UNICODE
1006#define CompareString CompareStringA
1007#define LCMapString LCMapStringA
1008#else
1009#define LCMapString LCMapStringW
1010#endif
1011
1012#define GetNumberFormat __MINGW_NAME_AW(GetNumberFormat)
1013#define GetCurrencyFormat __MINGW_NAME_AW(GetCurrencyFormat)
1014#define EnumCalendarInfo __MINGW_NAME_AW(EnumCalendarInfo)
1015#define EnumCalendarInfoEx __MINGW_NAME_AW(EnumCalendarInfoEx)
1016#define EnumTimeFormats __MINGW_NAME_AW(EnumTimeFormats)
1017#define EnumDateFormats __MINGW_NAME_AW(EnumDateFormats)
1018#define EnumDateFormatsEx __MINGW_NAME_AW(EnumDateFormatsEx)
1019
1020#endif
1021
1022#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
1023 WINBASEAPI int WINAPI GetGeoInfoA (GEOID Location, GEOTYPE GeoType, LPSTR lpGeoData, int cchData, LANGID LangId);
1024 WINBASEAPI int WINAPI GetGeoInfoW (GEOID Location, GEOTYPE GeoType, LPWSTR lpGeoData, int cchData, LANGID LangId);
1025 WINBASEAPI WINBOOL WINAPI EnumSystemGeoID (GEOCLASS GeoClass, GEOID ParentGeoId, GEO_ENUMPROC lpGeoEnumProc);
1026 WINBASEAPI GEOID WINAPI GetUserGeoID (GEOCLASS GeoClass);
1027 WINBASEAPI int WINAPI GetUserDefaultGeoName (LPWSTR geoName, int geoNameCount);
1028 WINBASEAPI WINBOOL WINAPI GetCPInfo (UINT CodePage, LPCPINFO lpCPInfo);
1029 WINBASEAPI WINBOOL WINAPI GetCPInfoExA (UINT CodePage, DWORD dwFlags, LPCPINFOEXA lpCPInfoEx);
1030 WINBASEAPI WINBOOL WINAPI GetCPInfoExW (UINT CodePage, DWORD dwFlags, LPCPINFOEXW lpCPInfoEx);
1031
1032#if WINVER >= 0x0600
1033 WINBASEAPI int WINAPI LCIDToLocaleName (LCID Locale, LPWSTR lpName, int cchName, DWORD dwFlags);
1034 WINBASEAPI LCID WINAPI LocaleNameToLCID (LPCWSTR lpName, DWORD dwFlags);
1035#endif
1036
1037#if NTDDI_VERSION >= NTDDI_WIN10_RS3
1038 WINBASEAPI int WINAPI GetGeoInfoEx (PWSTR location, GEOTYPE geoType, PWSTR geoData, int geoDataCount);
1039 WINBASEAPI WINBOOL WINAPI SetUserGeoName (PWSTR geoName);
1040#endif
1041
1042#define GetGeoInfo __MINGW_NAME_AW(GetGeoInfo)
1043#define GetCPInfoEx __MINGW_NAME_AW(GetCPInfoEx)
1044
1045#endif
1046
1047#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
1048 WINBASEAPI WINBOOL WINAPI SetUserGeoID (GEOID GeoId);
1049 WINBASEAPI LCID WINAPI ConvertDefaultLocale (LCID Locale);
1050 WINBASEAPI LCID WINAPI GetThreadLocale (void);
1051 WINBASEAPI WINBOOL WINAPI SetThreadLocale (LCID Locale);
1052 WINBASEAPI LANGID WINAPI GetSystemDefaultUILanguage (void);
1053 WINBASEAPI LANGID WINAPI GetSystemDefaultLangID (void);
1054 WINBASEAPI LCID WINAPI GetSystemDefaultLCID (void);
1055 WINBASEAPI LCID WINAPI GetUserDefaultLCID (void);
1056 WINBASEAPI LANGID WINAPI SetThreadUILanguage (LANGID LangId);
1057 WINBASEAPI WINBOOL WINAPI GetStringTypeA (LCID Locale, DWORD dwInfoType, LPCSTR lpSrcStr, int cchSrc, LPWORD lpCharType);
1058 WINBASEAPI int WINAPI FoldStringA (DWORD dwMapFlags, LPCSTR lpSrcStr, int cchSrc, LPSTR lpDestStr, int cchDest);
1059 WINBASEAPI WINBOOL WINAPI EnumSystemLocalesA (LOCALE_ENUMPROCA lpLocaleEnumProc, DWORD dwFlags);
1060 WINBASEAPI WINBOOL WINAPI EnumSystemLocalesW (LOCALE_ENUMPROCW lpLocaleEnumProc, DWORD dwFlags);
1061 WINBASEAPI WINBOOL WINAPI EnumSystemLanguageGroupsA (LANGUAGEGROUP_ENUMPROCA lpLanguageGroupEnumProc, DWORD dwFlags, LONG_PTR lParam);
1062 WINBASEAPI WINBOOL WINAPI EnumSystemLanguageGroupsW (LANGUAGEGROUP_ENUMPROCW lpLanguageGroupEnumProc, DWORD dwFlags, LONG_PTR lParam);
1063 WINBASEAPI WINBOOL WINAPI EnumLanguageGroupLocalesA (LANGGROUPLOCALE_ENUMPROCA lpLangGroupLocaleEnumProc, LGRPID LanguageGroup, DWORD dwFlags, LONG_PTR lParam);
1064 WINBASEAPI WINBOOL WINAPI EnumLanguageGroupLocalesW (LANGGROUPLOCALE_ENUMPROCW lpLangGroupLocaleEnumProc, LGRPID LanguageGroup, DWORD dwFlags, LONG_PTR lParam);
1065#if WINVER >= 0x0600
1066 WINBASEAPI LANGID WINAPI GetThreadUILanguage (void);
1067 WINBASEAPI WINBOOL WINAPI GetProcessPreferredUILanguages (DWORD dwFlags, PULONG pulNumLanguages, PZZWSTR pwszLanguagesBuffer, PULONG pcchLanguagesBuffer);
1068 WINBASEAPI WINBOOL WINAPI SetProcessPreferredUILanguages (DWORD dwFlags, PCZZWSTR pwszLanguagesBuffer, PULONG pulNumLanguages);
1069 WINBASEAPI WINBOOL WINAPI GetUserPreferredUILanguages (DWORD dwFlags, PULONG pulNumLanguages, PZZWSTR pwszLanguagesBuffer, PULONG pcchLanguagesBuffer);
1070 WINBASEAPI WINBOOL WINAPI GetSystemPreferredUILanguages (DWORD dwFlags, PULONG pulNumLanguages, PZZWSTR pwszLanguagesBuffer, PULONG pcchLanguagesBuffer);
1071 WINBASEAPI WINBOOL WINAPI GetThreadPreferredUILanguages (DWORD dwFlags, PULONG pulNumLanguages, PZZWSTR pwszLanguagesBuffer, PULONG pcchLanguagesBuffer);
1072 WINBASEAPI WINBOOL WINAPI SetThreadPreferredUILanguages (DWORD dwFlags, PCZZWSTR pwszLanguagesBuffer, PULONG pulNumLanguages);
1073 WINBASEAPI WINBOOL WINAPI GetFileMUIInfo (DWORD dwFlags, PCWSTR pcwszFilePath, PFILEMUIINFO pFileMUIInfo, DWORD *pcbFileMUIInfo);
1074 WINBASEAPI WINBOOL WINAPI GetFileMUIPath (DWORD dwFlags, PCWSTR pcwszFilePath, PWSTR pwszLanguage, PULONG pcchLanguage, PWSTR pwszFileMUIPath, PULONG pcchFileMUIPath, PULONGLONG pululEnumerator);
1075 WINBASEAPI WINBOOL WINAPI GetUILanguageInfo (DWORD dwFlags, PCZZWSTR pwmszLanguage, PZZWSTR pwszFallbackLanguages, PDWORD pcchFallbackLanguages, PDWORD pAttributes);
1076 WINBASEAPI WINBOOL WINAPI NotifyUILanguageChange (DWORD dwFlags, PCWSTR pcwstrNewLanguage, PCWSTR pcwstrPreviousLanguage, DWORD dwReserved, PDWORD pdwStatusRtrn);
1077#endif
1078
1079#ifndef UNICODE
1080#define FoldString FoldStringA
1081#endif
1082
1083#define EnumSystemLocales __MINGW_NAME_AW(EnumSystemLocales)
1084#define EnumSystemLanguageGroups __MINGW_NAME_AW(EnumSystemLanguageGroups)
1085#define EnumLanguageGroupLocales __MINGW_NAME_AW(EnumLanguageGroupLocales)
1086#define EnumUILanguages __MINGW_NAME_AW(EnumUILanguages)
1087
1088#if NTDDI_VERSION >= NTDDI_WIN10_RS3
1089 WINBASEAPI WINBOOL WINAPI EnumSystemGeoNames (GEOCLASS geoClass, GEO_ENUMNAMEPROC geoEnumProc, LPARAM data);
1090#endif
1091
1092#if NTDDI_VERSION >= NTDDI_WIN10_VB
1093 DECLARE_HANDLE(HSAVEDUILANGUAGES);
1094 WINBASEAPI WINBOOL WINAPI SetThreadPreferredUILanguages2 (ULONG flags, PCZZWSTR languages, PULONG numLanguagesSet, HSAVEDUILANGUAGES *snapshot);
1095 WINBASEAPI void WINAPI RestoreThreadPreferredUILanguages (const HSAVEDUILANGUAGES snapshot);
1096#endif /* NTDDI_WIN10_VB */
1097
1098#endif
1099
1100#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
1101 WINBASEAPI WINBOOL WINAPI GetStringTypeExA (LCID Locale, DWORD dwInfoType, LPCSTR lpSrcStr, int cchSrc, LPWORD lpCharType);
1102 WINBASEAPI LANGID WINAPI GetUserDefaultUILanguage (void);
1103 WINBASEAPI WINBOOL WINAPI EnumUILanguagesA (UILANGUAGE_ENUMPROCA lpUILanguageEnumProc, DWORD dwFlags, LONG_PTR lParam);
1104 WINBASEAPI WINBOOL WINAPI EnumUILanguagesW (UILANGUAGE_ENUMPROCW lpUILanguageEnumProc, DWORD dwFlags, LONG_PTR lParam);
1105 WINBASEAPI WINBOOL WINAPI EnumSystemCodePagesA (CODEPAGE_ENUMPROCA lpCodePageEnumProc, DWORD dwFlags);
1106 WINBASEAPI WINBOOL WINAPI EnumSystemCodePagesW (CODEPAGE_ENUMPROCW lpCodePageEnumProc, DWORD dwFlags);
1107 WINBASEAPI LANGID WINAPI GetUserDefaultLangID (void);
1108
1109#ifndef UNICODE
1110#define GetStringTypeEx GetStringTypeExA
1111#endif
1112
1113#define EnumSystemCodePages __MINGW_NAME_AW(EnumSystemCodePages)
1114
1115#if WINVER >= 0x0600
1116
1117#define LOCALE_NAME_USER_DEFAULT NULL
1118#define LOCALE_NAME_INVARIANT L""
1119#define LOCALE_NAME_SYSTEM_DEFAULT L"!x-sys-default-locale"
1120
1121 typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCEXEX) (LPWSTR, CALID, LPWSTR, LPARAM);
1122 typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCEXEX) (LPWSTR, CALID, LPARAM);
1123 typedef WINBOOL (CALLBACK *TIMEFMT_ENUMPROCEX) (LPWSTR, LPARAM);
1124 typedef WINBOOL (CALLBACK *LOCALE_ENUMPROCEX) (LPWSTR, DWORD, LPARAM);
1125
1126 WINNORMALIZEAPI int WINAPI NormalizeString (NORM_FORM NormForm, LPCWSTR lpSrcString, int cwSrcLength, LPWSTR lpDstString, int cwDstLength);
1127 WINNORMALIZEAPI WINBOOL WINAPI IsNormalizedString (NORM_FORM NormForm, LPCWSTR lpString, int cwLength);
1128 WINNORMALIZEAPI int WINAPI IdnToAscii (DWORD dwFlags, LPCWSTR lpUnicodeCharStr, int cchUnicodeChar, LPWSTR lpASCIICharStr, int cchASCIIChar);
1129 WINNORMALIZEAPI int WINAPI IdnToNameprepUnicode (DWORD dwFlags, LPCWSTR lpUnicodeCharStr, int cchUnicodeChar, LPWSTR lpNameprepCharStr, int cchNameprepChar);
1130 WINNORMALIZEAPI int WINAPI IdnToUnicode (DWORD dwFlags, LPCWSTR lpASCIICharStr, int cchASCIIChar, LPWSTR lpUnicodeCharStr, int cchUnicodeChar);
1131
1132 WINBASEAPI WINBOOL WINAPI VerifyScripts (DWORD dwFlags, LPCWSTR lpLocaleScripts, int cchLocaleScripts, LPCWSTR lpTestScripts, int cchTestScripts);
1133 WINBASEAPI int WINAPI GetStringScripts (DWORD dwFlags, LPCWSTR lpString, int cchString, LPWSTR lpScripts, int cchScripts);
1134 WINBASEAPI int WINAPI GetLocaleInfoEx (LPCWSTR lpLocaleName, LCTYPE LCType, LPWSTR lpLCData, int cchData);
1135 WINBASEAPI int WINAPI GetCalendarInfoEx (LPCWSTR lpLocaleName, CALID Calendar, LPCWSTR lpReserved, CALTYPE CalType, LPWSTR lpCalData, int cchData, LPDWORD lpValue);
1136 WINBASEAPI int WINAPI GetDurationFormatEx (LPCWSTR lpLocaleName, DWORD dwFlags, CONST SYSTEMTIME *lpDuration, ULONGLONG ullDuration, LPCWSTR lpFormat, LPWSTR lpDurationStr, int cchDuration);
1137 WINBASEAPI int WINAPI GetNumberFormatEx (LPCWSTR lpLocaleName, DWORD dwFlags, LPCWSTR lpValue, CONST NUMBERFMTW *lpFormat, LPWSTR lpNumberStr, int cchNumber);
1138 WINBASEAPI int WINAPI GetCurrencyFormatEx (LPCWSTR lpLocaleName, DWORD dwFlags, LPCWSTR lpValue, CONST CURRENCYFMTW *lpFormat, LPWSTR lpCurrencyStr, int cchCurrency);
1139 WINBASEAPI int WINAPI GetUserDefaultLocaleName (LPWSTR lpLocaleName, int cchLocaleName);
1140 WINBASEAPI int WINAPI GetSystemDefaultLocaleName (LPWSTR lpLocaleName, int cchLocaleName);
1141 WINBASEAPI WINBOOL WINAPI GetNLSVersionEx (NLS_FUNCTION function, LPCWSTR lpLocaleName, LPNLSVERSIONINFOEX lpVersionInformation);
1142 WINBASEAPI int WINAPI FindNLSStringEx (LPCWSTR lpLocaleName, DWORD dwFindNLSStringFlags, LPCWSTR lpStringSource, int cchSource, LPCWSTR lpStringValue, int cchValue, LPINT pcchFound, LPNLSVERSIONINFO lpVersionInformation, LPVOID lpReserved, LPARAM sortHandle);
1143 WINBASEAPI int WINAPI LCMapStringEx (LPCWSTR lpLocaleName, DWORD dwMapFlags, LPCWSTR lpSrcStr, int cchSrc, LPWSTR lpDestStr, int cchDest, LPNLSVERSIONINFO lpVersionInformation, LPVOID lpReserved, LPARAM sortHandle);
1144 WINBASEAPI WINBOOL WINAPI IsValidLocaleName (LPCWSTR lpLocaleName);
1145 WINBASEAPI WINBOOL WINAPI EnumCalendarInfoExEx (CALINFO_ENUMPROCEXEX pCalInfoEnumProcExEx, LPCWSTR lpLocaleName, CALID Calendar, LPCWSTR lpReserved, CALTYPE CalType, LPARAM lParam);
1146 WINBASEAPI WINBOOL WINAPI EnumDateFormatsExEx (DATEFMT_ENUMPROCEXEX lpDateFmtEnumProcExEx, LPCWSTR lpLocaleName, DWORD dwFlags, LPARAM lParam);
1147 WINBASEAPI WINBOOL WINAPI EnumTimeFormatsEx (TIMEFMT_ENUMPROCEX lpTimeFmtEnumProcEx, LPCWSTR lpLocaleName, DWORD dwFlags, LPARAM lParam);
1148 WINBASEAPI WINBOOL WINAPI EnumSystemLocalesEx (LOCALE_ENUMPROCEX lpLocaleEnumProcEx, DWORD dwFlags, LPARAM lParam, LPVOID lpReserved);
1149#endif
1150#if WINVER >= 0x0601
1151 WINBASEAPI int WINAPI ResolveLocaleName (LPCWSTR lpNameToResolve, LPWSTR lpLocaleName, int cchLocaleName);
1152#endif
1153#if WINVER >= 0x0602
1154 WINBASEAPI DWORD WINAPI IsValidNLSVersion (NLS_FUNCTION function, LPCWSTR lpLocaleName, LPNLSVERSIONINFOEX lpVersionInformation);
1155#endif
1156#endif
1157
1158#endif
1159
1160#ifdef __cplusplus
1161}
1162#endif
1163
1164#endif
Note: See TracBrowser for help on using the repository browser.