1/** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6#ifndef _WINNLS_ 7#define _WINNLS_ 8 9#include <_mingw_unicode.h> 10 11#ifdef __cplusplus 12extern "C" { 13#endif 14 15#ifndef NONLS 16 17#define MAX_LEADBYTES 12 18#define MAX_DEFAULTCHAR 2 19 20#define MB_PRECOMPOSED 0x00000001 21#define MB_COMPOSITE 0x00000002 22#define MB_USEGLYPHCHARS 0x00000004 23#define MB_ERR_INVALID_CHARS 0x00000008 24 25#define WC_COMPOSITECHECK 0x00000200 26#define WC_DISCARDNS 0x00000010 27#define WC_SEPCHARS 0x00000020 28#define WC_DEFAULTCHAR 0x00000040 29#if (_WIN32_WINNT >= 0x0600) 30#define WC_ERR_INVALID_CHARS 0x00000080 31#endif 32#define WC_NO_BEST_FIT_CHARS 0x00000400 33 34#define CT_CTYPE1 0x00000001 35#define CT_CTYPE2 0x00000002 36#define CT_CTYPE3 0x00000004 37 38#define C1_UPPER 0x0001 39#define C1_LOWER 0x0002 40#define C1_DIGIT 0x0004 41#define C1_SPACE 0x0008 42#define C1_PUNCT 0x0010 43#define C1_CNTRL 0x0020 44#define C1_BLANK 0x0040 45#define C1_XDIGIT 0x0080 46#define C1_ALPHA 0x0100 47#define C1_DEFINED 0x0200 48 49#define C2_LEFTTORIGHT 0x0001 50#define C2_RIGHTTOLEFT 0x0002 51 52#define C2_EUROPENUMBER 0x0003 53#define C2_EUROPESEPARATOR 0x0004 54#define C2_EUROPETERMINATOR 0x0005 55#define C2_ARABICNUMBER 0x0006 56#define C2_COMMONSEPARATOR 0x0007 57 58#define C2_BLOCKSEPARATOR 0x0008 59#define C2_SEGMENTSEPARATOR 0x0009 60#define C2_WHITESPACE 0x000A 61#define C2_OTHERNEUTRAL 0x000B 62 63#define C2_NOTAPPLICABLE 0x0000 64 65#define C3_NONSPACING 0x0001 66#define C3_DIACRITIC 0x0002 67#define C3_VOWELMARK 0x0004 68#define C3_SYMBOL 0x0008 69 70#define C3_KATAKANA 0x0010 71#define C3_HIRAGANA 0x0020 72#define C3_HALFWIDTH 0x0040 73#define C3_FULLWIDTH 0x0080 74#define C3_IDEOGRAPH 0x0100 75#define C3_KASHIDA 0x0200 76#define C3_LEXICAL 0x0400 77 78#define C3_ALPHA 0x8000 79 80#define C3_NOTAPPLICABLE 0x0000 81 82#define NORM_IGNORECASE 0x00000001 83#define NORM_IGNORENONSPACE 0x00000002 84#define NORM_IGNORESYMBOLS 0x00000004 85 86#define NORM_IGNOREKANATYPE 0x00010000 87#define NORM_IGNOREWIDTH 0x00020000 88 89#define MAP_FOLDCZONE 0x00000010 90#define MAP_PRECOMPOSED 0x00000020 91#define MAP_COMPOSITE 0x00000040 92#define MAP_FOLDDIGITS 0x00000080 93#define MAP_EXPAND_LIGATURES 0x00002000 94 95#define LCMAP_LOWERCASE 0x00000100 96#define LCMAP_UPPERCASE 0x00000200 97#define LCMAP_SORTKEY 0x00000400 98#define LCMAP_BYTEREV 0x00000800 99 100#define LCMAP_HIRAGANA 0x00100000 101#define LCMAP_KATAKANA 0x00200000 102#define LCMAP_HALFWIDTH 0x00400000 103#define LCMAP_FULLWIDTH 0x00800000 104 105#define LCMAP_LINGUISTIC_CASING 0x01000000 106 107#define LCMAP_SIMPLIFIED_CHINESE 0x02000000 108#define LCMAP_TRADITIONAL_CHINESE 0x04000000 109 110#define LGRPID_INSTALLED 0x00000001 111#define LGRPID_SUPPORTED 0x00000002 112 113#define LCID_INSTALLED 0x00000001 114#define LCID_SUPPORTED 0x00000002 115#define LCID_ALTERNATE_SORTS 0x00000004 116 117#define CP_INSTALLED 0x00000001 118#define CP_SUPPORTED 0x00000002 119 120#define SORT_STRINGSORT 0x00001000 121 122#define CSTR_LESS_THAN 1 123#define CSTR_EQUAL 2 124#define CSTR_GREATER_THAN 3 125 126#define CP_ACP 0 127#define CP_OEMCP 1 128#define CP_MACCP 2 129#define CP_THREAD_ACP 3 130#define CP_SYMBOL 42 131 132#define CP_UTF7 65000 133#define CP_UTF8 65001 134 135#define CTRY_DEFAULT 0 136 137#define CTRY_ALBANIA 355 138#define CTRY_ALGERIA 213 139#define CTRY_ARGENTINA 54 140#define CTRY_ARMENIA 374 141#define CTRY_AUSTRALIA 61 142#define CTRY_AUSTRIA 43 143#define CTRY_AZERBAIJAN 994 144#define CTRY_BAHRAIN 973 145#define CTRY_BELARUS 375 146#define CTRY_BELGIUM 32 147#define CTRY_BELIZE 501 148#define CTRY_BOLIVIA 591 149#define CTRY_BRAZIL 55 150#define CTRY_BRUNEI_DARUSSALAM 673 151#define CTRY_BULGARIA 359 152#define CTRY_CANADA 2 153#define CTRY_CARIBBEAN 1 154#define CTRY_CHILE 56 155#define CTRY_COLOMBIA 57 156#define CTRY_COSTA_RICA 506 157#define CTRY_CROATIA 385 158#define CTRY_CZECH 420 159#define CTRY_DENMARK 45 160#define CTRY_DOMINICAN_REPUBLIC 1 161#define CTRY_ECUADOR 593 162#define CTRY_EGYPT 20 163#define CTRY_EL_SALVADOR 503 164#define CTRY_ESTONIA 372 165#define CTRY_FAEROE_ISLANDS 298 166#define CTRY_FINLAND 358 167#define CTRY_FRANCE 33 168#define CTRY_GEORGIA 995 169#define CTRY_GERMANY 49 170#define CTRY_GREECE 30 171#define CTRY_GUATEMALA 502 172#define CTRY_HONDURAS 504 173#define CTRY_HONG_KONG 852 174#define CTRY_HUNGARY 36 175#define CTRY_ICELAND 354 176#define CTRY_INDIA 91 177#define CTRY_INDONESIA 62 178#define CTRY_IRAN 981 179#define CTRY_IRAQ 964 180#define CTRY_IRELAND 353 181#define CTRY_ISRAEL 972 182#define CTRY_ITALY 39 183#define CTRY_JAMAICA 1 184#define CTRY_JAPAN 81 185#define CTRY_JORDAN 962 186#define CTRY_KAZAKSTAN 7 187#define CTRY_KENYA 254 188#define CTRY_KUWAIT 965 189#define CTRY_KYRGYZSTAN 996 190#define CTRY_LATVIA 371 191#define CTRY_LEBANON 961 192#define CTRY_LIBYA 218 193#define CTRY_LIECHTENSTEIN 41 194#define CTRY_LITHUANIA 370 195#define CTRY_LUXEMBOURG 352 196#define CTRY_MACAU 853 197#define CTRY_MACEDONIA 389 198#define CTRY_MALAYSIA 60 199#define CTRY_MALDIVES 960 200#define CTRY_MEXICO 52 201#define CTRY_MONACO 33 202#define CTRY_MONGOLIA 976 203#define CTRY_MOROCCO 212 204#define CTRY_NETHERLANDS 31 205#define CTRY_NEW_ZEALAND 64 206#define CTRY_NICARAGUA 505 207#define CTRY_NORWAY 47 208#define CTRY_OMAN 968 209#define CTRY_PAKISTAN 92 210#define CTRY_PANAMA 507 211#define CTRY_PARAGUAY 595 212#define CTRY_PERU 51 213#define CTRY_PHILIPPINES 63 214#define CTRY_POLAND 48 215#define CTRY_PORTUGAL 351 216#define CTRY_PRCHINA 86 217#define CTRY_PUERTO_RICO 1 218#define CTRY_QATAR 974 219#define CTRY_ROMANIA 40 220#define CTRY_RUSSIA 7 221#define CTRY_SAUDI_ARABIA 966 222#define CTRY_SERBIA 381 223#define CTRY_SINGAPORE 65 224#define CTRY_SLOVAK 421 225#define CTRY_SLOVENIA 386 226#define CTRY_SOUTH_AFRICA 27 227#define CTRY_SOUTH_KOREA 82 228#define CTRY_SPAIN 34 229#define CTRY_SWEDEN 46 230#define CTRY_SWITZERLAND 41 231#define CTRY_SYRIA 963 232#define CTRY_TAIWAN 886 233#define CTRY_TATARSTAN 7 234#define CTRY_THAILAND 66 235#define CTRY_TRINIDAD_Y_TOBAGO 1 236#define CTRY_TUNISIA 216 237#define CTRY_TURKEY 90 238#define CTRY_UAE 971 239#define CTRY_UKRAINE 380 240#define CTRY_UNITED_KINGDOM 44 241#define CTRY_UNITED_STATES 1 242#define CTRY_URUGUAY 598 243#define CTRY_UZBEKISTAN 7 244#define CTRY_VENEZUELA 58 245#define CTRY_VIET_NAM 84 246#define CTRY_YEMEN 967 247#define CTRY_ZIMBABWE 263 248 249#define LOCALE_NOUSEROVERRIDE 0x80000000 250#define LOCALE_USE_CP_ACP 0x40000000 251#define LOCALE_RETURN_NUMBER 0x20000000 252 253#define LOCALE_ILANGUAGE 0x00000001 254#define LOCALE_SLANGUAGE 0x00000002 255#define LOCALE_SENGLANGUAGE 0x00001001 256#define LOCALE_SABBREVLANGNAME 0x00000003 257#define LOCALE_SNATIVELANGNAME 0x00000004 258 259#define LOCALE_ICOUNTRY 0x00000005 260#define LOCALE_SCOUNTRY 0x00000006 261#define LOCALE_SENGCOUNTRY 0x00001002 262#define LOCALE_SABBREVCTRYNAME 0x00000007 263#define LOCALE_SNATIVECTRYNAME 0x00000008 264 265#define LOCALE_IDEFAULTLANGUAGE 0x00000009 266#define LOCALE_IDEFAULTCOUNTRY 0x0000000A 267#define LOCALE_IDEFAULTCODEPAGE 0x0000000B 268#define LOCALE_IDEFAULTANSICODEPAGE 0x00001004 269#define LOCALE_IDEFAULTMACCODEPAGE 0x00001011 270 271#define LOCALE_SLIST 0x0000000C 272#define LOCALE_IMEASURE 0x0000000D 273 274#define LOCALE_SDECIMAL 0x0000000E 275#define LOCALE_STHOUSAND 0x0000000F 276#define LOCALE_SGROUPING 0x00000010 277#define LOCALE_IDIGITS 0x00000011 278#define LOCALE_ILZERO 0x00000012 279#define LOCALE_INEGNUMBER 0x00001010 280#define LOCALE_SNATIVEDIGITS 0x00000013 281 282#define LOCALE_SCURRENCY 0x00000014 283#define LOCALE_SINTLSYMBOL 0x00000015 284#define LOCALE_SMONDECIMALSEP 0x00000016 285#define LOCALE_SMONTHOUSANDSEP 0x00000017 286#define LOCALE_SMONGROUPING 0x00000018 287#define LOCALE_ICURRDIGITS 0x00000019 288#define LOCALE_IINTLCURRDIGITS 0x0000001A 289#define LOCALE_ICURRENCY 0x0000001B 290#define LOCALE_INEGCURR 0x0000001C 291 292#define LOCALE_SDATE 0x0000001D 293#define LOCALE_STIME 0x0000001E 294#define LOCALE_SSHORTDATE 0x0000001F 295#define LOCALE_SLONGDATE 0x00000020 296#define LOCALE_STIMEFORMAT 0x00001003 297#define LOCALE_IDATE 0x00000021 298#define LOCALE_ILDATE 0x00000022 299#define LOCALE_ITIME 0x00000023 300#define LOCALE_ITIMEMARKPOSN 0x00001005 301#define LOCALE_ICENTURY 0x00000024 302#define LOCALE_ITLZERO 0x00000025 303#define LOCALE_IDAYLZERO 0x00000026 304#define LOCALE_IMONLZERO 0x00000027 305#define LOCALE_S1159 0x00000028 306#define LOCALE_S2359 0x00000029 307 308#define LOCALE_ICALENDARTYPE 0x00001009 309#define LOCALE_IOPTIONALCALENDAR 0x0000100B 310#define LOCALE_IFIRSTDAYOFWEEK 0x0000100C 311#define LOCALE_IFIRSTWEEKOFYEAR 0x0000100D 312 313#define LOCALE_SDAYNAME1 0x0000002A 314#define LOCALE_SDAYNAME2 0x0000002B 315#define LOCALE_SDAYNAME3 0x0000002C 316#define LOCALE_SDAYNAME4 0x0000002D 317#define LOCALE_SDAYNAME5 0x0000002E 318#define LOCALE_SDAYNAME6 0x0000002F 319#define LOCALE_SDAYNAME7 0x00000030 320#define LOCALE_SABBREVDAYNAME1 0x00000031 321#define LOCALE_SABBREVDAYNAME2 0x00000032 322#define LOCALE_SABBREVDAYNAME3 0x00000033 323#define LOCALE_SABBREVDAYNAME4 0x00000034 324#define LOCALE_SABBREVDAYNAME5 0x00000035 325#define LOCALE_SABBREVDAYNAME6 0x00000036 326#define LOCALE_SABBREVDAYNAME7 0x00000037 327#define LOCALE_SMONTHNAME1 0x00000038 328#define LOCALE_SMONTHNAME2 0x00000039 329#define LOCALE_SMONTHNAME3 0x0000003A 330#define LOCALE_SMONTHNAME4 0x0000003B 331#define LOCALE_SMONTHNAME5 0x0000003C 332#define LOCALE_SMONTHNAME6 0x0000003D 333#define LOCALE_SMONTHNAME7 0x0000003E 334#define LOCALE_SMONTHNAME8 0x0000003F 335#define LOCALE_SMONTHNAME9 0x00000040 336#define LOCALE_SMONTHNAME10 0x00000041 337#define LOCALE_SMONTHNAME11 0x00000042 338#define LOCALE_SMONTHNAME12 0x00000043 339#define LOCALE_SMONTHNAME13 0x0000100E 340#define LOCALE_SABBREVMONTHNAME1 0x00000044 341#define LOCALE_SABBREVMONTHNAME2 0x00000045 342#define LOCALE_SABBREVMONTHNAME3 0x00000046 343#define LOCALE_SABBREVMONTHNAME4 0x00000047 344#define LOCALE_SABBREVMONTHNAME5 0x00000048 345#define LOCALE_SABBREVMONTHNAME6 0x00000049 346#define LOCALE_SABBREVMONTHNAME7 0x0000004A 347#define LOCALE_SABBREVMONTHNAME8 0x0000004B 348#define LOCALE_SABBREVMONTHNAME9 0x0000004C 349#define LOCALE_SABBREVMONTHNAME10 0x0000004D 350#define LOCALE_SABBREVMONTHNAME11 0x0000004E 351#define LOCALE_SABBREVMONTHNAME12 0x0000004F 352#define LOCALE_SABBREVMONTHNAME13 0x0000100F 353 354#define LOCALE_SPOSITIVESIGN 0x00000050 355#define LOCALE_SNEGATIVESIGN 0x00000051 356#define LOCALE_IPOSSIGNPOSN 0x00000052 357#define LOCALE_INEGSIGNPOSN 0x00000053 358#define LOCALE_IPOSSYMPRECEDES 0x00000054 359#define LOCALE_IPOSSEPBYSPACE 0x00000055 360#define LOCALE_INEGSYMPRECEDES 0x00000056 361#define LOCALE_INEGSEPBYSPACE 0x00000057 362#define LOCALE_FONTSIGNATURE 0x00000058 363#define LOCALE_SISO639LANGNAME 0x00000059 364#define LOCALE_SISO3166CTRYNAME 0x0000005A 365 366#define LOCALE_IDEFAULTEBCDICCODEPAGE 0x00001012 367#define LOCALE_IPAPERSIZE 0x0000100A 368#define LOCALE_SENGCURRNAME 0x00001007 369#define LOCALE_SNATIVECURRNAME 0x00001008 370#define LOCALE_SYEARMONTH 0x00001006 371#define LOCALE_SSORTNAME 0x00001013 372#define LOCALE_IDIGITSUBSTITUTION 0x00001014 373 374#define TIME_NOMINUTESORSECONDS 0x00000001 375#define TIME_NOSECONDS 0x00000002 376#define TIME_NOTIMEMARKER 0x00000004 377#define TIME_FORCE24HOURFORMAT 0x00000008 378 379#define DATE_SHORTDATE 0x00000001 380#define DATE_LONGDATE 0x00000002 381#define DATE_USE_ALT_CALENDAR 0x00000004 382#define DATE_YEARMONTH 0x00000008 383#define DATE_LTRREADING 0x00000010 384#define DATE_RTLREADING 0x00000020 385 386#define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE 387#define CAL_USE_CP_ACP LOCALE_USE_CP_ACP 388#define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER 389 390#define CAL_ICALINTVALUE 0x00000001 391#define CAL_SCALNAME 0x00000002 392#define CAL_IYEAROFFSETRANGE 0x00000003 393#define CAL_SERASTRING 0x00000004 394#define CAL_SSHORTDATE 0x00000005 395#define CAL_SLONGDATE 0x00000006 396#define CAL_SDAYNAME1 0x00000007 397#define CAL_SDAYNAME2 0x00000008 398#define CAL_SDAYNAME3 0x00000009 399#define CAL_SDAYNAME4 0x0000000a 400#define CAL_SDAYNAME5 0x0000000b 401#define CAL_SDAYNAME6 0x0000000c 402#define CAL_SDAYNAME7 0x0000000d 403#define CAL_SABBREVDAYNAME1 0x0000000e 404#define CAL_SABBREVDAYNAME2 0x0000000f 405#define CAL_SABBREVDAYNAME3 0x00000010 406#define CAL_SABBREVDAYNAME4 0x00000011 407#define CAL_SABBREVDAYNAME5 0x00000012 408#define CAL_SABBREVDAYNAME6 0x00000013 409#define CAL_SABBREVDAYNAME7 0x00000014 410#define CAL_SMONTHNAME1 0x00000015 411#define CAL_SMONTHNAME2 0x00000016 412#define CAL_SMONTHNAME3 0x00000017 413#define CAL_SMONTHNAME4 0x00000018 414#define CAL_SMONTHNAME5 0x00000019 415#define CAL_SMONTHNAME6 0x0000001a 416#define CAL_SMONTHNAME7 0x0000001b 417#define CAL_SMONTHNAME8 0x0000001c 418#define CAL_SMONTHNAME9 0x0000001d 419#define CAL_SMONTHNAME10 0x0000001e 420#define CAL_SMONTHNAME11 0x0000001f 421#define CAL_SMONTHNAME12 0x00000020 422#define CAL_SMONTHNAME13 0x00000021 423#define CAL_SABBREVMONTHNAME1 0x00000022 424#define CAL_SABBREVMONTHNAME2 0x00000023 425#define CAL_SABBREVMONTHNAME3 0x00000024 426#define CAL_SABBREVMONTHNAME4 0x00000025 427#define CAL_SABBREVMONTHNAME5 0x00000026 428#define CAL_SABBREVMONTHNAME6 0x00000027 429#define CAL_SABBREVMONTHNAME7 0x00000028 430#define CAL_SABBREVMONTHNAME8 0x00000029 431#define CAL_SABBREVMONTHNAME9 0x0000002a 432#define CAL_SABBREVMONTHNAME10 0x0000002b 433#define CAL_SABBREVMONTHNAME11 0x0000002c 434#define CAL_SABBREVMONTHNAME12 0x0000002d 435#define CAL_SABBREVMONTHNAME13 0x0000002e 436#define CAL_SYEARMONTH 0x0000002f 437#define CAL_ITWODIGITYEARMAX 0x00000030 438 439#define ENUM_ALL_CALENDARS 0xffffffff 440 441#define CAL_GREGORIAN 1 442#define CAL_GREGORIAN_US 2 443#define CAL_JAPAN 3 444#define CAL_TAIWAN 4 445#define CAL_KOREA 5 446#define CAL_HIJRI 6 447#define CAL_THAI 7 448#define CAL_HEBREW 8 449#define CAL_GREGORIAN_ME_FRENCH 9 450#define CAL_GREGORIAN_ARABIC 10 451#define CAL_GREGORIAN_XLIT_ENGLISH 11 452#define CAL_GREGORIAN_XLIT_FRENCH 12 453#if (_WIN32_WINNT >= 0x0600) 454#define CAL_UMALQURA 23 455#endif /* (_WIN32_WINNT >= 0x0600) */ 456 457#define LGRPID_WESTERN_EUROPE 0x0001 458#define LGRPID_CENTRAL_EUROPE 0x0002 459#define LGRPID_BALTIC 0x0003 460#define LGRPID_GREEK 0x0004 461#define LGRPID_CYRILLIC 0x0005 462#define LGRPID_TURKISH 0x0006 463#define LGRPID_JAPANESE 0x0007 464#define LGRPID_KOREAN 0x0008 465#define LGRPID_TRADITIONAL_CHINESE 0x0009 466#define LGRPID_SIMPLIFIED_CHINESE 0x000a 467#define LGRPID_THAI 0x000b 468#define LGRPID_HEBREW 0x000c 469#define LGRPID_ARABIC 0x000d 470#define LGRPID_VIETNAMESE 0x000e 471#define LGRPID_INDIC 0x000f 472#define LGRPID_GEORGIAN 0x0010 473#define LGRPID_ARMENIAN 0x0011 474#define IS_HIGH_SURROGATE(c) (((c) & 0xFC00) == 0xD800) 475#define IS_LOW_SURROGATE(c) (((c) & 0xFC00) == 0xDC00) 476#define IS_SURROGATE_PAIR(hc,lc) (IS_HIGH_SURROGATE(hc) && IS_LOW_SURROGATE(lc)) 477 478#define IDN_ALLOW_UNASSIGNED 0x1 479#define IDN_USE_STD3_ASCII_RULES 0x2 480 481 typedef DWORD LGRPID; 482 typedef DWORD LCTYPE; 483 typedef DWORD CALTYPE; 484 typedef DWORD CALID; 485 486 typedef struct _cpinfo { 487 UINT MaxCharSize; 488 BYTE DefaultChar[MAX_DEFAULTCHAR]; 489 BYTE LeadByte[MAX_LEADBYTES]; 490 } CPINFO,*LPCPINFO; 491 492 typedef struct _cpinfoexA { 493 UINT MaxCharSize; 494 BYTE DefaultChar[MAX_DEFAULTCHAR]; 495 BYTE LeadByte[MAX_LEADBYTES]; 496 WCHAR UnicodeDefaultChar; 497 UINT CodePage; 498 CHAR CodePageName[MAX_PATH]; 499 } CPINFOEXA,*LPCPINFOEXA; 500 501 typedef struct _cpinfoexW { 502 UINT MaxCharSize; 503 BYTE DefaultChar[MAX_DEFAULTCHAR]; 504 BYTE LeadByte[MAX_LEADBYTES]; 505 WCHAR UnicodeDefaultChar; 506 UINT CodePage; 507 WCHAR CodePageName[MAX_PATH]; 508 } CPINFOEXW,*LPCPINFOEXW; 509 510 __MINGW_TYPEDEF_AW(CPINFOEX) 511 __MINGW_TYPEDEF_AW(LPCPINFOEX) 512 513 typedef struct _numberfmtA { 514 UINT NumDigits; 515 UINT LeadingZero; 516 UINT Grouping; 517 LPSTR lpDecimalSep; 518 LPSTR lpThousandSep; 519 UINT NegativeOrder; 520 } NUMBERFMTA,*LPNUMBERFMTA; 521 522 typedef struct _numberfmtW { 523 UINT NumDigits; 524 UINT LeadingZero; 525 UINT Grouping; 526 LPWSTR lpDecimalSep; 527 LPWSTR lpThousandSep; 528 UINT NegativeOrder; 529 } NUMBERFMTW,*LPNUMBERFMTW; 530 531 __MINGW_TYPEDEF_AW(NUMBERFMT) 532 __MINGW_TYPEDEF_AW(LPNUMBERFMT) 533 534 typedef struct _currencyfmtA { 535 UINT NumDigits; 536 UINT LeadingZero; 537 UINT Grouping; 538 LPSTR lpDecimalSep; 539 LPSTR lpThousandSep; 540 UINT NegativeOrder; 541 UINT PositiveOrder; 542 LPSTR lpCurrencySymbol; 543 } CURRENCYFMTA,*LPCURRENCYFMTA; 544 545 typedef struct _currencyfmtW { 546 UINT NumDigits; 547 UINT LeadingZero; 548 UINT Grouping; 549 LPWSTR lpDecimalSep; 550 LPWSTR lpThousandSep; 551 UINT NegativeOrder; 552 UINT PositiveOrder; 553 LPWSTR lpCurrencySymbol; 554 } CURRENCYFMTW,*LPCURRENCYFMTW; 555 556 __MINGW_TYPEDEF_AW(CURRENCYFMT) 557 __MINGW_TYPEDEF_AW(LPCURRENCYFMT) 558 559 enum SYSNLS_FUNCTION { 560 COMPARE_STRING = 0x0001 561 }; 562 563 typedef DWORD NLS_FUNCTION; 564 565 typedef struct _nlsversioninfo{ 566 DWORD dwNLSVersionInfoSize; 567 DWORD dwNLSVersion; 568 DWORD dwDefinedVersion; 569 } NLSVERSIONINFO,*LPNLSVERSIONINFO; 570 571 typedef LONG GEOID; 572 typedef DWORD GEOTYPE; 573 typedef DWORD GEOCLASS; 574 575#define GEOID_NOT_AVAILABLE -1 576 577 enum SYSGEOTYPE { 578 GEO_NATION = 0x0001,GEO_LATITUDE = 0x0002,GEO_LONGITUDE = 0x0003,GEO_ISO2 = 0x0004,GEO_ISO3 = 0x0005,GEO_RFC1766 = 0x0006,GEO_LCID = 0x0007, 579 GEO_FRIENDLYNAME= 0x0008,GEO_OFFICIALNAME= 0x0009,GEO_TIMEZONES = 0x000A,GEO_OFFICIALLANGUAGES = 0x000B 580 }; 581 582 enum SYSGEOCLASS { 583 GEOCLASS_NATION = 16,GEOCLASS_REGION = 14 584 }; 585 586 typedef enum _NORM_FORM { 587 NormalizationOther = 0, 588 NormalizationC = 0x1, 589 NormalizationD = 0x2, 590 NormalizationKC = 0x5, 591 NormalizationKD = 0x6 592 } NORM_FORM; 593 594 typedef WINBOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCA)(LGRPID,LPSTR,LPSTR,DWORD,LONG_PTR); 595 typedef WINBOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCA)(LGRPID,LCID,LPSTR,LONG_PTR); 596 typedef WINBOOL (CALLBACK *UILANGUAGE_ENUMPROCA)(LPSTR,LONG_PTR); 597 typedef WINBOOL (CALLBACK *LOCALE_ENUMPROCA)(LPSTR); 598 typedef WINBOOL (CALLBACK *CODEPAGE_ENUMPROCA)(LPSTR); 599 typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCA)(LPSTR); 600 typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCEXA)(LPSTR,CALID); 601 typedef WINBOOL (CALLBACK *TIMEFMT_ENUMPROCA)(LPSTR); 602 typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCA)(LPSTR); 603 typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCEXA)(LPSTR,CALID); 604 typedef WINBOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCW)(LGRPID,LPWSTR,LPWSTR,DWORD,LONG_PTR); 605 typedef WINBOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCW)(LGRPID,LCID,LPWSTR,LONG_PTR); 606 typedef WINBOOL (CALLBACK *UILANGUAGE_ENUMPROCW)(LPWSTR,LONG_PTR); 607 typedef WINBOOL (CALLBACK *LOCALE_ENUMPROCW)(LPWSTR); 608 typedef WINBOOL (CALLBACK *CODEPAGE_ENUMPROCW)(LPWSTR); 609 typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCW)(LPWSTR); 610 typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCEXW)(LPWSTR,CALID); 611 typedef WINBOOL (CALLBACK *TIMEFMT_ENUMPROCW)(LPWSTR); 612 typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCW)(LPWSTR); 613 typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCEXW)(LPWSTR,CALID); 614 typedef WINBOOL (CALLBACK *GEO_ENUMPROC)(GEOID); 615 616#define LANGUAGEGROUP_ENUMPROC __MINGW_NAME_AW(LANGUAGEGROUP_ENUMPROC) 617#define LANGGROUPLOCALE_ENUMPROC __MINGW_NAME_AW(LANGGROUPLOCALE_ENUMPROC) 618#define UILANGUAGE_ENUMPROC __MINGW_NAME_AW(UILANGUAGE_ENUMPROC) 619#define LOCALE_ENUMPROC __MINGW_NAME_AW(LOCALE_ENUMPROC) 620#define CODEPAGE_ENUMPROC __MINGW_NAME_AW(CODEPAGE_ENUMPROC) 621#define DATEFMT_ENUMPROC __MINGW_NAME_AW(DATEFMT_ENUMPROC) 622#define DATEFMT_ENUMPROCEX __MINGW_NAME_AW(DATEFMT_ENUMPROCEX) 623#define TIMEFMT_ENUMPROC __MINGW_NAME_AW(TIMEFMT_ENUMPROC) 624#define CALINFO_ENUMPROC __MINGW_NAME_AW(CALINFO_ENUMPROC) 625#define CALINFO_ENUMPROCEX __MINGW_NAME_AW(CALINFO_ENUMPROCEX) 626 627#define GetCPInfoEx __MINGW_NAME_AW(GetCPInfoEx) 628#define CompareString __MINGW_NAME_AW(CompareString) 629#define LCMapString __MINGW_NAME_AW(LCMapString) 630#define GetLocaleInfo __MINGW_NAME_AW(GetLocaleInfo) 631#define SetLocaleInfo __MINGW_NAME_AW(SetLocaleInfo) 632#define GetCalendarInfo __MINGW_NAME_AW(GetCalendarInfo) 633#define SetCalendarInfo __MINGW_NAME_AW(SetCalendarInfo) 634#define GetTimeFormat __MINGW_NAME_AW(GetTimeFormat) 635#define GetDateFormat __MINGW_NAME_AW(GetDateFormat) 636#define GetNumberFormat __MINGW_NAME_AW(GetNumberFormat) 637#define GetCurrencyFormat __MINGW_NAME_AW(GetCurrencyFormat) 638#define EnumCalendarInfo __MINGW_NAME_AW(EnumCalendarInfo) 639#define EnumCalendarInfoEx __MINGW_NAME_AW(EnumCalendarInfoEx) 640#define EnumTimeFormats __MINGW_NAME_AW(EnumTimeFormats) 641#define EnumDateFormats __MINGW_NAME_AW(EnumDateFormats) 642#define EnumDateFormatsEx __MINGW_NAME_AW(EnumDateFormatsEx) 643#define GetGeoInfo __MINGW_NAME_AW(GetGeoInfo) 644#define GetStringTypeEx __MINGW_NAME_AW(GetStringTypeEx) 645#define FoldString __MINGW_NAME_AW(FoldString) 646#define EnumSystemLanguageGroups __MINGW_NAME_AW(EnumSystemLanguageGroups) 647#define EnumLanguageGroupLocales __MINGW_NAME_AW(EnumLanguageGroupLocales) 648#define EnumUILanguages __MINGW_NAME_AW(EnumUILanguages) 649#define EnumSystemLocales __MINGW_NAME_AW(EnumSystemLocales) 650#define EnumSystemCodePages __MINGW_NAME_AW(EnumSystemCodePages) 651 652 WINBASEAPI WINBOOL WINAPI IsValidCodePage(UINT CodePage); 653 WINBASEAPI UINT WINAPI GetACP(void); 654 WINBASEAPI UINT WINAPI GetOEMCP(void); 655 WINBASEAPI WINBOOL WINAPI GetCPInfo(UINT CodePage,LPCPINFO lpCPInfo); 656 WINBASEAPI WINBOOL WINAPI GetCPInfoExA(UINT CodePage,DWORD dwFlags,LPCPINFOEXA lpCPInfoEx); 657 WINBASEAPI WINBOOL WINAPI GetCPInfoExW(UINT CodePage,DWORD dwFlags,LPCPINFOEXW lpCPInfoEx); 658 WINBASEAPI WINBOOL WINAPI IsDBCSLeadByte(BYTE TestChar); 659 WINBASEAPI WINBOOL WINAPI IsDBCSLeadByteEx(UINT CodePage,BYTE TestChar); 660 WINBASEAPI int WINAPI MultiByteToWideChar(UINT CodePage,DWORD dwFlags,LPCSTR lpMultiByteStr,int cbMultiByte,LPWSTR lpWideCharStr,int cchWideChar); 661 WINBASEAPI int WINAPI WideCharToMultiByte(UINT CodePage,DWORD dwFlags,LPCWSTR lpWideCharStr,int cchWideChar,LPSTR lpMultiByteStr,int cbMultiByte,LPCSTR lpDefaultChar,LPBOOL lpUsedDefaultChar); 662 WINBASEAPI int WINAPI CompareStringA(LCID Locale,DWORD dwCmpFlags,LPCSTR lpString1,int cchCount1,LPCSTR lpString2,int cchCount2); 663 WINBASEAPI int WINAPI CompareStringW(LCID Locale,DWORD dwCmpFlags,LPCWSTR lpString1,int cchCount1,LPCWSTR lpString2,int cchCount2); 664 WINBASEAPI int WINAPI LCMapStringA(LCID Locale,DWORD dwMapFlags,LPCSTR lpSrcStr,int cchSrc,LPSTR lpDestStr,int cchDest); 665 WINBASEAPI int WINAPI LCMapStringW(LCID Locale,DWORD dwMapFlags,LPCWSTR lpSrcStr,int cchSrc,LPWSTR lpDestStr,int cchDest); 666 WINBASEAPI int WINAPI GetLocaleInfoA(LCID Locale,LCTYPE LCType,LPSTR lpLCData,int cchData); 667 WINBASEAPI int WINAPI GetLocaleInfoW(LCID Locale,LCTYPE LCType,LPWSTR lpLCData,int cchData); 668 WINBASEAPI WINBOOL WINAPI SetLocaleInfoA(LCID Locale,LCTYPE LCType,LPCSTR lpLCData); 669 WINBASEAPI WINBOOL WINAPI SetLocaleInfoW(LCID Locale,LCTYPE LCType,LPCWSTR lpLCData); 670 WINBASEAPI int WINAPI GetCalendarInfoA(LCID Locale,CALID Calendar,CALTYPE CalType,LPSTR lpCalData,int cchData,LPDWORD lpValue); 671 WINBASEAPI int WINAPI GetCalendarInfoW(LCID Locale,CALID Calendar,CALTYPE CalType,LPWSTR lpCalData,int cchData,LPDWORD lpValue); 672 WINBASEAPI WINBOOL WINAPI SetCalendarInfoA(LCID Locale,CALID Calendar,CALTYPE CalType,LPCSTR lpCalData); 673 WINBASEAPI WINBOOL WINAPI SetCalendarInfoW(LCID Locale,CALID Calendar,CALTYPE CalType,LPCWSTR lpCalData); 674 WINBASEAPI int WINAPI GetTimeFormatA(LCID Locale,DWORD dwFlags,CONST SYSTEMTIME *lpTime,LPCSTR lpFormat,LPSTR lpTimeStr,int cchTime); 675 WINBASEAPI int WINAPI GetTimeFormatW(LCID Locale,DWORD dwFlags,CONST SYSTEMTIME *lpTime,LPCWSTR lpFormat,LPWSTR lpTimeStr,int cchTime); 676 WINBASEAPI int WINAPI GetDateFormatA(LCID Locale,DWORD dwFlags,CONST SYSTEMTIME *lpDate,LPCSTR lpFormat,LPSTR lpDateStr,int cchDate); 677 WINBASEAPI int WINAPI GetDateFormatW(LCID Locale,DWORD dwFlags,CONST SYSTEMTIME *lpDate,LPCWSTR lpFormat,LPWSTR lpDateStr,int cchDate); 678 WINBASEAPI int WINAPI GetNumberFormatA(LCID Locale,DWORD dwFlags,LPCSTR lpValue,CONST NUMBERFMTA *lpFormat,LPSTR lpNumberStr,int cchNumber); 679 WINBASEAPI int WINAPI GetNumberFormatW(LCID Locale,DWORD dwFlags,LPCWSTR lpValue,CONST NUMBERFMTW *lpFormat,LPWSTR lpNumberStr,int cchNumber); 680 WINBASEAPI int WINAPI GetCurrencyFormatA(LCID Locale,DWORD dwFlags,LPCSTR lpValue,CONST CURRENCYFMTA *lpFormat,LPSTR lpCurrencyStr,int cchCurrency); 681 WINBASEAPI int WINAPI GetCurrencyFormatW(LCID Locale,DWORD dwFlags,LPCWSTR lpValue,CONST CURRENCYFMTW *lpFormat,LPWSTR lpCurrencyStr,int cchCurrency); 682 WINBASEAPI WINBOOL WINAPI EnumCalendarInfoA(CALINFO_ENUMPROCA lpCalInfoEnumProc,LCID Locale,CALID Calendar,CALTYPE CalType); 683 WINBASEAPI WINBOOL WINAPI EnumCalendarInfoW(CALINFO_ENUMPROCW lpCalInfoEnumProc,LCID Locale,CALID Calendar,CALTYPE CalType); 684 WINBASEAPI WINBOOL WINAPI EnumCalendarInfoExA(CALINFO_ENUMPROCEXA lpCalInfoEnumProcEx,LCID Locale,CALID Calendar,CALTYPE CalType); 685 WINBASEAPI WINBOOL WINAPI EnumCalendarInfoExW(CALINFO_ENUMPROCEXW lpCalInfoEnumProcEx,LCID Locale,CALID Calendar,CALTYPE CalType); 686 WINBASEAPI WINBOOL WINAPI EnumTimeFormatsA(TIMEFMT_ENUMPROCA lpTimeFmtEnumProc,LCID Locale,DWORD dwFlags); 687 WINBASEAPI WINBOOL WINAPI EnumTimeFormatsW(TIMEFMT_ENUMPROCW lpTimeFmtEnumProc,LCID Locale,DWORD dwFlags); 688 WINBASEAPI WINBOOL WINAPI EnumDateFormatsA(DATEFMT_ENUMPROCA lpDateFmtEnumProc,LCID Locale,DWORD dwFlags); 689 WINBASEAPI WINBOOL WINAPI EnumDateFormatsW(DATEFMT_ENUMPROCW lpDateFmtEnumProc,LCID Locale,DWORD dwFlags); 690 WINBASEAPI WINBOOL WINAPI EnumDateFormatsExA(DATEFMT_ENUMPROCEXA lpDateFmtEnumProcEx,LCID Locale,DWORD dwFlags); 691 WINBASEAPI WINBOOL WINAPI EnumDateFormatsExW(DATEFMT_ENUMPROCEXW lpDateFmtEnumProcEx,LCID Locale,DWORD dwFlags); 692 WINBASEAPI WINBOOL WINAPI IsValidLanguageGroup(LGRPID LanguageGroup,DWORD dwFlags); 693 WINBASEAPI WINBOOL WINAPI GetNLSVersion(NLS_FUNCTION Function,LCID Locale,LPNLSVERSIONINFO lpVersionInformation); 694 WINBASEAPI WINBOOL WINAPI IsNLSDefinedString(NLS_FUNCTION Function,DWORD dwFlags,LPNLSVERSIONINFO lpVersionInformation,LPCWSTR lpString,INT cchStr); 695 WINBASEAPI WINBOOL WINAPI IsValidLocale(LCID Locale,DWORD dwFlags); 696 WINBASEAPI int WINAPI GetGeoInfoA(GEOID Location,GEOTYPE GeoType,LPSTR lpGeoData,int cchData,LANGID LangId); 697 WINBASEAPI int WINAPI GetGeoInfoW(GEOID Location,GEOTYPE GeoType,LPWSTR lpGeoData,int cchData,LANGID LangId); 698 WINBASEAPI WINBOOL WINAPI EnumSystemGeoID(GEOCLASS GeoClass,GEOID ParentGeoId,GEO_ENUMPROC lpGeoEnumProc); 699 WINBASEAPI GEOID WINAPI GetUserGeoID(GEOCLASS GeoClass); 700 WINBASEAPI WINBOOL WINAPI SetUserGeoID(GEOID GeoId); 701 WINBASEAPI LCID WINAPI ConvertDefaultLocale(LCID Locale); 702 WINBASEAPI LCID WINAPI GetThreadLocale(void); 703 WINBASEAPI WINBOOL WINAPI SetThreadLocale(LCID Locale); 704 WINBASEAPI LANGID WINAPI GetSystemDefaultUILanguage(void); 705 WINBASEAPI LANGID WINAPI GetUserDefaultUILanguage(void); 706 WINBASEAPI LANGID WINAPI GetSystemDefaultLangID(void); 707 WINBASEAPI LANGID WINAPI GetUserDefaultLangID(void); 708 WINBASEAPI LCID WINAPI GetSystemDefaultLCID(void); 709 WINBASEAPI LCID WINAPI GetUserDefaultLCID(void); 710 WINBASEAPI WINBOOL WINAPI GetStringTypeExA(LCID Locale,DWORD dwInfoType,LPCSTR lpSrcStr,int cchSrc,LPWORD lpCharType); 711 WINBASEAPI WINBOOL WINAPI GetStringTypeExW(LCID Locale,DWORD dwInfoType,LPCWSTR lpSrcStr,int cchSrc,LPWORD lpCharType); 712 WINBASEAPI WINBOOL WINAPI GetStringTypeA(LCID Locale,DWORD dwInfoType,LPCSTR lpSrcStr,int cchSrc,LPWORD lpCharType); 713 WINBASEAPI WINBOOL WINAPI GetStringTypeW(DWORD dwInfoType,LPCWSTR lpSrcStr,int cchSrc,LPWORD lpCharType); 714 WINBASEAPI int WINAPI FoldStringA(DWORD dwMapFlags,LPCSTR lpSrcStr,int cchSrc,LPSTR lpDestStr,int cchDest); 715 WINBASEAPI int WINAPI FoldStringW(DWORD dwMapFlags,LPCWSTR lpSrcStr,int cchSrc,LPWSTR lpDestStr,int cchDest); 716 WINBASEAPI WINBOOL WINAPI EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA lpLanguageGroupEnumProc,DWORD dwFlags,LONG_PTR lParam); 717 WINBASEAPI WINBOOL WINAPI EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW lpLanguageGroupEnumProc,DWORD dwFlags,LONG_PTR lParam); 718 WINBASEAPI WINBOOL WINAPI EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA lpLangGroupLocaleEnumProc,LGRPID LanguageGroup,DWORD dwFlags,LONG_PTR lParam); 719 WINBASEAPI WINBOOL WINAPI EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW lpLangGroupLocaleEnumProc,LGRPID LanguageGroup,DWORD dwFlags,LONG_PTR lParam); 720 WINBASEAPI WINBOOL WINAPI EnumUILanguagesA(UILANGUAGE_ENUMPROCA lpUILanguageEnumProc,DWORD dwFlags,LONG_PTR lParam); 721 WINBASEAPI WINBOOL WINAPI EnumUILanguagesW(UILANGUAGE_ENUMPROCW lpUILanguageEnumProc,DWORD dwFlags,LONG_PTR lParam); 722 WINBASEAPI WINBOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA lpLocaleEnumProc,DWORD dwFlags); 723 WINBASEAPI WINBOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW lpLocaleEnumProc,DWORD dwFlags); 724 WINBASEAPI WINBOOL WINAPI EnumSystemCodePagesA(CODEPAGE_ENUMPROCA lpCodePageEnumProc,DWORD dwFlags); 725 WINBASEAPI WINBOOL WINAPI EnumSystemCodePagesW(CODEPAGE_ENUMPROCW lpCodePageEnumProc,DWORD dwFlags); 726 WINBASEAPI WINBOOL WINAPI IsNormalizedString(NORM_FORM NormForm,LPCWSTR lpString,int cwLength); 727 WINBASEAPI int WINAPI NormalizeString(NORM_FORM NormForm,LPCWSTR lpSrcString,int cwSrcLength,LPWSTR lpDstString,int cwDstLength); 728 WINBASEAPI int WINAPI IdnToAscii(DWORD dwFlags,LPCWSTR lpUnicodeCharStr,int cchUnicodeChar,LPWSTR lpASCIICharStr,int cchASCIIChar); 729 WINBASEAPI int WINAPI IdnToNameprepUnicode(DWORD dwFlags,LPCWSTR lpUnicodeCharStr,int cchUnicodeChar,LPWSTR lpNameprepCharStr,int cchNameprepChar); 730 WINBASEAPI int WINAPI IdnToUnicode(DWORD dwFlags,LPCWSTR lpASCIICharStr,int cchASCIIChar,LPWSTR lpUnicodeCharStr,int cchUnicodeChar); 731 732WINBASEAPI LANGID WINAPI SetThreadUILanguage( 733 LANGID LangId 734); 735 736#if (_WIN32_WINNT >= 0x0600) 737 738typedef struct _FILEMUIINFO { 739 DWORD dwSize; 740 DWORD dwVersion; 741 DWORD dwFileType; 742 BYTE pChecksum[16]; 743 BYTE pServiceChecksum[16]; 744 DWORD dwLanguageNameOffset; 745 DWORD dwTypeIDMainSize; 746 DWORD dwTypeIDMainOffset; 747 DWORD dwTypeNameMainOffset; 748 DWORD dwTypeIDMUISize; 749 DWORD dwTypeIDMUIOffset; 750 DWORD dwTypeNameMUIOffset; 751 BYTE abBuffer[8]; 752} FILEMUIINFO, *PFILEMUIINFO; 753 754typedef struct _nlsversioninfoex { 755 DWORD dwNLSVersionInfoSize; 756 DWORD dwNLSVersion; 757 DWORD dwDefinedVersion; 758 DWORD dwEffectiveId; 759 GUID guidCustomVersion; 760} NLSVERSIONINFOEX, *LPNLSVERSIONINFOEX; 761 762WINBASEAPI int WINAPI CompareStringEx( 763 LPCWSTR lpLocaleName, 764 DWORD dwCmpFlags, 765 LPCWSTR lpString1, 766 int cchCount1, 767 LPCWSTR lpString2, 768 int cchCount2, 769 LPNLSVERSIONINFO lpVersionInformation, 770 LPVOID lpReserved, 771 LPARAM lParam 772); 773 774WINBASEAPI int WINAPI CompareStringOrdinal( 775 LPCWSTR lpString1, 776 int cchCount1, 777 LPCWSTR lpString2, 778 int cchCount2, 779 WINBOOL bIgnoreCase 780); 781 782typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCEXEX)( 783 LPWSTR lpCalendarInfoString, 784 CALID Calendar, 785 LPWSTR lpReserved, 786 LPARAM lParam 787); 788 789typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCEXEX)( 790 LPWSTR lpDateFormatString, 791 CALID CalendarID, 792 LPARAM lParam 793); 794 795WINBASEAPI WINBOOL WINAPI EnumCalendarInfoExEx( 796 CALINFO_ENUMPROCEXEX pCalInfoEnumProcExEx, 797 LPCWSTR lpLocaleName, 798 CALID Calendar, 799 LPCWSTR lpReserved, 800 CALTYPE CalType, 801 LPARAM lParam 802); 803 804WINBASEAPI WINBOOL WINAPI EnumDateFormatsExEx( 805 DATEFMT_ENUMPROCEXEX lpDateFmtEnumProcExEx, 806 LPCWSTR lpLocaleName, 807 DWORD dwFlags, 808 LPARAM lParam 809); 810 811typedef WINBOOL (CALLBACK *LOCALE_ENUMPROCEX)( 812 LPWSTR lpLocaleString, 813 DWORD dwFlags, 814 LPARAM lParam 815); 816 817WINBASEAPI WINBOOL WINAPI EnumSystemLocalesEx( 818 LOCALE_ENUMPROCEX lpLocaleEnumProcEx, 819 DWORD dwFlags, 820 LPARAM lParam, 821 LPVOID lpReserved 822); 823 824typedef WINBOOL (CALLBACK *TIMEFMT_ENUMPROCEX)( 825 LPWSTR lpTimeFormatString, 826 LPARAM lParam 827); 828 829WINBASEAPI WINBOOL WINAPI EnumTimeFormatsEx( 830 TIMEFMT_ENUMPROCEX lpTimeFmtEnumProcEx, 831 LPCWSTR lpLocaleName, 832 DWORD dwFlags, 833 LPARAM lParam 834); 835 836WINBASEAPI int WINAPI FindNLSString( 837 LCID Locale, 838 DWORD dwFindNLSStringFlags, 839 LPCWSTR lpStringSource, 840 int cchSource, 841 LPCWSTR lpStringValue, 842 int cchValue, 843 LPINT pcchFound 844); 845 846WINBASEAPI int WINAPI FindNLSStringEx( 847 LPCWSTR lpLocaleName, 848 DWORD dwFindNLSStringFlags, 849 LPCWSTR lpStringSource, 850 int cchSource, 851 LPCWSTR lpStringValue, 852 int cchValue, 853 LPINT pcchFound, 854 LPNLSVERSIONINFO lpVersionInformation, 855 LPVOID lpReserved, 856 LPARAM lParam 857); 858 859WINBASEAPI int WINAPI GetDateFormatEx( 860 LPCWSTR lpLocaleName, 861 DWORD dwFlags, 862 const SYSTEMTIME *lpDate, 863 LPCWSTR lpFormat, 864 LPWSTR lpDateStr, 865 int cchDate, 866 LPCWSTR lpCalendar 867); 868 869WINBASEAPI int WINAPI GetDurationFormat( 870 LCID Locale, 871 DWORD dwFlags, 872 const SYSTEMTIME *lpDuration, 873 ULONGLONG ullDuration, 874 LPCWSTR lpFormat, 875 LPWSTR lpDurationStr, 876 int cchDuration 877); 878 879WINBASEAPI int WINAPI GetDurationFormatEx( 880 LPCWSTR lpLocaleName, 881 DWORD dwFlags, 882 const SYSTEMTIME *lpDuration, 883 ULONGLONG ullDuration, 884 LPCWSTR lpFormat, 885 LPWSTR lpDurationStr, 886 int cchDuration 887); 888 889WINBASEAPI WINBOOL WINAPI GetFileMUIInfo( 890 DWORD dwFlags, 891 PCWSTR pcwszFilePath, 892 PFILEMUIINFO pFileMUIInfo, 893 DWORD *pcbFileMUIInfo 894); 895 896WINBASEAPI WINBOOL WINAPI GetFileMUIPath( 897 DWORD dwFlags, 898 PCWSTR pcwszFilePath, 899 PWSTR pwszLanguage, 900 PULONG pcchLanguage, 901 PWSTR pwszFileMUIPath, 902 PULONG pcchFileMUIPath, 903 PULONGLONG pululEnumerator 904); 905 906WINBASEAPI int WINAPI GetLocaleInfoEx( 907 LPCWSTR lpLocaleName, 908 LCTYPE LCType, 909 LPWSTR lpLCData, 910 int cchData 911); 912 913WINBASEAPI WINBOOL WINAPI GetNLSVersion( 914 NLS_FUNCTION Function, 915 LCID Locale, 916 LPNLSVERSIONINFO lpVersionInformation 917); 918 919WINBASEAPI WINBOOL WINAPI GetNLSVersionEx( 920 NLS_FUNCTION function, 921 LPCWSTR lpLocaleName, 922 LPNLSVERSIONINFOEX lpVersionInformation 923); 924 925WINBASEAPI int WINAPI GetNumberFormatEx( 926 LPCWSTR lpLocaleName, 927 DWORD dwFlags, 928 LPCWSTR lpValue, 929 const NUMBERFMT *lpFormat, 930 LPWSTR lpNumberStr, 931 int cchNumber 932); 933 934WINBASEAPI int WINAPI GetStringScripts( 935 DWORD dwFlags, 936 LPCWSTR lpString, 937 int cchString, 938 LPWSTR lpScripts, 939 int cchScripts 940); 941 942WINBASEAPI int WINAPI GetSystemDefaultLocaleName( 943 LPWSTR lpLocaleName, 944 int cchLocaleName 945); 946 947typedef WCHAR *PZZWSTR; /*__nullnullterminated*/ 948typedef CONST WCHAR *PCZZWSTR; /*__nullnullterminated*/ 949 950WINBASEAPI WINBOOL WINAPI GetSystemPreferredUILanguages( 951 DWORD dwFlags, 952 PULONG pulNumLanguages, 953 PZZWSTR pwszLanguagesBuffer, 954 PULONG pcchLanguagesBuffer 955); 956 957WINBASEAPI WINBOOL WINAPI GetThreadPreferredUILanguages( 958 DWORD dwFlags, 959 PULONG pulNumLanguages, 960 PZZWSTR pwszLanguagesBuffer, 961 PULONG pcchLanguagesBuffer 962); 963 964WINBASEAPI LANGID WINAPI GetThreadUILanguage(void); 965 966WINBASEAPI WINBOOL WINAPI SetThreadPreferredUILanguages( 967 DWORD dwFlags, 968 PCZZWSTR pwszLanguagesBuffer, 969 PULONG pulNumLanguages 970); 971 972WINBASEAPI int WINAPI GetTimeFormatEx( 973 LPCWSTR lpLocaleName, 974 DWORD dwFlags, 975 const SYSTEMTIME *lpTime, 976 LPCWSTR lpFormat, 977 LPWSTR lpTimeStr, 978 int cchTime 979); 980 981WINBASEAPI WINBOOL WINAPI GetUILanguageInfo( 982 DWORD dwFlags, 983 PCZZWSTR pwmszLanguage, 984 PZZWSTR pwszFallbackLanguages, 985 PDWORD pcchFallbackLanguages, 986 PDWORD pdwAttributes 987); 988 989WINBASEAPI int WINAPI GetUserDefaultLocaleName( 990 LPWSTR lpLocaleName, 991 int cchLocaleName 992); 993 994WINBASEAPI WINBOOL WINAPI GetUserPreferredUILanguages( 995 DWORD dwFlags, 996 PULONG pulNumLanguages, 997 PZZWSTR pwszLanguagesBuffer, 998 PULONG pcchLanguagesBuffer 999); 1000 1001WINBASEAPI int WINAPI LCIDToLocaleName( 1002 LCID Locale, 1003 LPWSTR lpName, 1004 int cchName, 1005 DWORD dwFlags 1006); 1007 1008WINBASEAPI int WINAPI LCMapStringEx( 1009 LPCWSTR lpLocaleName, 1010 DWORD dwMapFlags, 1011 LPCWSTR lpSrcStr, 1012 int cchSrc, 1013 LPWSTR lpDestStr, 1014 int cchDest, 1015 LPNLSVERSIONINFO lpVersionInformation, 1016 LPVOID lpReserved, 1017 LPARAM lParam 1018); 1019 1020WINBASEAPI LCID WINAPI LocaleNameToLCID( 1021 LPCWSTR lpName, 1022 DWORD dwFlags 1023); 1024 1025WINBASEAPI WINBOOL WINAPI RtlIsValidLocaleName( 1026 LPCWSTR LocaleName, 1027 ULONG Flags 1028); 1029 1030WINBASEAPI WINBOOL WINAPI VerifyScripts( 1031 DWORD dwFlags, 1032 LPCWSTR lpLocaleScripts, 1033 int cchLocaleScripts, 1034 LPCWSTR lpTestScripts, 1035 int cchTestScripts 1036); 1037 1038#endif /* (_WIN32_WINNT >= 0x0600) */ 1039 1040#if (_WIN32_WINNT >= 0x0601) 1041WINBASEAPI WINBOOL WINAPI GetProcessPreferredUILanguages( 1042 DWORD dwFlags, 1043 PULONG pulNumLanguages, 1044 PZZWSTR pwszLanguagesBuffer, 1045 PULONG pcchLanguagesBuffer 1046); 1047 1048#endif /* (_WIN32_WINNT >= 0x0601) */ 1049 1050#endif 1051 1052#ifdef __cplusplus 1053} 1054#endif 1055#endif 1056