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