Artifact 36a7fbecd1a8b4668365eeb38f1db6c32c6eef32
- File
src/win32/winnls.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
/***********************************************************************\ * winnls.d * * * * Windows API header module * * * * Translated from MinGW Windows headers * * by Stewart Gordon * * * * Placed into public domain * \***********************************************************************/ module win32.winnls; pragma(lib, "kernel32"); private import win32.basetsd, win32.w32api, win32.winbase, win32.windef; alias DWORD LCTYPE, CALTYPE, CALID, LGRPID, GEOID, GEOTYPE, GEOCLASS; const size_t MAX_DEFAULTCHAR = 2, MAX_LEADBYTES = 12; const LCTYPE LOCALE_USE_CP_ACP = 0x40000000, LOCALE_RETURN_NUMBER = 0x20000000; enum : LCTYPE { LOCALE_ILANGUAGE = 1, LOCALE_SLANGUAGE, LOCALE_SABBREVLANGNAME, LOCALE_SNATIVELANGNAME, LOCALE_ICOUNTRY, LOCALE_SCOUNTRY, LOCALE_SABBREVCTRYNAME, LOCALE_SNATIVECTRYNAME, LOCALE_IDEFAULTLANGUAGE, LOCALE_IDEFAULTCOUNTRY, LOCALE_IDEFAULTCODEPAGE, LOCALE_SLIST, LOCALE_IMEASURE, LOCALE_SDECIMAL, LOCALE_STHOUSAND, LOCALE_SGROUPING, LOCALE_IDIGITS, LOCALE_ILZERO, LOCALE_SNATIVEDIGITS, LOCALE_SCURRENCY, LOCALE_SINTLSYMBOL, LOCALE_SMONDECIMALSEP, LOCALE_SMONTHOUSANDSEP, LOCALE_SMONGROUPING, LOCALE_ICURRDIGITS, LOCALE_IINTLCURRDIGITS, LOCALE_ICURRENCY, LOCALE_INEGCURR, LOCALE_SDATE, LOCALE_STIME, LOCALE_SSHORTDATE, LOCALE_SLONGDATE, LOCALE_IDATE, LOCALE_ILDATE, LOCALE_ITIME, LOCALE_ICENTURY, LOCALE_ITLZERO, LOCALE_IDAYLZERO, LOCALE_IMONLZERO, LOCALE_S1159, LOCALE_S2359, LOCALE_SDAYNAME1, LOCALE_SDAYNAME2, LOCALE_SDAYNAME3, LOCALE_SDAYNAME4, LOCALE_SDAYNAME5, LOCALE_SDAYNAME6, LOCALE_SDAYNAME7, LOCALE_SABBREVDAYNAME1, LOCALE_SABBREVDAYNAME2, LOCALE_SABBREVDAYNAME3, LOCALE_SABBREVDAYNAME4, LOCALE_SABBREVDAYNAME5, LOCALE_SABBREVDAYNAME6, LOCALE_SABBREVDAYNAME7, LOCALE_SMONTHNAME1, LOCALE_SMONTHNAME2, LOCALE_SMONTHNAME3, LOCALE_SMONTHNAME4, LOCALE_SMONTHNAME5, LOCALE_SMONTHNAME6, LOCALE_SMONTHNAME7, LOCALE_SMONTHNAME8, LOCALE_SMONTHNAME9, LOCALE_SMONTHNAME10, LOCALE_SMONTHNAME11, LOCALE_SMONTHNAME12, LOCALE_SABBREVMONTHNAME1, LOCALE_SABBREVMONTHNAME2, LOCALE_SABBREVMONTHNAME3, LOCALE_SABBREVMONTHNAME4, LOCALE_SABBREVMONTHNAME5, LOCALE_SABBREVMONTHNAME6, LOCALE_SABBREVMONTHNAME7, LOCALE_SABBREVMONTHNAME8, LOCALE_SABBREVMONTHNAME9, LOCALE_SABBREVMONTHNAME10, LOCALE_SABBREVMONTHNAME11, LOCALE_SABBREVMONTHNAME12, LOCALE_SPOSITIVESIGN, LOCALE_SNEGATIVESIGN, LOCALE_IPOSSIGNPOSN, LOCALE_INEGSIGNPOSN, LOCALE_IPOSSYMPRECEDES, LOCALE_IPOSSEPBYSPACE, LOCALE_INEGSYMPRECEDES, LOCALE_INEGSEPBYSPACE, LOCALE_FONTSIGNATURE, LOCALE_SISO639LANGNAME, LOCALE_SISO3166CTRYNAME, // = 90 LOCALE_SENGLANGUAGE = 0x1001, LOCALE_SENGCOUNTRY = 0x1002, LOCALE_IDEFAULTANSICODEPAGE = 0x1004, LOCALE_INEGNUMBER = 0x1010, LOCALE_STIMEFORMAT = 0x1003, LOCALE_ITIMEMARKPOSN = 0x1005, LOCALE_ICALENDARTYPE = 0x1009, LOCALE_IOPTIONALCALENDAR = 0x100B, LOCALE_IFIRSTDAYOFWEEK = 0x100C, LOCALE_IFIRSTWEEKOFYEAR = 0x100D, LOCALE_SMONTHNAME13 = 0x100E, LOCALE_SABBREVMONTHNAME13 = 0x100F } enum : LCID { LOCALE_USER_DEFAULT = 0x400, LOCALE_SYSTEM_DEFAULT = 0x800 } const DWORD NORM_IGNORECASE = 1, NORM_IGNORENONSPACE = 2, NORM_IGNORESYMBOLS = 4, SORT_STRINGSORT = 0x01000, NORM_IGNOREKANATYPE = 0x10000, NORM_IGNOREWIDTH = 0x20000; const DWORD LCMAP_LOWERCASE = 0x00000100, LCMAP_UPPERCASE = 0x00000200, LCMAP_SORTKEY = 0x00000400, LCMAP_BYTEREV = 0x00000800, LCMAP_HIRAGANA = 0x00100000, LCMAP_KATAKANA = 0x00200000, LCMAP_HALFWIDTH = 0x00400000, LCMAP_FULLWIDTH = 0x00800000, LCMAP_LINGUISTIC_CASING = 0x01000000, LCMAP_SIMPLIFIED_CHINESE = 0x02000000, LCMAP_TRADITIONAL_CHINESE = 0x04000000; const CALID ENUM_ALL_CALENDARS = -1; const DWORD DATE_SHORTDATE = 1, DATE_LONGDATE = 2, DATE_USE_ALT_CALENDAR = 4, LOCALE_NOUSEROVERRIDE = 0x80000000; enum : DWORD { CP_INSTALLED = 1, CP_SUPPORTED } enum : DWORD { LCID_INSTALLED = 1, LCID_SUPPORTED = 2, LCID_ALTERNATE_SORTS = 4 } const DWORD MAP_FOLDCZONE = 16, MAP_PRECOMPOSED = 32, MAP_COMPOSITE = 64, MAP_FOLDDIGITS = 128; enum : UINT { CP_ACP, CP_OEMCP, CP_MACCP, CP_THREAD_ACP, // = 3 CP_SYMBOL = 42, CP_UTF7 = 65000, CP_UTF8 = 65001 } enum : DWORD { CT_CTYPE1 = 1, CT_CTYPE2 = 2, CT_CTYPE3 = 4 } const WORD C1_UPPER = 1, C1_LOWER = 2, C1_DIGIT = 4, C1_SPACE = 8, C1_PUNCT = 16, C1_CNTRL = 32, C1_BLANK = 64, C1_XDIGIT = 128, C1_ALPHA = 256; enum : WORD { C2_NOTAPPLICABLE, C2_LEFTTORIGHT, C2_RIGHTTOLEFT, C2_EUROPENUMBER, C2_EUROPESEPARATOR, C2_EUROPETERMINATOR, C2_ARABICNUMBER, C2_COMMONSEPARATOR, C2_BLOCKSEPARATOR, C2_SEGMENTSEPARATOR, C2_WHITESPACE, C2_OTHERNEUTRAL // = 11 } const WORD C3_NOTAPPLICABLE = 0, C3_NONSPACING = 1, C3_DIACRITIC = 2, C3_VOWELMARK = 4, C3_SYMBOL = 8, C3_KATAKANA = 0x0010, C3_HIRAGANA = 0x0020, C3_HALFWIDTH = 0x0040, C3_FULLWIDTH = 0x0080, C3_IDEOGRAPH = 0x0100, C3_KASHIDA = 0x0200, C3_LEXICAL = 0x0400, C3_ALPHA = 0x8000; const DWORD TIME_NOMINUTESORSECONDS = 1, TIME_NOSECONDS = 2, TIME_NOTIMEMARKER = 4, TIME_FORCE24HOURFORMAT = 8; const DWORD MB_PRECOMPOSED = 1, MB_COMPOSITE = 2, MB_USEGLYPHCHARS = 4, MB_ERR_INVALID_CHARS = 8; const DWORD WC_DISCARDNS = 16, WC_SEPCHARS = 32, WC_DEFAULTCHAR = 64, WC_COMPOSITECHECK = 512; enum : LONG { CTRY_DEFAULT = 0, CTRY_DOMINICAN_REPUBLIC = 1, CTRY_PUERTO_RICO = 1, CTRY_CARIBBEAN = 1, CTRY_JAMAICA = 1, CTRY_UNITED_STATES = 1, CTRY_TRINIDAD_Y_TOBAGO = 1, CTRY_CANADA = 2, CTRY_RUSSIA = 7, CTRY_UZBEKISTAN = 7, CTRY_KAZAKSTAN = 7, CTRY_TATARSTAN = 7, CTRY_EGYPT = 20, CTRY_SOUTH_AFRICA = 27, CTRY_GREECE = 30, CTRY_NETHERLANDS = 31, CTRY_BELGIUM = 32, CTRY_FRANCE = 33, CTRY_MONACO = 33, CTRY_SPAIN = 34, CTRY_HUNGARY = 36, CTRY_ITALY = 39, CTRY_ROMANIA = 40, CTRY_SWITZERLAND = 41, CTRY_LIECHTENSTEIN = 41, CTRY_AUSTRIA = 43, CTRY_UNITED_KINGDOM = 44, CTRY_DENMARK = 45, CTRY_SWEDEN = 46, CTRY_NORWAY = 47, CTRY_POLAND = 48, CTRY_GERMANY = 49, CTRY_PERU = 51, CTRY_MEXICO = 52, CTRY_ARGENTINA = 54, CTRY_BRAZIL = 55, CTRY_CHILE = 56, CTRY_COLOMBIA = 57, CTRY_VENEZUELA = 58, CTRY_MALAYSIA = 60, CTRY_AUSTRALIA = 61, CTRY_INDONESIA = 62, CTRY_PHILIPPINES = 63, CTRY_NEW_ZEALAND = 64, CTRY_SINGAPORE = 65, CTRY_THAILAND = 66, CTRY_JAPAN = 81, CTRY_SOUTH_KOREA = 82, CTRY_VIET_NAM = 84, CTRY_PRCHINA = 86, CTRY_TURKEY = 90, CTRY_INDIA = 91, CTRY_PAKISTAN = 92, CTRY_MOROCCO = 212, CTRY_ALGERIA = 213, CTRY_TUNISIA = 216, CTRY_LIBYA = 218, CTRY_KENYA = 254, CTRY_ZIMBABWE = 263, CTRY_FAEROE_ISLANDS = 298, CTRY_PORTUGAL = 351, CTRY_LUXEMBOURG = 352, CTRY_IRELAND = 353, CTRY_ICELAND = 354, CTRY_ALBANIA = 355, CTRY_FINLAND = 358, CTRY_BULGARIA = 359, CTRY_LITHUANIA = 370, CTRY_LATVIA = 371, CTRY_ESTONIA = 372, CTRY_ARMENIA = 374, CTRY_BELARUS = 375, CTRY_UKRAINE = 380, CTRY_SERBIA = 381, CTRY_CROATIA = 385, CTRY_SLOVENIA = 386, CTRY_MACEDONIA = 389, CTRY_CZECH = 420, CTRY_SLOVAK = 421, CTRY_BELIZE = 501, CTRY_GUATEMALA = 502, CTRY_EL_SALVADOR = 503, CTRY_HONDURAS = 504, CTRY_NICARAGUA = 505, CTRY_COSTA_RICA = 506, CTRY_PANAMA = 507, CTRY_BOLIVIA = 591, CTRY_ECUADOR = 593, CTRY_PARAGUAY = 595, CTRY_URUGUAY = 598, CTRY_BRUNEI_DARUSSALAM = 673, CTRY_HONG_KONG = 852, CTRY_MACAU = 853, CTRY_TAIWAN = 886, CTRY_MALDIVES = 960, CTRY_LEBANON = 961, CTRY_JORDAN = 962, CTRY_SYRIA = 963, CTRY_IRAQ = 964, CTRY_KUWAIT = 965, CTRY_SAUDI_ARABIA = 966, CTRY_YEMEN = 967, CTRY_OMAN = 968, CTRY_UAE = 971, CTRY_ISRAEL = 972, CTRY_BAHRAIN = 973, CTRY_QATAR = 974, CTRY_MONGOLIA = 976, CTRY_IRAN = 981, CTRY_AZERBAIJAN = 994, CTRY_GEORGIA = 995, CTRY_KYRGYZSTAN = 996 } enum : CALTYPE { CAL_ICALINTVALUE = 1, CAL_SCALNAME, CAL_IYEAROFFSETRANGE, CAL_SERASTRING, CAL_SSHORTDATE, CAL_SLONGDATE, CAL_SDAYNAME1, CAL_SDAYNAME2, CAL_SDAYNAME3, CAL_SDAYNAME4, CAL_SDAYNAME5, CAL_SDAYNAME6, CAL_SDAYNAME7, CAL_SABBREVDAYNAME1, CAL_SABBREVDAYNAME2, CAL_SABBREVDAYNAME3, CAL_SABBREVDAYNAME4, CAL_SABBREVDAYNAME5, CAL_SABBREVDAYNAME6, CAL_SABBREVDAYNAME7, CAL_SMONTHNAME1, CAL_SMONTHNAME2, CAL_SMONTHNAME3, CAL_SMONTHNAME4, CAL_SMONTHNAME5, CAL_SMONTHNAME6, CAL_SMONTHNAME7, CAL_SMONTHNAME8, CAL_SMONTHNAME9, CAL_SMONTHNAME10, CAL_SMONTHNAME11, CAL_SMONTHNAME12, CAL_SMONTHNAME13, CAL_SABBREVMONTHNAME1, CAL_SABBREVMONTHNAME2, CAL_SABBREVMONTHNAME3, CAL_SABBREVMONTHNAME4, CAL_SABBREVMONTHNAME5, CAL_SABBREVMONTHNAME6, CAL_SABBREVMONTHNAME7, CAL_SABBREVMONTHNAME8, CAL_SABBREVMONTHNAME9, CAL_SABBREVMONTHNAME10, CAL_SABBREVMONTHNAME11, CAL_SABBREVMONTHNAME12, CAL_SABBREVMONTHNAME13 // = 46 } enum : CALTYPE { CAL_GREGORIAN = 1, CAL_GREGORIAN_US, CAL_JAPAN, CAL_TAIWAN, CAL_KOREA, CAL_HIJRI, CAL_THAI, CAL_HEBREW, CAL_GREGORIAN_ME_FRENCH, CAL_GREGORIAN_ARABIC, CAL_GREGORIAN_XLIT_ENGLISH, CAL_GREGORIAN_XLIT_FRENCH // = 12 } enum : int { CSTR_LESS_THAN = 1, CSTR_EQUAL, CSTR_GREATER_THAN } enum : DWORD { LGRPID_INSTALLED = 1, LGRPID_SUPPORTED } enum : LGRPID { LGRPID_WESTERN_EUROPE = 1, LGRPID_CENTRAL_EUROPE, LGRPID_BALTIC, LGRPID_GREEK, LGRPID_CYRILLIC, LGRPID_TURKISH, LGRPID_JAPANESE, LGRPID_KOREAN, LGRPID_TRADITIONAL_CHINESE, LGRPID_SIMPLIFIED_CHINESE, LGRPID_THAI, LGRPID_HEBREW, LGRPID_ARABIC, LGRPID_VIETNAMESE, LGRPID_INDIC, LGRPID_GEORGIAN, LGRPID_ARMENIAN // = 17 } static if (_WIN32_WINNT >= 0x500) { enum : LCTYPE { LOCALE_SYEARMONTH = 0x1006, LOCALE_SENGCURRNAME = 0x1007, LOCALE_SNATIVECURRNAME = 0x1008, LOCALE_IDEFAULTEBCDICCODEPAGE = 0x1012, LOCALE_SSORTNAME = 0x1013, LOCALE_IDIGITSUBSTITUTION = 0x1014, LOCALE_IPAPERSIZE = 0x100A } const DWORD DATE_YEARMONTH = 8, DATE_LTRREADING = 16, DATE_RTLREADING = 32; const DWORD MAP_EXPAND_LIGATURES = 0x2000; const DWORD WC_NO_BEST_FIT_CHARS = 1024; enum : CALTYPE { CAL_SYEARMONTH = 47, CAL_ITWODIGITYEARMAX = 48, CAL_NOUSEROVERRIDE = LOCALE_NOUSEROVERRIDE, CAL_RETURN_NUMBER = LOCALE_RETURN_NUMBER, CAL_USE_CP_ACP = LOCALE_USE_CP_ACP } } // (_WIN32_WINNT >= 0x500) extern (Windows) { alias BOOL function(LPSTR) CALINFO_ENUMPROCA; alias BOOL function(LPWSTR) CALINFO_ENUMPROCW; alias BOOL function(LPSTR, CALID) CALINFO_ENUMPROCEXA; alias BOOL function(LPWSTR, CALID) CALINFO_ENUMPROCEXW; alias BOOL function(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR) LANGUAGEGROUP_ENUMPROCA; alias BOOL function(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR) LANGUAGEGROUP_ENUMPROCW; alias BOOL function(LGRPID, LCID, LPSTR, LONG_PTR) LANGGROUPLOCALE_ENUMPROCA; alias BOOL function(LGRPID, LCID, LPWSTR, LONG_PTR) LANGGROUPLOCALE_ENUMPROCW; alias BOOL function(LPWSTR, LONG_PTR) UILANGUAGE_ENUMPROCW; alias BOOL function(LPSTR, LONG_PTR) UILANGUAGE_ENUMPROCA; alias BOOL function(LPSTR) LOCALE_ENUMPROCA; alias BOOL function(LPWSTR) LOCALE_ENUMPROCW; alias BOOL function(LPSTR) CODEPAGE_ENUMPROCA; alias BOOL function(LPWSTR) CODEPAGE_ENUMPROCW; alias BOOL function(LPSTR) DATEFMT_ENUMPROCA; alias BOOL function(LPWSTR) DATEFMT_ENUMPROCW; alias BOOL function(LPSTR, CALID) DATEFMT_ENUMPROCEXA; alias BOOL function(LPWSTR, CALID) DATEFMT_ENUMPROCEXW; alias BOOL function(LPSTR) TIMEFMT_ENUMPROCA; alias BOOL function(LPWSTR) TIMEFMT_ENUMPROCW; alias BOOL function(GEOID) GEO_ENUMPROC; } enum NLS_FUNCTION { COMPARE_STRING = 0x0001 } enum SYSGEOCLASS { GEOCLASS_NATION = 16, GEOCLASS_REGION = 14 } enum SYSGEOTYPE { GEO_NATION = 0x0001, GEO_LATITUDE = 0x0002, GEO_LONGITUDE = 0x0003, GEO_ISO2 = 0x0004, GEO_ISO3 = 0x0005, GEO_RFC1766 = 0x0006, GEO_LCID = 0x0007, GEO_FRIENDLYNAME = 0x0008, GEO_OFFICIALNAME = 0x0009, GEO_TIMEZONES = 0x000a, GEO_OFFICIALLANGUAGES = 0x000a } struct CPINFO { UINT MaxCharSize; BYTE[MAX_DEFAULTCHAR] DefaultChar; BYTE[MAX_LEADBYTES] LeadByte; } alias CPINFO* LPCPINFO; struct CPINFOEXA { UINT MaxCharSize; BYTE[MAX_DEFAULTCHAR] DefaultChar; BYTE[MAX_LEADBYTES] LeadByte; WCHAR UnicodeDefaultChar; UINT CodePage; CHAR[MAX_PATH] CodePageName; } alias CPINFOEXA* LPCPINFOEXA; struct CPINFOEXW { UINT MaxCharSize; BYTE[MAX_DEFAULTCHAR] DefaultChar; BYTE[MAX_LEADBYTES] LeadByte; WCHAR UnicodeDefaultChar; UINT CodePage; WCHAR[MAX_PATH] CodePageName; } alias CPINFOEXW* LPCPINFOEXW; struct CURRENCYFMTA { UINT NumDigits; UINT LeadingZero; UINT Grouping; LPSTR lpDecimalSep; LPSTR lpThousandSep; UINT NegativeOrder; UINT PositiveOrder; LPSTR lpCurrencySymbol; } alias CURRENCYFMTA* LPCURRENCYFMTA; struct CURRENCYFMTW { UINT NumDigits; UINT LeadingZero; UINT Grouping; LPWSTR lpDecimalSep; LPWSTR lpThousandSep; UINT NegativeOrder; UINT PositiveOrder; LPWSTR lpCurrencySymbol; } alias CURRENCYFMTW* LPCURRENCYFMTW; struct NLSVERSIONINFO { DWORD dwNLSVersionInfoSize; DWORD dwNLSVersion; DWORD dwDefinedVersion; } alias NLSVERSIONINFO* LPNLSVERSIONINFO; struct NUMBERFMTA { UINT NumDigits; UINT LeadingZero; UINT Grouping; LPSTR lpDecimalSep; LPSTR lpThousandSep; UINT NegativeOrder; } alias NUMBERFMTA* LPNUMBERFMTA; struct NUMBERFMTW { UINT NumDigits; UINT LeadingZero; UINT Grouping; LPWSTR lpDecimalSep; LPWSTR lpThousandSep; UINT NegativeOrder; } alias NUMBERFMTW* LPNUMBERFMTW; extern (Windows) { int CompareStringA(LCID, DWORD, LPCSTR, int, LPCSTR, int); int CompareStringW(LCID, DWORD, LPCWSTR, int, LPCWSTR, int); LCID ConvertDefaultLocale(LCID); BOOL EnumCalendarInfoA(CALINFO_ENUMPROCA, LCID, CALID, CALTYPE); BOOL EnumCalendarInfoW(CALINFO_ENUMPROCW, LCID, CALID, CALTYPE); BOOL EnumDateFormatsA(DATEFMT_ENUMPROCA, LCID, DWORD); BOOL EnumDateFormatsW(DATEFMT_ENUMPROCW, LCID, DWORD); BOOL EnumSystemCodePagesA(CODEPAGE_ENUMPROCA, DWORD); BOOL EnumSystemCodePagesW(CODEPAGE_ENUMPROCW, DWORD); BOOL EnumSystemGeoID(GEOCLASS, GEOID, GEO_ENUMPROC); BOOL EnumSystemLocalesA(LOCALE_ENUMPROCA, DWORD); BOOL EnumSystemLocalesW(LOCALE_ENUMPROCW, DWORD); BOOL EnumTimeFormatsA(TIMEFMT_ENUMPROCA, LCID, DWORD); BOOL EnumTimeFormatsW(TIMEFMT_ENUMPROCW, LCID, DWORD); int FoldStringA(DWORD, LPCSTR, int, LPSTR, int); int FoldStringW(DWORD, LPCWSTR, int, LPWSTR, int); UINT GetACP(); int GetCalendarInfoA(LCID, CALID, CALTYPE, LPSTR, int, LPDWORD); int GetCalendarInfoW(LCID, CALID, CALTYPE, LPWSTR, int, LPDWORD); BOOL GetCPInfo(UINT, LPCPINFO); BOOL GetCPInfoExA(UINT, DWORD, LPCPINFOEXA); BOOL GetCPInfoExW(UINT, DWORD, LPCPINFOEXW); int GetCurrencyFormatA(LCID, DWORD, LPCSTR, const(CURRENCYFMTA)*, LPSTR, int); int GetCurrencyFormatW(LCID, DWORD, LPCWSTR, const(CURRENCYFMTW)*, LPWSTR, int); int GetDateFormatA(LCID, DWORD, const(SYSTEMTIME)*, LPCSTR, LPSTR, int); int GetDateFormatW(LCID, DWORD, const(SYSTEMTIME)*, LPCWSTR, LPWSTR, int); int GetGeoInfoA(GEOID, GEOTYPE, LPSTR, int, LANGID); int GetGeoInfoW(GEOID, GEOTYPE, LPWSTR, int, LANGID); int GetLocaleInfoA(LCID, LCTYPE, LPSTR, int); int GetLocaleInfoW(LCID, LCTYPE, LPWSTR, int); BOOL GetNLSVersion(NLS_FUNCTION, LCID, LPNLSVERSIONINFO); int GetNumberFormatA(LCID, DWORD, LPCSTR, const(NUMBERFMTA)*, LPSTR, int); int GetNumberFormatW(LCID, DWORD, LPCWSTR, const(NUMBERFMTW)*, LPWSTR, int); UINT GetOEMCP(); BOOL GetStringTypeA(LCID, DWORD, LPCSTR, int, LPWORD); BOOL GetStringTypeW(DWORD, LPCWSTR, int, LPWORD); BOOL GetStringTypeExA(LCID, DWORD, LPCSTR, int, LPWORD); BOOL GetStringTypeExW(LCID, DWORD, LPCWSTR, int, LPWORD); LANGID GetSystemDefaultLangID(); LCID GetSystemDefaultLCID(); LCID GetThreadLocale(); int GetTimeFormatA(LCID, DWORD, const(SYSTEMTIME)*, LPCSTR, LPSTR, int); int GetTimeFormatW(LCID, DWORD, const(SYSTEMTIME)*, LPCWSTR, LPWSTR, int); LANGID GetUserDefaultLangID(); LCID GetUserDefaultLCID(); GEOID GetUserGeoID(GEOCLASS); BOOL IsDBCSLeadByte(BYTE); BOOL IsDBCSLeadByteEx(UINT, BYTE); BOOL IsNLSDefinedString(NLS_FUNCTION, DWORD, LPNLSVERSIONINFO, LPCWSTR, int); BOOL IsValidCodePage(UINT); BOOL IsValidLocale(LCID, DWORD); int LCMapStringA(LCID, DWORD, LPCSTR, int, LPSTR, int); int LCMapStringW(LCID, DWORD, LPCWSTR, int, LPWSTR, int); int MultiByteToWideChar(UINT, DWORD, LPCSTR, int, LPWSTR, int); int SetCalendarInfoA(LCID, CALID, CALTYPE, LPCSTR); int SetCalendarInfoW(LCID, CALID, CALTYPE, LPCWSTR); BOOL SetLocaleInfoA(LCID, LCTYPE, LPCSTR); BOOL SetLocaleInfoW(LCID, LCTYPE, LPCWSTR); BOOL SetThreadLocale(LCID); BOOL SetUserGeoID(GEOID); int WideCharToMultiByte(UINT, DWORD, LPCWSTR, int, LPSTR, int, LPCSTR, LPBOOL); static if (_WIN32_WINNT >= 0x410) { BOOL EnumCalendarInfoExA(CALINFO_ENUMPROCEXA, LCID, CALID, CALTYPE); BOOL EnumCalendarInfoExW(CALINFO_ENUMPROCEXW, LCID, CALID, CALTYPE); BOOL EnumDateFormatsExA(DATEFMT_ENUMPROCEXA, LCID, DWORD); BOOL EnumDateFormatsExW(DATEFMT_ENUMPROCEXW, LCID, DWORD); BOOL IsValidLanguageGroup(LGRPID, DWORD); } static if (_WIN32_WINNT >= 0x500) { LANGID GetSystemDefaultUILanguage(); LANGID GetUserDefaultUILanguage(); BOOL EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA, DWORD, LONG_PTR); BOOL EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW, DWORD, LONG_PTR); BOOL EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA, LGRPID, DWORD, LONG_PTR); BOOL EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW, LGRPID, DWORD, LONG_PTR); BOOL EnumUILanguagesA(UILANGUAGE_ENUMPROCA, DWORD, LONG_PTR); BOOL EnumUILanguagesW(UILANGUAGE_ENUMPROCW, DWORD, LONG_PTR); } } version (Unicode) { alias CALINFO_ENUMPROCW CALINFO_ENUMPROC; alias CALINFO_ENUMPROCEXW CALINFO_ENUMPROCEX; alias LOCALE_ENUMPROCW LOCALE_ENUMPROC; alias CODEPAGE_ENUMPROCW CODEPAGE_ENUMPROC; alias DATEFMT_ENUMPROCW DATEFMT_ENUMPROC; alias DATEFMT_ENUMPROCEXW DATEFMT_ENUMPROCEX; alias TIMEFMT_ENUMPROCW TIMEFMT_ENUMPROC; alias LANGUAGEGROUP_ENUMPROCW LANGUAGEGROUP_ENUMPROC; alias LANGGROUPLOCALE_ENUMPROCW LANGGROUPLOCALE_ENUMPROC; alias UILANGUAGE_ENUMPROCW UILANGUAGE_ENUMPROC; alias CPINFOEXW CPINFOEX; alias LPCPINFOEXW LPCPINFOEX; alias CURRENCYFMTW CURRENCYFMT; alias LPCURRENCYFMTW LPCURRENCYFMT; alias NUMBERFMTW NUMBERFMT; alias LPNUMBERFMTW LPNUMBERFMT; alias CompareStringW CompareString; alias EnumCalendarInfoW EnumCalendarInfo; alias EnumSystemCodePagesW EnumSystemCodePages; alias EnumSystemLocalesW EnumSystemLocales; alias EnumTimeFormatsW EnumTimeFormats; alias FoldStringW FoldString; alias GetCalendarInfoW GetCalendarInfo; alias GetCPInfoExW GetCPInfoEx; alias GetCurrencyFormatW GetCurrencyFormat; alias GetDateFormatW GetDateFormat; alias GetGeoInfoW GetGeoInfo; alias GetLocaleInfoW GetLocaleInfo; alias GetNumberFormatW GetNumberFormat; alias GetStringTypeExW GetStringTypeEx; alias GetTimeFormatW GetTimeFormat; alias LCMapStringW LCMapString; alias SetCalendarInfoW SetCalendarInfo; alias SetLocaleInfoW SetLocaleInfo; static if (_WIN32_WINNT >= 0x410) { alias EnumCalendarInfoExW EnumCalendarInfoEx; alias EnumDateFormatsExW EnumDateFormatsEx; } static if (_WIN32_WINNT >= 0x500) { alias EnumSystemLanguageGroupsW EnumSystemLanguageGroups; alias EnumLanguageGroupLocalesW EnumLanguageGroupLocales; alias EnumUILanguagesW EnumUILanguages; } } else { alias CALINFO_ENUMPROCA CALINFO_ENUMPROC; alias CALINFO_ENUMPROCEXA CALINFO_ENUMPROCEX; alias LOCALE_ENUMPROCA LOCALE_ENUMPROC; alias CODEPAGE_ENUMPROCA CODEPAGE_ENUMPROC; alias DATEFMT_ENUMPROCA DATEFMT_ENUMPROC; alias DATEFMT_ENUMPROCEXA DATEFMT_ENUMPROCEX; alias TIMEFMT_ENUMPROCA TIMEFMT_ENUMPROC; alias LANGUAGEGROUP_ENUMPROCA LANGUAGEGROUP_ENUMPROC; alias LANGGROUPLOCALE_ENUMPROCA LANGGROUPLOCALE_ENUMPROC; alias UILANGUAGE_ENUMPROCA UILANGUAGE_ENUMPROC; alias CPINFOEXA CPINFOEX; alias LPCPINFOEXA LPCPINFOEX; alias CURRENCYFMTA CURRENCYFMT; alias LPCURRENCYFMTA LPCURRENCYFMT; alias NUMBERFMTA NUMBERFMT; alias LPNUMBERFMTA LPNUMBERFMT; alias CompareStringA CompareString; alias EnumCalendarInfoA EnumCalendarInfo; alias EnumSystemCodePagesA EnumSystemCodePages; alias EnumSystemLocalesA EnumSystemLocales; alias EnumTimeFormatsA EnumTimeFormats; alias FoldStringA FoldString; alias GetCalendarInfoA GetCalendarInfo; alias GetCPInfoExA GetCPInfoEx; alias GetCurrencyFormatA GetCurrencyFormat; alias GetDateFormatA GetDateFormat; alias GetGeoInfoA GetGeoInfo; alias GetLocaleInfoA GetLocaleInfo; alias GetNumberFormatA GetNumberFormat; alias GetStringTypeExA GetStringTypeEx; alias GetTimeFormatA GetTimeFormat; alias LCMapStringA LCMapString; alias SetCalendarInfoA SetCalendarInfo; alias SetLocaleInfoA SetLocaleInfo; static if (_WIN32_WINNT >= 0x410) { alias EnumCalendarInfoExA EnumCalendarInfoEx; alias EnumDateFormatsExA EnumDateFormatsEx; } static if (_WIN32_WINNT >= 0x500) { alias EnumSystemLanguageGroupsA EnumSystemLanguageGroups; alias EnumLanguageGroupLocalesA EnumLanguageGroupLocales; alias EnumUILanguagesA EnumUILanguages; } }