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