Mercurial > projects > ddbg_continued
diff win32/winnls.d @ 1:4a9dcbd9e54f
-files of 0.13 beta
-fixes so that it now compiles with the current dmd version
author | marton@basel.hu |
---|---|
date | Tue, 05 Apr 2011 20:44:01 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/win32/winnls.d Tue Apr 05 20:44:01 2011 +0200 @@ -0,0 +1,811 @@ +/***********************************************************************\ +* winnls.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winnls; +pragma(lib, "kernel32.lib"); + +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 (WINVER >= 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 + } +} // (WINVER >= 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, CURRENCYFMTA*, LPSTR, int); + int GetCurrencyFormatW(LCID, DWORD, LPCWSTR, CURRENCYFMTW*, LPWSTR, + int); + int GetDateFormatA(LCID, DWORD, SYSTEMTIME*, LPCSTR, LPSTR, int); + int GetDateFormatW(LCID, DWORD, 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, NUMBERFMTA*, LPSTR, int); + int GetNumberFormatW(LCID, DWORD, LPCWSTR, 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, SYSTEMTIME*, LPCSTR, LPSTR, int); + int GetTimeFormatW(LCID, DWORD, 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 (WINVER >= 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 (WINVER >= 0x500) { + LANGID GetSystemDefaultUILanguage(); + LANGID GetUserDefaultUILanguage(); + + static if (_WIN32_WINNT_ONLY) { + 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 (WINVER >= 0x410) { + alias EnumCalendarInfoExW EnumCalendarInfoEx; + alias EnumDateFormatsExW EnumDateFormatsEx; + } + + static if (_WIN32_WINNT_ONLY && WINVER >= 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 (WINVER >= 0x410) { + alias EnumCalendarInfoExA EnumCalendarInfoEx; + alias EnumDateFormatsExA EnumDateFormatsEx; + } + + static if (_WIN32_WINNT_ONLY && WINVER >= 0x500) { + alias EnumSystemLanguageGroupsA EnumSystemLanguageGroups; + alias EnumLanguageGroupLocalesA EnumLanguageGroupLocales; + alias EnumUILanguagesA EnumUILanguages; + } +}