| 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 |