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