'winnls.ab #ifdef UNICODE Const _FuncName_GetCPInfoEx = "GetCPInfoExW" Const _FuncName_CompareString = "CompareStringW" Const _FuncName_LCMapString = "LCMapStringW" Const _FuncName_GetLocaleInfo = "GetLocaleInfoW" Const _FuncName_SetLocaleInfo = "SetLocaleInfoW" Const _FuncName_GetCalendarInfo = "GetCalendarInfoW" Const _FuncName_SetCalendarInfo = "SetCalendarInfoW" Const _FuncName_GetTimeFormat = "GetTimeFormatW" Const _FuncName_GetDateFormat = "GetDateFormatW" Const _FuncName_GetNumberFormat = "GetNumberFormatW" Const _FuncName_GetCurrencyFormat = "GetCurrencyFormatW" Const _FuncName_EnumCalendarInfo = "EnumCalendarInfoW" Const _FuncName_EnumTimeFormats = "EnumTimeFormatsW" Const _FuncName_EnumDateFormats = "EnumDateFormatsW" Const _FuncName_GetGeoInfo = "GetGeoInfoW" Const _FuncName_GetStringTypeEx = "GetStringTypeExW" Const _FuncName_FoldString = "FoldStringW" Const _FuncName_EnumSystemLocales = "EnumSystemLocalesW" Const _FuncName_EnumSystemCodePages = "EnumSystemCodePagesW" #else Const _FuncName_GetCPInfoEx = "GetCPInfoExA" Const _FuncName_CompareString = "CompareStringA" Const _FuncName_LCMapString = "LCMapStringA" Const _FuncName_GetLocaleInfo = "GetLocaleInfoA" Const _FuncName_SetLocaleInfo = "SetLocaleInfoA" Const _FuncName_GetCalendarInfo = "GetCalendarInfoA" Const _FuncName_SetCalendarInfo = "SetCalendarInfoA" Const _FuncName_GetTimeFormat = "GetTimeFormatA" Const _FuncName_GetDateFormat = "GetDateFormatA" Const _FuncName_GetNumberFormat = "GetNumberFormatA" Const _FuncName_GetCurrencyFormat = "GetCurrencyFormatA" Const _FuncName_EnumCalendarInfo = "EnumCalendarInfoA" Const _FuncName_EnumTimeFormats = "EnumTimeFormatsA" Const _FuncName_EnumDateFormats = "EnumDateFormatsA" Const _FuncName_GetGeoInfo = "GetGeoInfoA" Const _FuncName_GetStringTypeEx = "GetStringTypeExA" Const _FuncName_FoldString = "FoldStringA" Const _FuncName_EnumSystemLocales = "EnumSystemLocalesA" Const _FuncName_EnumSystemCodePages = "EnumSystemCodePagesA" #endif Const MAX_LEADBYTES = 12 Const MAX_DEFAULTCHAR = 2 Const HIGH_SURROGATE_START = &hd800 Const HIGH_SURROGATE_END = &hdbff Const LOW_SURROGATE_START = &hdc00 Const LOW_SURROGATE_END = &hdfff Const MB_PRECOMPOSED = &h00000001 Const MB_COMPOSITE = &h00000002 Const MB_USEGLYPHCHARS = &h00000004 Const MB_ERR_INVALID_CHARS = &h00000008 Const WC_COMPOSITECHECK = &h00000200 Const WC_DISCARDNS = &h00000010 Const WC_SEPCHARS = &h00000020 Const WC_DEFAULTCHAR = &h00000040 'if WINVER >= &h0600 Const WC_ERR_INVALID_CHARS = &h00000080 '#endif 'if WINVER >= &h0500 Const WC_NO_BEST_FIT_CHARS = &h00000400 '#endif Const CT_CTYPE1 = &h00000001 Const CT_CTYPE2 = &h00000002 Const CT_CTYPE3 = &h00000004 Const C1_UPPER = &h0001 Const C1_LOWER = &h0002 Const C1_DIGIT = &h0004 Const C1_SPACE = &h0008 Const C1_PUNCT = &h0010 Const C1_CNTRL = &h0020 Const C1_BLANK = &h0040 Const C1_XDIGIT = &h0080 Const C1_ALPHA = &h0100 Const C1_DEFINED = &h0200 Const C2_LEFTTORIGHT = &h0001 Const C2_RIGHTTOLEFT = &h0002 Const C2_EUROPENUMBER = &h0003 Const C2_EUROPESEPARATOR = &h0004 Const C2_EUROPETERMINATOR = &h0005 Const C2_ARABICNUMBER = &h0006 Const C2_COMMONSEPARATOR = &h0007 Const C2_BLOCKSEPARATOR = &h0008 Const C2_SEGMENTSEPARATOR = &h0009 Const C2_WHITESPACE = &h000A Const C2_OTHERNEUTRAL = &h000B Const C2_NOTAPPLICABLE = &h0000 Const C3_NONSPACING = &h0001 Const C3_DIACRITIC = &h0002 Const C3_VOWELMARK = &h0004 Const C3_SYMBOL = &h0008 Const C3_KATAKANA = &h0010 Const C3_HIRAGANA = &h0020 Const C3_HALFWIDTH = &h0040 Const C3_FULLWIDTH = &h0080 Const C3_IDEOGRAPH = &h0100 Const C3_KASHIDA = &h0200 Const C3_LEXICAL = &h0400 Const C3_HIGHSURROGATE = &h0800 Const C3_LOWSURROGATE = &h1000 Const C3_ALPHA = &h8000 Const C3_NOTAPPLICABLE = &h0000 Const NORM_IGNORECASE = &h00000001 Const NORM_IGNORENONSPACE = &h00000002 Const NORM_IGNORESYMBOLS = &h00000004 Const LINGUISTIC_IGNORECASE = &h00000010 Const LINGUISTIC_IGNOREDIACRITIC = &h00000020 Const NORM_IGNOREKANATYPE = &h00010000 Const NORM_IGNOREWIDTH = &h00020000 Const NORM_LINGUISTIC_CASING = &h08000000 Const MAP_FOLDCZONE = &h00000010 Const MAP_PRECOMPOSED = &h00000020 Const MAP_COMPOSITE = &h00000040 Const MAP_FOLDDIGITS = &h00000080 'if WINVER >= &h0500 Const MAP_EXPAND_LIGATURES = &h00002000 '#endif Const LCMAP_LOWERCASE = &h00000100 Const LCMAP_UPPERCASE = &h00000200 Const LCMAP_SORTKEY = &h00000400 Const LCMAP_ByteREV = &h00000800 Const LCMAP_HIRAGANA = &h00100000 Const LCMAP_KATAKANA = &h00200000 Const LCMAP_HALFWIDTH = &h00400000 Const LCMAP_FULLWIDTH = &h00800000 Const LCMAP_LINGUISTIC_CASING = &h01000000 Const LCMAP_SIMPLIFIED_CHINESE = &h02000000 Const LCMAP_TRADITIONAL_CHINESE = &h04000000 Const FIND_STARTSWITH = &h00100000 Const FIND_ENDSWITH = &h00200000 Const FIND_FROMSTART = &h00400000 Const FIND_FROMEND = &h00800000 Const LGRPID_INSTALLED = &h00000001 Const LGRPID_SUPPORTED = &h00000002 Const LCID_INSTALLED = &h00000001 Const LCID_SUPPORTED = &h00000002 Const LCID_ALTERNATE_SORTS = &h00000004 'if WINVER >= &h0600 Const LOCALE_ALL = 0 Const LOCALE_WINDOWS = &h00000001 Const LOCALE_SUPPLEMENTAL = &h00000002 Const LOCALE_ALTERNATE_SORTS = &h00000004 Const LOCALE_REPLACEMENT = &h00000008 '#endif Const CP_INSTALLED = &h00000001 Const CP_SUPPORTED = &h00000002 Const SORT_STRINGSORT = &h00001000 Const CSTR_LESS_THAN = 1 Const CSTR_EQUAL = 2 Const CSTR_GREATER_THAN = 3 Const CP_ACP = 0 Const CP_OEMCP = 1 Const CP_MACCP = 2 Const CP_THREAD_ACP = 3 Const CP_SYMBOL = 42 Const CP_UTF7 = 65000 Const CP_UTF8 = 65001 Const CTRY_DEFAULT = 0 Const CTRY_ALBANIA = 355 Const CTRY_ALGERIA = 213 Const CTRY_ARGENTINA = 54 Const CTRY_ARMENIA = 374 Const CTRY_AUSTRALIA = 61 Const CTRY_AUSTRIA = 43 Const CTRY_AZERBAIJAN = 994 Const CTRY_BAHRAIN = 973 Const CTRY_BELARUS = 375 Const CTRY_BELGIUM = 32 Const CTRY_BELIZE = 501 Const CTRY_BOLIVIA = 591 Const CTRY_BRAZIL = 55 Const CTRY_BRUNEI_DARUSSALAM = 673 Const CTRY_BULGARIA = 359 Const CTRY_CANADA = 2 Const CTRY_CARIBBEAN = 1 Const CTRY_CHILE = 56 Const CTRY_COLOMBIA = 57 Const CTRY_COSTA_RICA = 506 Const CTRY_CROATIA = 385 Const CTRY_CZECH = 420 Const CTRY_DENMARK = 45 Const CTRY_DOMINICAN_REPUBLIC = 1 Const CTRY_ECUADOR = 593 Const CTRY_EGYPT = 20 Const CTRY_EL_SALVADOR = 503 Const CTRY_ESTONIA = 372 Const CTRY_FAEROE_ISLANDS = 298 Const CTRY_FINLAND = 358 Const CTRY_FRANCE = 33 Const CTRY_GEORGIA = 995 Const CTRY_GERMANY = 49 Const CTRY_GREECE = 30 Const CTRY_GUATEMALA = 502 Const CTRY_HONDURAS = 504 Const CTRY_HONG_KONG = 852 Const CTRY_HUNGARY = 36 Const CTRY_ICELAND = 354 Const CTRY_INDIA = 91 Const CTRY_INDONESIA = 62 Const CTRY_IRAN = 981 Const CTRY_IRAQ = 964 Const CTRY_IRELAND = 353 Const CTRY_ISRAEL = 972 Const CTRY_ITALY = 39 Const CTRY_JAMAICA = 1 Const CTRY_JAPAN = 81 Const CTRY_JORDAN = 962 Const CTRY_KAZAKSTAN = 7 Const CTRY_KENYA = 254 Const CTRY_KUWAIT = 965 Const CTRY_KYRGYZSTAN = 996 Const CTRY_LATVIA = 371 Const CTRY_LEBANON = 961 Const CTRY_LIBYA = 218 Const CTRY_LIECHTENSTEIN = 41 Const CTRY_LITHUANIA = 370 Const CTRY_LUXEMBOURG = 352 Const CTRY_MACAU = 853 Const CTRY_MACEDONIA = 389 Const CTRY_MALAYSIA = 60 Const CTRY_MALDIVES = 960 Const CTRY_MEXICO = 52 Const CTRY_MONACO = 33 Const CTRY_MONGOLIA = 976 Const CTRY_MOROCCO = 212 Const CTRY_NETHERLANDS = 31 Const CTRY_NEW_ZEALAND = 64 Const CTRY_NICARAGUA = 505 Const CTRY_NORWAY = 47 Const CTRY_OMAN = 968 Const CTRY_PAKISTAN = 92 Const CTRY_PANAMA = 507 Const CTRY_PARAGUAY = 595 Const CTRY_PERU = 51 Const CTRY_PHILIPPINES = 63 Const CTRY_POLAND = 48 Const CTRY_PORTUGAL = 351 Const CTRY_PRCHINA = 86 Const CTRY_PUERTO_RICO = 1 Const CTRY_QATAR = 974 Const CTRY_ROMANIA = 40 Const CTRY_RUSSIA = 7 Const CTRY_SAUDI_ARABIA = 966 Const CTRY_SERBIA = 381 Const CTRY_SINGAPORE = 65 Const CTRY_SLOVAK = 421 Const CTRY_SLOVENIA = 386 Const CTRY_SOUTH_AFRICA = 27 Const CTRY_SOUTH_KOREA = 82 Const CTRY_SPAIN = 34 Const CTRY_SWEDEN = 46 Const CTRY_SWITZERLAND = 41 Const CTRY_SYRIA = 963 Const CTRY_TAIWAN = 886 Const CTRY_TATARSTAN = 7 Const CTRY_THAILAND = 66 Const CTRY_TRINIDAD_Y_TOBAGO = 1 Const CTRY_TUNISIA = 216 Const CTRY_TURKEY = 90 Const CTRY_UAE = 971 Const CTRY_UKRAINE = 380 Const CTRY_UNITED_KINGDOM = 44 Const CTRY_UNITED_STATES = 1 Const CTRY_URUGUAY = 598 Const CTRY_UZBEKISTAN = 7 Const CTRY_VENEZUELA = 58 Const CTRY_VIET_NAM = 84 Const CTRY_YEMEN = 967 Const CTRY_ZIMBABWE = 263 Const LOCALE_NOUSEROVERRIDE = &h80000000 Const LOCALE_USE_CP_ACP = &h40000000 'if WINVER >= &h0400 Const LOCALE_RETURN_NUMBER = &h20000000 '#endif Const LOCALE_ILANGUAGE = &h00000001 Const LOCALE_SLANGUAGE = &h00000002 Const LOCALE_SENGLANGUAGE = &h00001001 Const LOCALE_SABBREVLANGNAME = &h00000003 Const LOCALE_SNATIVELANGNAME = &h00000004 Const LOCALE_ICOUNTRY = &h00000005 Const LOCALE_SCOUNTRY = &h00000006 Const LOCALE_SENGCOUNTRY = &h00001002 Const LOCALE_SABBREVCTRYNAME = &h00000007 Const LOCALE_SNATIVECTRYNAME = &h00000008 Const LOCALE_IGEOID = &h0000005B Const LOCALE_IDEFAULTLANGUAGE = &h00000009 Const LOCALE_IDEFAULTCOUNTRY = &h0000000A Const LOCALE_IDEFAULTCODEPAGE = &h0000000B Const LOCALE_IDEFAULTANSICODEPAGE = &h00001004 Const LOCALE_IDEFAULTMACCODEPAGE = &h00001011 Const LOCALE_SLIST = &h0000000C Const LOCALE_IMEASURE = &h0000000D Const LOCALE_SDECIMAL = &h0000000E Const LOCALE_STHOUSAND = &h0000000F Const LOCALE_SGROUPING = &h00000010 Const LOCALE_IDIGITS = &h00000011 Const LOCALE_ILZERO = &h00000012 Const LOCALE_INEGNUMBER = &h00001010 Const LOCALE_SNATIVEDIGITS = &h00000013 Const LOCALE_SCURRENCY = &h00000014 Const LOCALE_SINTLSYMBOL = &h00000015 Const LOCALE_SMONDECIMALSEP = &h00000016 Const LOCALE_SMONTHOUSANDSEP = &h00000017 Const LOCALE_SMONGROUPING = &h00000018 Const LOCALE_ICURRDIGITS = &h00000019 Const LOCALE_IINTLCURRDIGITS = &h0000001A Const LOCALE_ICURRENCY = &h0000001B Const LOCALE_INEGCURR = &h0000001C Const LOCALE_SDATE = &h0000001D Const LOCALE_STIME = &h0000001E Const LOCALE_SSHORTDATE = &h0000001F Const LOCALE_SLONGDATE = &h00000020 Const LOCALE_STIMEFORMAT = &h00001003 Const LOCALE_IDATE = &h00000021 Const LOCALE_ILDATE = &h00000022 Const LOCALE_ITIME = &h00000023 Const LOCALE_ITIMEMARKPOSN = &h00001005 Const LOCALE_ICENTURY = &h00000024 Const LOCALE_ITLZERO = &h00000025 Const LOCALE_IDAYLZERO = &h00000026 Const LOCALE_IMONLZERO = &h00000027 Const LOCALE_S1159 = &h00000028 Const LOCALE_S2359 = &h00000029 Const LOCALE_ICALENDARTYPE = &h00001009 Const LOCALE_IOPTIONALCALENDAR = &h0000100B Const LOCALE_IFIRSTDAYOFWEEK = &h0000100C Const LOCALE_IFIRSTWEEKOFYEAR = &h0000100D Const LOCALE_SDAYNAME1 = &h0000002A Const LOCALE_SDAYNAME2 = &h0000002B Const LOCALE_SDAYNAME3 = &h0000002C Const LOCALE_SDAYNAME4 = &h0000002D Const LOCALE_SDAYNAME5 = &h0000002E Const LOCALE_SDAYNAME6 = &h0000002F Const LOCALE_SDAYNAME7 = &h00000030 Const LOCALE_SABBREVDAYNAME1 = &h00000031 Const LOCALE_SABBREVDAYNAME2 = &h00000032 Const LOCALE_SABBREVDAYNAME3 = &h00000033 Const LOCALE_SABBREVDAYNAME4 = &h00000034 Const LOCALE_SABBREVDAYNAME5 = &h00000035 Const LOCALE_SABBREVDAYNAME6 = &h00000036 Const LOCALE_SABBREVDAYNAME7 = &h00000037 Const LOCALE_SMONTHNAME1 = &h00000038 Const LOCALE_SMONTHNAME2 = &h00000039 Const LOCALE_SMONTHNAME3 = &h0000003A Const LOCALE_SMONTHNAME4 = &h0000003B Const LOCALE_SMONTHNAME5 = &h0000003C Const LOCALE_SMONTHNAME6 = &h0000003D Const LOCALE_SMONTHNAME7 = &h0000003E Const LOCALE_SMONTHNAME8 = &h0000003F Const LOCALE_SMONTHNAME9 = &h00000040 Const LOCALE_SMONTHNAME10 = &h00000041 Const LOCALE_SMONTHNAME11 = &h00000042 Const LOCALE_SMONTHNAME12 = &h00000043 Const LOCALE_SMONTHNAME13 = &h0000100E Const LOCALE_SABBREVMONTHNAME1 = &h00000044 Const LOCALE_SABBREVMONTHNAME2 = &h00000045 Const LOCALE_SABBREVMONTHNAME3 = &h00000046 Const LOCALE_SABBREVMONTHNAME4 = &h00000047 Const LOCALE_SABBREVMONTHNAME5 = &h00000048 Const LOCALE_SABBREVMONTHNAME6 = &h00000049 Const LOCALE_SABBREVMONTHNAME7 = &h0000004A Const LOCALE_SABBREVMONTHNAME8 = &h0000004B Const LOCALE_SABBREVMONTHNAME9 = &h0000004C Const LOCALE_SABBREVMONTHNAME10 = &h0000004D Const LOCALE_SABBREVMONTHNAME11 = &h0000004E Const LOCALE_SABBREVMONTHNAME12 = &h0000004F Const LOCALE_SABBREVMONTHNAME13 = &h0000100F Const LOCALE_SPOSITIVESIGN = &h00000050 Const LOCALE_SNEGATIVESIGN = &h00000051 Const LOCALE_IPOSSIGNPOSN = &h00000052 Const LOCALE_INEGSIGNPOSN = &h00000053 Const LOCALE_IPOSSYMPRECEDES = &h00000054 Const LOCALE_IPOSSEPBYSPACE = &h00000055 Const LOCALE_INEGSYMPRECEDES = &h00000056 Const LOCALE_INEGSEPBYSPACE = &h00000057 'if WINVER >= &h0400 Const LOCALE_FONTSIGNATURE = &h00000058 Const LOCALE_SISO639LANGNAME = &h00000059 Const LOCALE_SISO3166CTRYNAME = &h0000005A '#endif 'if WINVER >= &h0500 Const LOCALE_IDEFAULTEBCDICCODEPAGE = &h00001012 Const LOCALE_IPAPERSIZE = &h0000100A Const LOCALE_SENGCURRNAME = &h00001007 Const LOCALE_SNATIVECURRNAME = &h00001008 Const LOCALE_SYEARMONTH = &h00001006 Const LOCALE_SSORTNAME = &h00001013 Const LOCALE_IDIGITSUBSTITUTION = &h00001014 '#endif 'if WINVER >= &h0600 Const LOCALE_SNAME = &h0000005c Const LOCALE_SDURATION = &h0000005d Const LOCALE_SKEYBOARDSTOINSTALL = &h0000005e Const LOCALE_SSHORTESTDAYNAME1 = &h00000060 Const LOCALE_SSHORTESTDAYNAME2 = &h00000061 Const LOCALE_SSHORTESTDAYNAME3 = &h00000062 Const LOCALE_SSHORTESTDAYNAME4 = &h00000063 Const LOCALE_SSHORTESTDAYNAME5 = &h00000064 Const LOCALE_SSHORTESTDAYNAME6 = &h00000065 Const LOCALE_SSHORTESTDAYNAME7 = &h00000066 Const LOCALE_SISO639LANGNAME2 = &h00000067 Const LOCALE_SISO3166CTRYNAME2 = &h00000068 Const LOCALE_SNAN = &h00000069 Const LOCALE_SPOSINFINITY = &h0000006a Const LOCALE_SNEGINFINITY = &h0000006b Const LOCALE_SSCRIPTS = &h0000006c Const LOCALE_SPARENT = &h0000006d Const LOCALE_SCONSOLEFALLBACKNAME = &h0000006e Const LOCALE_SLANGDISPLAYNAME = &h0000006f '#endif Const TIME_NOMINUTESORSECONDS = &h00000001 Const TIME_NOSECONDS = &h00000002 Const TIME_NOTIMEMARKER = &h00000004 Const TIME_FORCE24HOURFORMAT = &h00000008 Const DATE_SHORTDATE = &h00000001 Const DATE_LONGDATE = &h00000002 Const DATE_USE_ALT_CALENDAR = &h00000004 'if WINVER >= &h0500 Const DATE_YEARMONTH = &h00000008 Const DATE_LTRREADING = &h00000010 Const DATE_RTLREADING = &h00000020 '#endif 'if WINVER >= &h0500 Const CAL_NOUSEROVERRIDE = LOCALE_NOUSEROVERRIDE Const CAL_USE_CP_ACP = LOCALE_USE_CP_ACP Const CAL_RETURN_NUMBER = LOCALE_RETURN_NUMBER '#endif Const CAL_ICALINTVALUE = &h00000001 Const CAL_SCALNAME = &h00000002 Const CAL_IYEAROFFSETRANGE = &h00000003 Const CAL_SERASTRING = &h00000004 Const CAL_SSHORTDATE = &h00000005 Const CAL_SLONGDATE = &h00000006 Const CAL_SDAYNAME1 = &h00000007 Const CAL_SDAYNAME2 = &h00000008 Const CAL_SDAYNAME3 = &h00000009 Const CAL_SDAYNAME4 = &h0000000a Const CAL_SDAYNAME5 = &h0000000b Const CAL_SDAYNAME6 = &h0000000c Const CAL_SDAYNAME7 = &h0000000d Const CAL_SABBREVDAYNAME1 = &h0000000e Const CAL_SABBREVDAYNAME2 = &h0000000f Const CAL_SABBREVDAYNAME3 = &h00000010 Const CAL_SABBREVDAYNAME4 = &h00000011 Const CAL_SABBREVDAYNAME5 = &h00000012 Const CAL_SABBREVDAYNAME6 = &h00000013 Const CAL_SABBREVDAYNAME7 = &h00000014 Const CAL_SMONTHNAME1 = &h00000015 Const CAL_SMONTHNAME2 = &h00000016 Const CAL_SMONTHNAME3 = &h00000017 Const CAL_SMONTHNAME4 = &h00000018 Const CAL_SMONTHNAME5 = &h00000019 Const CAL_SMONTHNAME6 = &h0000001a Const CAL_SMONTHNAME7 = &h0000001b Const CAL_SMONTHNAME8 = &h0000001c Const CAL_SMONTHNAME9 = &h0000001d Const CAL_SMONTHNAME10 = &h0000001e Const CAL_SMONTHNAME11 = &h0000001f Const CAL_SMONTHNAME12 = &h00000020 Const CAL_SMONTHNAME13 = &h00000021 Const CAL_SABBREVMONTHNAME1 = &h00000022 Const CAL_SABBREVMONTHNAME2 = &h00000023 Const CAL_SABBREVMONTHNAME3 = &h00000024 Const CAL_SABBREVMONTHNAME4 = &h00000025 Const CAL_SABBREVMONTHNAME5 = &h00000026 Const CAL_SABBREVMONTHNAME6 = &h00000027 Const CAL_SABBREVMONTHNAME7 = &h00000028 Const CAL_SABBREVMONTHNAME8 = &h00000029 Const CAL_SABBREVMONTHNAME9 = &h0000002a Const CAL_SABBREVMONTHNAME10 = &h0000002b Const CAL_SABBREVMONTHNAME11 = &h0000002c Const CAL_SABBREVMONTHNAME12 = &h0000002d Const CAL_SABBREVMONTHNAME13 = &h0000002e 'if WINVER >= &h0500 Const CAL_SYEARMONTH = &h0000002f Const CAL_ITWODIGITYEARMAX = &h00000030 '#endif 'if WINVER >= &h0600 Const CAL_SSHORTESTDAYNAME1 = &h00000031 Const CAL_SSHORTESTDAYNAME2 = &h00000032 Const CAL_SSHORTESTDAYNAME3 = &h00000033 Const CAL_SSHORTESTDAYNAME4 = &h00000034 Const CAL_SSHORTESTDAYNAME5 = &h00000035 Const CAL_SSHORTESTDAYNAME6 = &h00000036 Const CAL_SSHORTESTDAYNAME7 = &h00000037 '#endif Const ENUM_ALL_CALENDARS = &hffffffff Const CAL_GREGORIAN = 1 Const CAL_GREGORIAN_US = 2 Const CAL_JAPAN = 3 Const CAL_TAIWAN = 4 Const CAL_KOREA = 5 Const CAL_HIJRI = 6 Const CAL_THAI = 7 Const CAL_HEBREW = 8 Const CAL_GREGORIAN_ME_FRENCH = 9 Const CAL_GREGORIAN_ARABIC = 10 Const CAL_GREGORIAN_XLIT_ENGLISH = 11 Const CAL_GREGORIAN_XLIT_FRENCH = 12 Const CAL_UMALQURA = 23 Const LGRPID_WESTERN_EUROPE = &h0001 Const LGRPID_CENTRAL_EUROPE = &h0002 Const LGRPID_BALTIC = &h0003 Const LGRPID_GREEK = &h0004 Const LGRPID_CYRILLIC = &h0005 Const LGRPID_TURKIC = &h0006 Const LGRPID_TURKISH = &h0006 Const LGRPID_JAPANESE = &h0007 Const LGRPID_KOREAN = &h0008 Const LGRPID_TRADITIONAL_CHINESE = &h0009 Const LGRPID_SIMPLIFIED_CHINESE = &h000a Const LGRPID_THAI = &h000b Const LGRPID_HEBREW = &h000c Const LGRPID_ARABIC = &h000d Const LGRPID_VIETNAMESE = &h000e Const LGRPID_INDIC = &h000f Const LGRPID_GEORGIAN = &h0010 Const LGRPID_ARMENIAN = &h0011 'if WINVER >= &h0600 Const MUI_LANGUAGE_ID = &h4 Const MUI_LANGUAGE_NAME = &h8 Const MUI_MERGE_SYSTEM_FALLBACK = &h10 Const MUI_MERGE_USER_FALLBACK = &h20 Const MUI_THREAD_LANGUAGES = &h40 Const MUI_CONSOLE_FILTER = &h100 Const MUI_COMPLEX_SCRIPT_FILTER = &h200 Const MUI_RESET_FILTERS = &h001 Const MUI_USER_PREFERRED_UI_LANGUAGES = &h10 Const MUI_USE_INSTALLED_LANGUAGES = &h20 Const MUI_USE_SEARCH_ALL_LANGUAGES = &h40 Const MUI_LANG_NEUTRAL_PE_FILE = &h100 Const MUI_NON_LANG_NEUTRAL_FILE = &h200 Const MUI_MACHINE_LANGUAGE_SETTINGS = &h400 Const MUI_BYPASS_SESSION_BEHAVIOR = &h80 Const MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL = &h001 Const MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = &h002 Const MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI = &h004 Const MUI_QUERY_TYPE = &h001 Const MUI_QUERY_CHECKSUM = &h002 Const MUI_QUERY_LANGUAGE_NAME = &h004 Const MUI_QUERY_RESOURCE_TYPES = &h008 Const MUI_FILEINFO_VERSION = &h001 Const MUI_SXS_FALLBACK = &h00010000 Const MUI_FULL_LANGUAGE = &h01 Const MUI_PARTIAL_LANGUAGE = &h02 Const MUI_LIP_LANGUAGE = &h04 Const MUI_LANGUAGE_INSTALLED = &h20 Const MUI_LANGUAGE_LICENSED = &h40 Const MUI_PUBLIC_LANGUAGE_TYPE_FLAGS_MASK = &h67 'Const MUI_CALLBACK_ALL_FLAGS = MUI_CALLBACK_FLAG_UPGRADED_INSTALLATION '#endif TypeDef LGRPID = DWord TypeDef LCTYPE = DWord TypeDef CALTYPE = DWord TypeDef CALID = DWord Type CPINFO MaxCharSize As DWord DefaultChar[ELM(MAX_DEFAULTCHAR)] As Byte LeadByte[ELM(MAX_LEADBYTES)] As Byte End Type Type CPINFOEX MaxCharSize As DWord DefaultChar[ELM(MAX_DEFAULTCHAR)] As Byte LeadByte[ELM(MAX_LEADBYTES)] As Byte UnicodeDefaultChar As WCHAR CodePage As DWord CodePageName[ELM(MAX_PATH)] As TCHAR End Type Type NUMBERFMTA NumDigits As DWord LeadingZero As DWord Grouping As DWord lpDecimalSep As LPSTR lpThousandSep As LPSTR NegativeOrder As DWord End Type Type NUMBERFMTW NumDigits As DWord LeadingZero As DWord Grouping As DWord lpDecimalSep As LPWSTR lpThousandSep As LPWSTR NegativeOrder As DWord End Type #ifdef UNICODE TypeDef NUMBERFMT = NUMBERFMTW #else TypeDef NUMBERFMT = NUMBERFMTA #endif Type CURRENCYFMTA NumDigits As DWord LeadingZero As DWord Grouping As DWord lpDecimalSep As LPSTR lpThousandSep As LPSTR NegativeOrder As DWord PositiveOrder As DWord lpCurrencySymbol As LPSTR End Type Type CURRENCYFMTW NumDigits As DWord LeadingZero As DWord Grouping As DWord lpDecimalSep As LPWSTR lpThousandSep As LPWSTR NegativeOrder As DWord PositiveOrder As DWord lpCurrencySymbol As LPWSTR End Type #ifdef UNICODE TypeDef CURRENCYFMT = CURRENCYFMTW #else TypeDef CURRENCYFMT = CURRENCYFMTA #endif Const Enum SYSNLS_FUNCTION COMPARE_STRING = &h0001 End Enum TypeDef NLS_FUNCTION = DWord Type NLSVERSIONINFO dwNLSVersionInfoSize As DWord dwNLSVersion As DWord dwDefinedVersion As DWord End Type Type NLSVERSIONINFOEX dwNLSVersionInfoSize As DWord dwNLSVersion As DWord dwDefinedVersion As DWord dwEffectiveId As DWord guidCustomVersion As GUID End Type TypeDef GEOID = LONG TypeDef GEOTYPE = DWord TypeDef GEOCLASS = DWord Const GEOID_NOT_AVAILABLE = -1 Const Enum SYSGEOTYPE GEO_NATION = &h0001 GEO_LATITUDE = &h0002 GEO_LONGITUDE = &h0003 GEO_ISO2 = &h0004 GEO_ISO3 = &h0005 GEO_RFC1766 = &h0006 GEO_LCID = &h0007 GEO_FRIENDLYNAME = &h0008 GEO_OFFICIALNAME = &h0009 GEO_TIMEZONES = &h000A GEO_OFFICIALLANGUAGES = &h000B End Enum Const Enum SYSGEOCLASS GEOCLASS_NATION = 16 GEOCLASS_REGION = 14 End Enum '#if WINVER >= &h0600 Const Enum NORM_FORM NormalizationOther = 0 NormalizationC = &h1 NormalizationD = &h2 NormalizationKC = &h5 NormalizationKD = &h6 End Enum Const IDN_ALLOW_UNASSIGNED = &h01 Const IDN_USE_STD3_ASCII_RULES = &h02 Const VS_ALLOW_LATIN = &h0001 Const GSS_ALLOW_INHERITED_COMMON = &h0001 '#endif TypeDef LANGUAGEGROUP_ENUMPROC = *Function(LanguageGroup As LGRPID, lpLanguageGroupString As LPSTR, lpLanguageGroupNameString As LPSTR, dwFlags As DWord, lParam As LONG_PTR) As BOOL TypeDef LANGGROUPLOCALE_ENUMPROC = *Function(LanguageGroup As LGRPID, locale As LCID, lpLocaleString As LPSTR, lParam As LONG_PTR) As BOOL TypeDef UILANGUAGE_ENUMPROC = *Function(lpUILanguageString As LPTSTR, lParam As LONG_PTR) As BOOL TypeDef LOCALE_ENUMPROC = *Function(lpLocaleString As LPTSTR) As BOOL TypeDef CODEPAGE_ENUMPROC = *Function(lpCodePageString As LPTSTR) As BOOL TypeDef DATEFMT_ENUMPROC = *Function(lpDateFormatString As LPTSTR) As BOOL TypeDef DATEFMT_ENUMPROCEX = *Function(lpDateFormatString As LPTSTR, CalendarID As CALID) As BOOL TypeDef TIMEFMT_ENUMPROC = *Function(lpTimeFormatString As LPTSTR) As BOOL TypeDef CALINFO_ENUMPROC = *Function(lpCalendarInfoString As LPTSTR) As BOOL TypeDef CALINFO_ENUMPROCEX = *Function(lpCalendarInfoString As LPTSTR, Calendar As CALID) As BOOL TypeDef GEO_ENUMPROC = *Function(GeoId As GEOID) As BOOL Type FILEMUIINFO dwSize As DWord dwVersion As DWord dwFileType As DWord pChecksum[ELM(16)] As Byte pServiceChecksum[ELM(16)] As Byte dwLanguageNameOffset As DWord dwTypeIDMainSize As DWord dwTypeIDMainOffset As DWord dwTypeNameMainOffset As DWord dwTypeIDMUISize As DWord dwTypeIDMUIOffset As DWord dwTypeNameMUIOffset As DWord abBuffer[ELM(8)] As Byte End Type Const IS_HIGH_SURROGATE(wch) = (((wch) >= HIGH_SURROGATE_START) And ((wch) <= HIGH_SURROGATE_END)) Const IS_LOW_SURROGATE(wch) = (((wch) >= LOW_SURROGATE_START) And ((wch) <= LOW_SURROGATE_END)) Const IS_SURROGATE_PAIR(hs, ls) = (IS_HIGH_SURROGATE(hs) And IS_LOW_SURROGATE(ls)) Function FILEMUIINFO_GET_CULTURE(pInfo As *FILEMUIINFO) As LPWSTR If pInfo->dwLanguageNameOffset > 0 Then FILEMUIINFO_GET_CULTURE = ((pInfo As ULONG_PTR) + pInfo->dwLanguageNameOffset) As LPWSTR End If End Function Function FILEMUIINFO_GET_MAIN_TYPEIDS(pInfo As *FILEMUIINFO) As *DWord If pInfo->dwTypeIDMainOffset > 0 Then FILEMUIINFO_GET_MAIN_TYPEIDS = ((pInfo As ULONG_PTR) + pInfo->dwTypeIDMainOffset) As *DWord End If End Function Function FILEMUIINFO_GET_MAIN_TYPEID(pInfo As *FILEMUIINFO, iType As SIZE_T) As *DWord If iType < pInfo->dwTypeIDMainSize And pInfo->dwTypeIDMainOffset > 0 Then FILEMUIINFO_GET_MAIN_TYPEID = ((pInfo As ULONG_PTR) + pInfo->dwTypeIDMainOffset + iType) As *DWord End If End Function Function FILEMUIINFO_GET_MAIN_TYPENAMES(pInfo As *FILEMUIINFO) As LPWSTR If pInfo->dwTypeNameMainOffset > 0 Then FILEMUIINFO_GET_MAIN_TYPENAMES = ((pInfo As ULONG_PTR) + pInfo->dwTypeNameMainOffset) As LPWSTR End If End Function Function FILEMUIINFO_GET_MUI_TYPEIDS(pInfo As *FILEMUIINFO) As *DWord If pInfo->dwTypeIDMUIOffset > 0 Then FILEMUIINFO_GET_MUI_TYPEIDS = ((pInfo As ULONG_PTR) + pInfo->dwTypeIDMUIOffset) As *DWord End If End Function Function FILEMUIINFO_GET_MUI_TYPEID(pInfo As *FILEMUIINFO, iType As SIZE_T) As *DWord If iType < pInfo->dwTypeIDMUISize And pInfo->dwTypeIDMUIOffset > 0 Then FILEMUIINFO_GET_MUI_TYPEID = ((pInfo As ULONG_PTR) + pInfo->dwTypeIDMUIOffset + iType) As *DWord End If End Function Function FILEMUIINFO_GET_MUI_TYPENAMES(pInfo As *FILEMUIINFO) As LPWSTR If pInfo->dwTypeNameMUIOffset > 0 Then FILEMUIINFO_GET_MUI_TYPENAMES = ((pInfo As ULONG_PTR) + pInfo->dwTypeNameMUIOffset) As LPWSTR End If End Function Declare Function IsValidCodePage Lib "kernel32" (CodePage As DWord) As BOOL Declare Function GetACP Lib "kernel32" () As DWord Declare Function GetOEMCP Lib "kernel32" () As DWord Declare Function GetCPInfo Lib "kernel32" (CodePage As DWord, ByRef CPInfo As CPINFO) As BOOL Declare Function GetCPInfoEx Lib "kernel32" Alias _FuncName_GetCPInfoEx (CodePage As DWord, dwFlags As DWord, ByRef CPInfo As CPINFOEX) As BOOL Declare Function IsDBCSLeadByte Lib "kernel32" (TestChar As Byte) As BOOL Declare Function IsDBCSLeadByteEx Lib "kernel32" (CodePage As DWord, TestChar As Byte) As BOOL Declare Function MultiByteToWideChar Lib "kernel32" (CodePage As DWord, dwFlags As DWord, pMultiByteStr As PCSTR, cchMultiByte As Long, pWideCharStr As PWSTR, cchWideChar As Long) As Long Declare Function WideCharToMultiByte Lib "Kernel32" (CodePage As DWord, dwFlags As DWord, pWideCharStr As PCWSTR, cchWideChar As Long, pMultiByteStr As PSTR, cbMultiByte As Long, pDefaultChar As PCSTR, pUsedDefaultChar As *BOOL) As Long Declare Function CompareString Lib "kernel32" Alias _FuncName_CompareString (Locale As LCID, dwCmpFlags As DWord, lpString1 As LPCTSTR, cchCount1 As Long, lpString2 As LPCTSTR, cchCount2 As Long) As Long '#if WINVER >= &h0600 Declare Function FindNLSString Lib "kernel32" (Locale As LCID, dwFindNLSStringFlags As DWord, lpStringSource As LPCWSTR, cchSource As Long, lpStringValue As LPCWSTR, cchValue As Long, pcchFound As *Long) As Long '#endif Declare Function LCMapString Lib "kernel32" Alias _FuncName_LCMapString (Locale As LCID, dwMapFlags As DWord, lpSrcStr As LPCTSTR, cchSrc As Long, lpDestStr As LPTSTR, cchDest As Long) As Long Declare Function GetLocaleInfo Lib "kernel32" Alias _FuncName_GetLocaleInfo (Locale As LCID, LCType As LCTYPE, lpLCData As LPTSTR, cchData As Long) As Long Declare Function SetLocaleInfo Lib "kernel32" Alias _FuncName_SetLocaleInfo (Locale As LCID, LCType As LCTYPE, lpLCData As LPTSTR) As BOOL '#if WINVER >= &h040A Declare Function GetCalendarInfo Lib "kernel32" Alias _FuncName_GetCalendarInfo (Locale As LCID, Calendar As CALID, CalType As CALTYPE, lpCalData As LPTSTR, cchData As Long, lpValue As *DWord) As Long Declare Function SetCalendarInfo Lib "kernel32" Alias _FuncName_SetCalendarInfo (Locale As LCID, Calendar As CALID, CalType As CALTYPE, lpCalData As LPTSTR) As BOOL '#endif '#if WINVER >= &h0600 Declare Function LCIDToLocaleName Lib "kernel32" (Locale As LCID, lpName As LPWSTR, cchName As Long, dwFlags As DWord) As Long Declare Function LocaleNameToLCID Lib "kernel32" (lpName As LPCWSTR, dwFlags As DWord) As LCID '#endif Declare Function GetTimeFormat Lib "kernel32" Alias _FuncName_GetTimeFormat (Locale As LCID, dwFlags As DWord, ByRef Time As SYSTEMTIME, lpFormat As LPCTSTR, lpTimeStr As LPTSTR, cchTime As Long) As Long '#if WINVER >= &h0600 Declare Function GetDurationFormat Lib "kernel32" (Locale As LCID, dwFlags As DWord, lpDuration As *SYSTEMTIME, ullDuration As QWord, lpFormat As LPCWSTR, lpDurationStr As LPWSTR, cchDuration As Long) As Long '#endif Declare Function GetDateFormat Lib "kernel32" Alias _FuncName_GetDateFormat (Locale As LCID, dwFlags As DWord, ByRef Date As SYSTEMTIME, lpFormat As LPCTSTR, lpDateStr As LPTSTR, cchDate As Long) As Long Declare Function GetNumberFormat Lib "kernel32" Alias _FuncName_GetNumberFormat (Locale As LCID, dwFlags As DWord, lpValue As LPCTSTR, lpFormat As *NUMBERFMT, lpNumberStr As LPTSTR, cchNumber As Long) As Long Declare Function GetCurrencyFormat Lib "kernel32" Alias _FuncName_GetCurrencyFormat (Locale As LCID, dwFlags As DWord, lpValue As LPCTSTR, lpFormat As *CURRENCYFMT, lpCurrencyStr As LPTSTR, cchCurrency As Long) As Long Declare Function EnumCalendarInfo Lib "kernel32" Alias _FuncName_EnumCalendarInfo (lpCalInfoEnumProc As CALINFO_ENUMPROC, Locale As LCID, Calendar As CALID, CalType As CALTYPE) As BOOL '#if WINVER >= &h0500 Declare Function EnumCalendarInfoEx Lib "kernel32" Alias _FuncName_EnumCalendarInfo (lpCalInfoEnumProcEx As CALINFO_ENUMPROCEX, Locale As LCID, Calendar As CALID, CalType As CALTYPE) As BOOL '#endif Declare Function EnumTimeFormats Lib "kernel32" Alias _FuncName_EnumTimeFormats (lpTimeFmtEnumProc As TIMEFMT_ENUMPROC, Locale As LCID, dwFlags As DWord) As BOOL Declare Function EnumDateFormats Lib "kernel32" Alias _FuncName_EnumDateFormats (lpDateFmtEnumProc As DATEFMT_ENUMPROC, Locale As LCID, dwFlags As DWord) As BOOL '#if WINVER >= &h0500 'Declare Function EnumDateFormatsEx Lib "kernel32" Alias _FuncName_EnumDateFormatsEx (lpDateFmtEnumProcEx As DATEFMT_ENUMPROCEX, Locale As LCID, dwFlags As DWord) As BOOL '#endif '#if WINVER >= &h0500 Declare Function IsValidLanguageGroup Lib "kernel32" (LanguageGroup As LGRPID, dwFlags As DWord) As BOOL '#endif Declare Function GetNLSVersion Lib "kernel32" (Function_ As NLS_FUNCTION, Locale As LCID, ByRef VersionInformation As NLSVERSIONINFO) As BOOL Declare Function GetNLSVersion Lib "kernel32" (Function_ As NLS_FUNCTION, dwFlags As DWord, ByRef VersionInformation As NLSVERSIONINFO, lpString As LPCWSTR, cchStr As Long) As BOOL Declare Function IsValidLocale Lib "kernel32" (Locale As LCID, dwFlags As DWord) As BOOL Declare Function GetGeoInfo Lib "kernel32" Alias _FuncName_GetGeoInfo (Location As GEOID, GeoType As GEOTYPE, lpGeoData As LPTSTR, cchData As Long, LangId As LANGID) As Long Declare Function EnumSystemGeoID Lib "kernel32" (GeoClass As GEOCLASS, ParentGeoId As GEOID, lpGeoEnumProc As GEO_ENUMPROC) As BOOL Declare Function SetUserGeoID Lib "kernel32" (GeoClass As GEOCLASS) As GEOID Declare Function SetUserGeoID Lib "kernel32" (GeoId As GEOID) As BOOL Declare Function ConvertDefaultLocale Lib "kernel32" (Locale As LCID) As LCID Declare Function GetThreadLocale Lib "kernel32" () As LCID Declare Function SetThreadLocale Lib "kernel32" (Locale As LCID) As BOOL '#if WINVER >= &h0500 Declare Function GetSystemDefaultUILanguage Lib "kernel32" () As LANGID Declare Function GetUserDefaultUILanguage Lib "kernel32" () As LANGID '#endif Declare Function GetSystemDefaultLangID Lib "kernel32" () As LANGID Declare Function GetUserDefaultLangID Lib "kernel32" () As LANGID Declare Function GetSystemDefaultLCID Lib "kernel32" () As LCID Declare Function GetUserDefaultLCID Lib "kernel32" () As LCID Declare Function SetThreadUILanguage Lib "kernel32" (LangId As LANGID) As LANGID '#if WINVER >= &h0600 Declare Function GetThreadUILanguage Lib "kernel32" () As LANGID Declare Function GetUserPreferredUILanguages Lib "kernel32" (dwFlags As DWord, ByRef ulNumLanguages As DWord, pwszLanguagesBuffer As PWSTR, ByRef cchLanguagesBuffer As DWord) As BOOL Declare Function GetSystemPreferredUILanguages Lib "kernel32" (dwFlags As DWord, ByRef ulNumLanguages As DWord, pwszLanguagesBuffer As PWSTR, ByRef cchLanguagesBuffer As DWord) As BOOL Declare Function GetThreadPreferredUILanguages Lib "kernel32" (dwFlags As DWord, ByRef ulNumLanguages As DWord, pwszLanguagesBuffer As PWSTR, ByRef cchLanguagesBuffer As DWord) As BOOL Declare Function SetThreadPreferredUILanguages Lib "kernel32" (dwFlags As DWord, pwszLanguagesBuffer As PCWSTR, pulNumLanguages As *DWord) As BOOL Declare Function GetFileMUIInfo Lib "kernel32" (dwFlags As DWord, pcwszFilePath As PCWSTR, ByRef FileMUIInfo As FILEMUIINFO, ByRef pcbFileMUIInfo As DWord) As BOOL Declare Function GetFileMUIPath Lib "kernel32" (dwFlags As DWord, pcwszFilePath As PCWSTR, pwszLanguage As PCWSTR, ByRef pcchLanguage As DWord, pwszFileMUIPath As PWSTR, ByRef pcchFileMUIPath As DWord, ByRef ululEnumerator As QWord) As BOOL Declare Function GetUILanguageInfo Lib "kernel32" (dwFlags As DWord, pwszLanguage As PCWSTR, pwszFallbackLanguages As PWSTR, pcchFallbackLanguages As *DWord, ByRef Attributes As DWord) As BOOL Declare Function NotifyUILanguageChange Lib "kernel32" (dwFlags As DWord, pcwstrNewLanguage As PCWSTR, pcwstrPreviousLanguage As PCWSTR, dwReserved As DWord, pdwStatusRtrn As *DWord) As BOOL '#endif Declare Function GetStringTypeEx Lib "kernel32" Alias _FuncName_GetStringTypeEx (Locale As LCID, dwInfoType As DWord, lpSrcStr As LPCTSTR, cchSrc As Long, ByRef CharType As Word) As BOOL Declare Function GetStringTypeA Lib "kernel32" (Locale As LCID, dwInfoType As DWord, lpSrcStr As LPCTSTR, cchSrc As Long, ByRef CharType As Word) As BOOL Declare Function GetStringTypeW Lib "kernel32" (dwInfoType As DWord, lpSrcStr As LPCTSTR, cchSrc As Long, ByRef CharType As Word) As BOOL Declare Function FoldString Lib "kernel32" Alias _FuncName_FoldString (dwMapFlags As DWord, lpSrcStr As LPCTSTR, cchSrc As Long, lpDestStr As LPTSTR, cchDest As Long) As Long '#if WINVER >= &h0500 'Declare Function EnumSystemLanguageGroups Lib "kernel32" Alias _FuncName_EnumSystemLanguageGroups (lpLanguageGroupEnumProc As LANGUAGEGROUP_ENUMPROC, dwFlags As DWord, lParam As LONG_PTR) As BOOL 'Declare Function EnumLanguageGroupLocales Lib "kernel32" Alias _FuncName_EnumLanguageGroupLocales (lpLangGroupLocaleEnumProc As LANGGROUPLOCALE_ENUMPROC, dwFlags As DWord, lParam As LONG_PTR) As BOOL 'Declare Function EnumUILanguages Lib "kernel32" Alias _FuncName_EnumUILanguages (EnumUILanguages As UILANGUAGE_ENUMPROC, dwFlags As DWord, lParam As LONG_PTR) As BOOL '#endif Declare Function EnumSystemLocales Lib "kernel32" Alias _FuncName_EnumSystemLocales (lpLocaleEnumProc As LOCALE_ENUMPROC, dwFlags As DWord) As BOOL Declare Function EnumSystemCodePages Lib "kernel32" Alias _FuncName_EnumSystemCodePages (lpCodePageEnumProc As CODEPAGE_ENUMPROC, dwFlags As DWord) As BOOL '#if WINVER >= &h0600 Declare Function NormalizeString Lib "kernel32" (NormForm As NORM_FORM, lpSrcString As LPCWSTR, cwSrcLength As Long, lpDstString As LPWSTR, cwDstLength As Long) As Long Declare Function IsNormalizedString Lib "kernel32" (NormForm As NORM_FORM, lpString As LPCWSTR, cwLength As Long) As BOOL Declare Function IdnToAscii Lib "kernel32" (dwFlags As DWord,lpUnicodeCharStr As LPCWSTR, cchUnicodeChar As Long, lpASCIICharStr As LPWSTR, cchASCIIChar As Long) As Long Declare Function IdnToNameprepUnicode Lib "kernel32" (dwFlags As DWord, lpUnicodeCharStr As LPCWSTR,cchUnicodeChar As Long, lpNameprepCharStr As LPWSTR, cchNameprepChar As Long) As Long Declare Function IdnToUnicode Lib "kernel32" (dwFlags As DWord, lpASCIICharStr As LPCWSTR, cchASCIIChar As Long, lpUnicodeCharStr As LPWSTR, cchUnicodeChar As Long) As Long Declare Function VerifyScripts Lib "kernel32" (dwFlags As DWord, lpLocaleScripts As LPCWSTR, cchLocaleScripts As Long, lpTestScripts As LPCWSTR, cchTestScripts As Long) As BOOL Declare Function GetStringScripts Lib "kernel32" (dwFlags As DWord, lpString As LPCWSTR, cchString As Long, lpScripts As LPWSTR, cchScripts As Long) As Long '#endif '#if WINVER >= &h0600 'Const LOCALE_NAME_USER_DEFAULT = NULL 'Const LOCALE_NAME_INVARIANT = L"" 'Const LOCALE_NAME_SYSTEM_DEFAULT = L"!x-sys-default-locale" Declare Function GetLocaleInfoEx Lib "kernel32" (lpLocaleName As LPCWSTR, LCType As LCTYPE, lpLCData As LPWSTR, cchData As Long) As Long Declare Function GetCalendarInfoEx Lib "kernel32" (lpLocaleName As LPCWSTR, Calendar As CALID, lpReserved As LPCWSTR, CalType As CALTYPE, lpCalData As LPWSTR, cchData As Long, lpValue As *DWord) As Long Declare Function GetTimeFormatEx Lib "kernel32" (lpLocaleName As LPCWSTR, dwFlags As DWord, ByRef Time As SYSTEMTIME, lpFormat As LPCWSTR, lpTimeStr As LPWSTR, cchTime As Long) As Long Declare Function GetDateFormatEx Lib "kernel32" (lpLocaleName As LPCWSTR, dwFlags As DWord, ByRef Date As SYSTEMTIME, lpFormat As LPCWSTR, lpDateStr As LPWSTR, cchDate As Long, lpCalendar As LPCWSTR) As Long Declare Function GetDurationFormatEx Lib "kernel32" (lpLocaleName As LPCWSTR, dwFlags As DWord, lpDuration As *SYSTEMTIME, ullDuration As QWord, lpFormat As LPCWSTR, lpDurationStr As LPWSTR, cchDuration As Long) As Long Declare Function GetNumberFormatEx Lib "kernel32" (lpLocaleName As LPCWSTR, dwFlags As DWord, lpValue As LPCWSTR, lpFormat As *NUMBERFMTW, lpNumberStr As LPWSTR, cchNumber As Long) As Long Declare Function GetCurrencyFormatEx Lib "kernel32" (lpLocaleName As LPCWSTR, dwFlags As DWord, lpValue As LPCWSTR, lpFormat As *CURRENCYFMTW, lpCurrencyStr As LPWSTR, cchCurrency As Long) As Long Declare Function GetUserDefaultLocaleName Lib "kernel32" (lpLocaleName As LPWSTR, cchLocaleName As Long) As Long Declare Function GetSystemDefaultLocaleName Lib "kernel32" (lpLocaleName As LPWSTR, cchLocaleName As Long) As Long Declare Function GetNLSVersionEx Lib "kernel32" (function_ As NLS_FUNCTION, lpLocaleName As LPCWSTR, ByRef VersionInformation As NLSVERSIONINFOEX) As BOOL Declare Function CompareStringEx Lib "kernel32" (lpLocaleName As LPWSTR, dwCmpFlags As DWord, lpString1 As LPCWSTR, cchCount1 As Long, lpString2 As LPCWSTR, cchCount2 As Long, lpVersionInformation As *NLSVERSIONINFO, lpReserved As VoidPtr, lParam As LPARAM) As Long Declare Function FindNLSString Lib "kernel32" (lpLocaleName As LPWSTR, dwFindNLSStringFlags As DWord, lpStringSource As LPCWSTR, cchSource As Long, lpStringValue As LPCWSTR, cchValue As Long, pcchFound As *Long, lpVersionInformation As *NLSVERSIONINFO, lpReserved As VoidPtr, lParam As LPARAM) As Long Declare Function LCMapStringEx Lib "kernel32" (lpLocaleName As LPWSTR, dwMapFlags As DWord, lpSrcStr As LPCWSTR, cchSrc As Long, lpDestStr As LPWSTR, cchDest As Long, lpVersionInformation As *NLSVERSIONINFO, lpReserved As VoidPtr, lParam As LPARAM) As Long Declare Function CompareStringOrdinal Lib "kernel32" (lpString1 As LPCTSTR, cchCount1 As Long, lpString2 As LPCTSTR, cchCount2 As Long, bIgnoreCase As BOOL) As Long Declare Function IsValidLocaleName Lib "kernel32" (lpLocaleName As LPCWSTR) As BOOL TypeDef CALINFO_ENUMPROCEXEX = *Function(lpCalendarInfoString As LPWSTR, Calendar As CALID, lParam As LPARAM) As BOOL Declare Function EnumCalendarInfoExEx Lib "kernel32" (pCalInfoEnumProcExEx As CALINFO_ENUMPROCEXEX, lpLocaleName As LPCWSTR, Calendar As CALID, lpReserved As LPCWSTR, CalType As CALTYPE, lParam As LPARAM) As BOOL TypeDef DATEFMT_ENUMPROCEXEX = *Function(lpDateFormatString As LPWSTR, CalendarId As CALID, lParam As LPARAM) As BOOL Declare Function EnumDateFormatsExEx Lib "kernel32" (lpDateFmtEnumProcExEx As DATEFMT_ENUMPROCEXEX, lpLocaleName As LPCWSTR, dwFlags As DWord, lParam As LPARAM) As BOOL TypeDef TIMEFMT_ENUMPROCEX = *Function(lpTimeFormatString As LPWSTR, lParam As LPARAM) As BOOL Declare Function EnumTimeFormatsEx Lib "kernel32" (lpTimeFmtEnumProcEx As TIMEFMT_ENUMPROCEX, lpLocaleName As LPCWSTR, dwFlags As DWord, lParam As LPARAM) As BOOL TypeDef LOCALE_ENUMPROCEX = *Function(lpTimeFormatString As LPWSTR, dwFlags As DWord, lParam As LPARAM) As BOOL Declare Function EnumSystemLocalesEx Lib "kernel32" (lpLocaleEnumProcEx As LOCALE_ENUMPROCEX, dwFlags As DWord, lParam As LPARAM, lpReserved As VoidPtr) As BOOL '#endif