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