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