/* * winnls.h Win32 National Language Support (NLS) functions * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #ifndef _WINNLS_ #define _WINNLS_ #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #ifdef __cplusplus extern "C" { #endif /* Macro to specify normalization functions */ #define WINNORMALIZEAPI DECLSPEC_IMPORT /* NLS primitive data types */ typedef DWORD LGRPID; typedef DWORD LCTYPE; typedef DWORD CALTYPE; typedef DWORD CALID; typedef DWORD NLS_FUNCTION; typedef LONG GEOID; typedef DWORD GEOTYPE; typedef DWORD GEOCLASS; /* Maximum lengths */ #define MAX_LEADBYTES 12 #define MAX_DEFAULTCHAR 2 /* Surrogate pair lengths */ #define HIGH_SURROGATE_START 0xD800 #define HIGH_SURROGATE_END 0xDBFF #define LOW_SURROGATE_START 0xDC00 #define LOW_SURROGATE_END 0xDFFF /* MultiByteToWideChar() flags */ #define MB_PRECOMPOSED 0x00000001L #define MB_COMPOSITE 0x00000002L #define MB_USEGLYPHCHARS 0x00000004L #define MB_ERR_INVALID_CHARS 0x00000008L /* WideCharToMultiByte() flags */ #define WC_DISCARDNS 0x00000010L #define WC_SEPCHARS 0x00000020L #define WC_DEFAULTCHAR 0x00000040L #define WC_COMPOSITECHECK 0x00000200L #if (WINVER >= 0x0500) #define WC_NO_BEST_FIT_CHARS 0x00000400L #endif /* Character information types */ #define CT_CTYPE1 0x00000001L #define CT_CTYPE2 0x00000002L #define CT_CTYPE3 0x00000004L /* Character information flags used with CT_CTYPE1 */ #define C1_UPPER 0x0001 #define C1_LOWER 0x0002 #define C1_DIGIT 0x0004 #define C1_SPACE 0x0008 #define C1_PUNCT 0x0010 #define C1_CNTRL 0x0020 #define C1_BLANK 0x0040 #define C1_XDIGIT 0x0080 #define C1_ALPHA 0x0100 #define C1_DEFINED 0x0200 /* Character information flags used with CT_CTYPE2 */ #define C2_LEFTTORIGHT 0x0001 #define C2_RIGHTTOLEFT 0x0002 #define C2_EUROPENUMBER 0x0003 #define C2_EUROPESEPARATOR 0x0004 #define C2_EUROPETERMINATOR 0x0005 #define C2_ARABICNUMBER 0x0006 #define C2_COMMONSEPARATOR 0x0007 #define C2_BLOCKSEPARATOR 0x0008 #define C2_SEGMENTSEPARATOR 0x0009 #define C2_WHITESPACE 0x000A #define C2_OTHERNEUTRAL 0x000B #define C2_NOTAPPLICABLE 0x0000 /* Character information flags used with CT_CTYPE3 */ #define C3_NONSPACING 0x0001 #define C3_DIACRITIC 0x0002 #define C3_VOWELMARK 0x0004 #define C3_SYMBOL 0x0008 #define C3_KATAKANA 0x0010 #define C3_HIRAGANA 0x0020 #define C3_HALFWIDTH 0x0040 #define C3_FULLWIDTH 0x0080 #define C3_IDEOGRAPH 0x0100 #define C3_KASHIDA 0x0200 #define C3_LEXICAL 0x0400 #define C3_HIGHSURROGATE 0x0800 #define C3_LOWSURROGATE 0x1000 #define C3_ALPHA 0x8000 #define C3_NOTAPPLICABLE 0x0000 /* CompareString() and LCMapString() flags */ #define NORM_IGNORECASE 0x00000001L #define NORM_IGNORENONSPACE 0x00000002L #define NORM_IGNORESYMBOLS 0x00000004L #define LINGUISTIC_IGNORECASE 0x00000010L #define LINGUISTIC_IGNOREDIACRITIC 0x00000020L #define NORM_IGNOREKANATYPE 0x00010000L #define NORM_IGNOREWIDTH 0x00020000L #define NORM_LINGUISTIC_CASING 0x08000000L /* FoldString() flags */ #define MAP_FOLDCZONE 0x00000010L #define MAP_PRECOMPOSED 0x00000020L #define MAP_COMPOSITE 0x00000040L #define MAP_FOLDDIGITS 0x00000080L #if (WINVER >= 0x0500) #define MAP_EXPAND_LIGATURES 0x00002000L #endif /* LCMapString() flags */ #define LCMAP_LOWERCASE 0x00000100L #define LCMAP_UPPERCASE 0x00000200L #if (WINVER >= 0x0601) #define LCMAP_TITLECASE 0x00000300L #endif #define LCMAP_SORTKEY 0x00000400L #define LCMAP_BYTEREV 0x00000800L #define LCMAP_HIRAGANA 0x00100000L #define LCMAP_KATAKANA 0x00200000L #define LCMAP_HALFWIDTH 0x00400000L #define LCMAP_FULLWIDTH 0x00800000L #define LCMAP_LINGUISTIC_CASING 0x01000000L #define LCMAP_SIMPLIFIED_CHINESE 0x02000000L #define LCMAP_TRADITIONAL_CHINESE 0x04000000L /* FindNLSString() flags */ #define FIND_STARTSWITH 0x00100000L #define FIND_ENDSWITH 0x00200000L #define FIND_FROMSTART 0x00400000L #define FIND_FROMEND 0x00800000L /* EnumSystemLocalesEx() flags */ #if (WINVER >= 0x0600) #define LOCALE_ALL 0x00000000L #define LOCALE_WINDOWS 0x00000001L #define LOCALE_SUPPLEMENTAL 0x00000002L #define LOCALE_ALTERNATE_SORTS 0x00000004L #define LOCALE_REPLACEMENT 0x00000008L #endif #if (WINVER >= 0x0601) #define LOCALE_NEUTRALDATA 0x00000010L #define LOCALE_SPECIFICDATA 0x00000020L #endif /* EnumSystemLanguageGroups() flags */ #define LGRPID_INSTALLED 0x00000001L #define LGRPID_SUPPORTED 0x00000002L /* EnumSystemLocales() flags */ #define LCID_INSTALLED 0x00000001L #define LCID_SUPPORTED 0x00000002L #define LCID_ALTERNATE_SORTS 0x00000004L /* EnumSystemCodePages() flags */ #define CP_INSTALLED 0x00000001L #define CP_SUPPORTED 0x00000002L /* CompareString() flags */ #define SORT_STRINGSORT 0x00001000L #if (WINVER >= 0x0601) #define SORT_DIGITSASNUMBERS 0x00000008L #endif /* CompareString() return values */ #define CSTR_LESS_THAN 1 #define CSTR_EQUAL 2 #define CSTR_GREATER_THAN 3 /* Code page identifiers */ #define CP_ACP 0 #define CP_OEMCP 1 #define CP_MACCP 2 #define CP_THREAD_ACP 3 #define CP_SYMBOL 42 #define CP_UTF7 65000 #define CP_UTF8 65001 /* Country codes */ #define CTRY_DEFAULT 0 #define CTRY_ALBANIA 355 #define CTRY_ALGERIA 213 #define CTRY_ARGENTINA 54 #define CTRY_ARMENIA 374 #define CTRY_AUSTRALIA 61 #define CTRY_AUSTRIA 43 #define CTRY_AZERBAIJAN 994 #define CTRY_BAHRAIN 973 #define CTRY_BELARUS 375 #define CTRY_BELGIUM 32 #define CTRY_BELIZE 501 #define CTRY_BOLIVIA 591 #define CTRY_BRAZIL 55 #define CTRY_BRUNEI_DARUSSALAM 673 #define CTRY_BULGARIA 359 #define CTRY_CANADA 2 #define CTRY_CARIBBEAN 1 #define CTRY_CHILE 56 #define CTRY_COLOMBIA 57 #define CTRY_COSTA_RICA 506 #define CTRY_CROATIA 385 #define CTRY_CZECH 420 #define CTRY_DENMARK 45 #define CTRY_DOMINICAN_REPUBLIC 1 #define CTRY_ECUADOR 593 #define CTRY_EGYPT 20 #define CTRY_EL_SALVADOR 503 #define CTRY_ESTONIA 372 #define CTRY_FAEROE_ISLANDS 298 #define CTRY_FINLAND 358 #define CTRY_FRANCE 33 #define CTRY_GEORGIA 995 #define CTRY_GERMANY 49 #define CTRY_GREECE 30 #define CTRY_GUATEMALA 502 #define CTRY_HONDURAS 504 #define CTRY_HONG_KONG 852 #define CTRY_HUNGARY 36 #define CTRY_ICELAND 354 #define CTRY_INDIA 91 #define CTRY_INDONESIA 62 #define CTRY_IRAN 981 #define CTRY_IRAQ 964 #define CTRY_IRELAND 353 #define CTRY_ISRAEL 972 #define CTRY_ITALY 39 #define CTRY_JAMAICA 1 #define CTRY_JAPAN 81 #define CTRY_JORDAN 962 #define CTRY_KAZAKSTAN 7 #define CTRY_KENYA 254 #define CTRY_KUWAIT 965 #define CTRY_KYRGYZSTAN 996 #define CTRY_LATVIA 371 #define CTRY_LEBANON 961 #define CTRY_LIBYA 218 #define CTRY_LIECHTENSTEIN 41 #define CTRY_LITHUANIA 370 #define CTRY_LUXEMBOURG 352 #define CTRY_MACAU 853 #define CTRY_MACEDONIA 389 #define CTRY_MALAYSIA 60 #define CTRY_MALDIVES 960 #define CTRY_MEXICO 52 #define CTRY_MONACO 33 #define CTRY_MONGOLIA 976 #define CTRY_MOROCCO 212 #define CTRY_NETHERLANDS 31 #define CTRY_NEW_ZEALAND 64 #define CTRY_NICARAGUA 505 #define CTRY_NORWAY 47 #define CTRY_OMAN 968 #define CTRY_PAKISTAN 92 #define CTRY_PANAMA 507 #define CTRY_PARAGUAY 595 #define CTRY_PERU 51 #define CTRY_PHILIPPINES 63 #define CTRY_POLAND 48 #define CTRY_PORTUGAL 351 #define CTRY_PRCHINA 86 #define CTRY_PEURTO_RICO 1 #define CTRY_QATAR 974 #define CTRY_ROMANIA 40 #define CTRY_RUSSIA 7 #define CTRY_SAUDI_ARABIA 966 #define CTRY_SERBIA 381 #define CTRY_SINGAPORE 65 #define CTRY_SLOVAK 421 #define CTRY_SLOVENIA 386 #define CTRY_SOUTH_AFRICA 27 #define CTRY_SOUTH_KOREA 82 #define CTRY_SPAIN 34 #define CTRY_SWEDEN 46 #define CTRY_SWITZERLAND 41 #define CTRY_SYRIA 963 #define CTRY_TAIWAN 886 #define CTRY_TATARSTAN 7 #define CTRY_THAILAND 66 #define CTRY_TRINIDAD_Y_TOBAGO 1 #define CTRY_TUNISIA 216 #define CTRY_TURKEY 90 #define CTRY_UAE 971 #define CTRY_UKRAINE 380 #define CTRY_UNITED_KINGDOM 44 #define CTRY_UNITED_STATES 1 #define CTRY_URUGUAY 598 #define CTRY_UZBEKISTAN 7 #define CTRY_VENEZUELA 58 #define CTRY_VIET_NAM 84 #define CTRY_YEMEN 967 #define CTRY_ZIMBABWE 263 /* Locale information type flags */ #define LOCALE_NOUSEROVERRIDE 0x80000000L #define LOCALE_USE_CP_ACP 0x40000000L #if (WINVER >= 0x0400) #define LOCALE_RETURN_NUMBER 0x20000000L #endif #if (WINVER >= 0x0601) #define LOCALE_RETURN_GENITIVE_NAMES 0x10000000L #define LOCALE_ALLOW_NEUTRAL_NAMES 0x08000000L #endif /* Locale information types */ #define LOCALE_ILANGUAGE 0x00000001L #define LOCALE_SLANGUAGE 0x00000002L #define LOCALE_SENGLANGUAGE 0x00001001L #define LOCALE_SABBREVLANGNAME 0x00000003L #define LOCALE_SNATIVELANGNAME 0x00000004L #define LOCALE_ICOUNTRY 0x00000005L #define LOCALE_SCOUNTRY 0x00000006L #define LOCALE_SENGCOUNTRY 0x00001002L #define LOCALE_SABBREVCTRYNAME 0x00000007L #define LOCALE_SNATIVECTRYNAME 0x00000008L #define LOCALE_IGEOID 0x0000005BL #define LOCALE_IDEFAULTLANGUAGE 0x00000009L #define LOCALE_IDEFAULTCOUNTRY 0x0000000AL #define LOCALE_IDEFAULTCODEPAGE 0x0000000BL #define LOCALE_IDEFAULTANSICODEPAGE 0x00001004L #define LOCALE_IDEFAULTMACCODEPAGE 0x00001011L #define LOCALE_SLIST 0x0000000CL #define LOCALE_IMEASURE 0x0000000DL #define LOCALE_SDECIMAL 0x0000000EL #define LOCALE_STHOUSAND 0x0000000FL #define LOCALE_SGROUPING 0x00000010L #define LOCALE_IDIGITS 0x00000011L #define LOCALE_ILZERO 0x00000012L #define LOCALE_INEGNUMBER 0x00001010L #define LOCALE_SNATIVEDIGITS 0x00000013L #define LOCALE_SCURRENCY 0x00000014L #define LOCALE_SINTLSYMBOL 0x00000015L #define LOCALE_SMONDECIMALSEP 0x00000016L #define LOCALE_SMONTHOUSANDSEP 0x00000017L #define LOCALE_SMONGROUPING 0x00000018L #define LOCALE_ICURRDIGITS 0x00000019L #define LOCALE_IINTLCURRDIGITS 0x0000001AL #define LOCALE_ICURRENCY 0x0000001BL #define LOCALE_INEGCURR 0x0000001CL #define LOCALE_SDATE 0x0000001DL #define LOCALE_STIME 0x0000001EL #define LOCALE_SSHORTDATE 0x0000001FL #define LOCALE_SLONGDATE 0x00000020L #define LOCALE_STIMEFORMAT 0x00001003L #define LOCALE_IDATE 0x00000021L #define LOCALE_ILDATE 0x00000022L #define LOCALE_ITIME 0x00000023L #define LOCALE_ITIMEMARKPOSN 0x00001005L #define LOCALE_ICENTURY 0x00000024L #define LOCALE_ITLZERO 0x00000025L #define LOCALE_IDAYLZERO 0x00000026L #define LOCALE_IMONLZERO 0x00000027L #define LOCALE_S1159 0x00000028L #define LOCALE_S2359 0x00000029L #define LOCALE_ICALENDARTYPE 0x00001009L #define LOCALE_IOPTIONALCALENDAR 0x0000100BL #define LOCALE_IFIRSTDAYOFWEEK 0x0000100CL #define LOCALE_IFIRSTWEEKOFYEAR 0x0000100DL #define LOCALE_SDAYNAME1 0x0000002AL #define LOCALE_SDAYNAME2 0x0000002BL #define LOCALE_SDAYNAME3 0x0000002CL #define LOCALE_SDAYNAME4 0x0000002DL #define LOCALE_SDAYNAME5 0x0000002EL #define LOCALE_SDAYNAME6 0x0000002FL #define LOCALE_SDAYNAME7 0x00000030L #define LOCALE_SABBREVDAYNAME1 0x00000031L #define LOCALE_SABBREVDAYNAME2 0x00000032L #define LOCALE_SABBREVDAYNAME3 0x00000033L #define LOCALE_SABBREVDAYNAME4 0x00000034L #define LOCALE_SABBREVDAYNAME5 0x00000035L #define LOCALE_SABBREVDAYNAME6 0x00000036L #define LOCALE_SABBREVDAYNAME7 0x00000037L #define LOCALE_SMONTHNAME1 0x00000038L #define LOCALE_SMONTHNAME2 0x00000039L #define LOCALE_SMONTHNAME3 0x0000003AL #define LOCALE_SMONTHNAME4 0x0000003BL #define LOCALE_SMONTHNAME5 0x0000003CL #define LOCALE_SMONTHNAME6 0x0000003DL #define LOCALE_SMONTHNAME7 0x0000003EL #define LOCALE_SMONTHNAME8 0x0000003FL #define LOCALE_SMONTHNAME9 0x00000040L #define LOCALE_SMONTHNAME10 0x00000041L #define LOCALE_SMONTHNAME11 0x00000042L #define LOCALE_SMONTHNAME12 0x00000043L #define LOCALE_SMONTHNAME13 0x0000100EL #define LOCALE_SABBREVMONTHNAME1 0x00000044L #define LOCALE_SABBREVMONTHNAME2 0x00000045L #define LOCALE_SABBREVMONTHNAME3 0x00000046L #define LOCALE_SABBREVMONTHNAME4 0x00000047L #define LOCALE_SABBREVMONTHNAME5 0x00000048L #define LOCALE_SABBREVMONTHNAME6 0x00000049L #define LOCALE_SABBREVMONTHNAME7 0x0000004AL #define LOCALE_SABBREVMONTHNAME8 0x0000004BL #define LOCALE_SABBREVMONTHNAME9 0x0000004CL #define LOCALE_SABBREVMONTHNAME10 0x0000004DL #define LOCALE_SABBREVMONTHNAME11 0x0000004EL #define LOCALE_SABBREVMONTHNAME12 0x0000004FL #define LOCALE_SABBREVMONTHNAME13 0x0000100FL #define LOCALE_SPOSITIVESIGN 0x00000050L #define LOCALE_SNEGATIVESIGN 0x00000051L #define LOCALE_IPOSSIGNPOSN 0x00000052L #define LOCALE_INEGSIGNPOSN 0x00000053L #define LOCALE_IPOSSYMPRECEDES 0x00000054L #define LOCALE_IPOSSEPBYSPACE 0x00000055L #define LOCALE_INEGSYMPRECEDES 0x00000056L #define LOCALE_INEGSEPBYSPACE 0x00000057L #if (WINVER >= 0x0400) #define LOCALE_FONTSIGNATURE 0x00000058L #define LOCALE_SISO639LANGNAME 0x00000059L #define LOCALE_SISO3166CTRYNAME 0x0000005AL #endif #if (WINVER >= 0x0500) #define LOCALE_IDEFAULTEBCDICCODEPAGE 0x00001012L #define LOCALE_IPAPERSIZE 0x0000100AL #define LOCALE_SENGCURRNAME 0x00001007L #define LOCALE_SNATIVECURRNAME 0x00001008L #define LOCALE_SYEARMONTH 0x00001006L #define LOCALE_SSORTNAME 0x00001013L #define LOCALE_IDIGITSUBSTITUTION 0x00001014L #endif #if (WINVER >= 0x0600) #define LOCALE_SNAME 0x0000005CL #define LOCALE_SDURATION 0x0000005DL #define LOCALE_SKEYBOARDSTOINSTALL 0x0000005EL #define LOCALE_SSHORTESTDAYNAME1 0x00000060L #define LOCALE_SSHORTESTDAYNAME2 0x00000061L #define LOCALE_SSHORTESTDAYNAME3 0x00000062L #define LOCALE_SSHORTESTDAYNAME4 0x00000063L #define LOCALE_SSHORTESTDAYNAME5 0x00000064L #define LOCALE_SSHORTESTDAYNAME6 0x00000065L #define LOCALE_SSHORTESTDAYNAME7 0x00000066L #define LOCALE_SISO639LANGNAME2 0x00000067L #define LOCALE_SISO3166CTRYNAME2 0x00000068L #define LOCALE_SNAN 0x00000069L #define LOCALE_SPOSINFINITY 0x0000006AL #define LOCALE_SNEGINFINITY 0x0000006BL #define LOCALE_SSCRIPTS 0x0000006CL #define LOCALE_SPARENT 0x0000006DL #define LOCALE_SCONSOLEFALLBACKNAME 0x0000006EL #define LOCALE_SLANGDISPLAYNAME 0x0000006FL #endif #if (WINVER >= 0x0700) #define LOCALE_IREADINGLAYOUT 0x00000070L #define LOCALE_INEUTRAL 0x00000071L #define LOCALE_INEGATIVEPERCENT 0x00000074L #define LOCALE_IPOSITIVEPERCENT 0x00000075L #define LOCALE_SPERCENT 0x00000076L #define LOCALE_SPERMILLE 0x00000077L #define LOCALE_SMONTHDAY 0x00000078L #define LOCALE_SSHORTTIME 0x00000079L #define LOCALE_SOPENTYPELANGUAGETAG 0x0000007AL #define LOCALE_SSORTLOCALE 0x0000007BL #endif /* New locale information types */ #define LOCALE_SLOCALIZEDDISPLAYNAME 0x00000002L #if (WINVER >= 0x0601) #define LOCALE_SENGLISHDISPLAYNAME 0x00000072L #define LOCALE_SNATIVEDISPLAYNAME 0x00000073L #endif #if (WINVER >= 0x0600) #define LOCALE_SLOCALIZEDLANGUAGENAME 0x0000006FL #endif #define LOCALE_SENGLISHLANGUAGENAME 0x00001001L #define LOCALE_SNATIVELANGUAGENAME 0x00000004L #define LOCALE_SLOCALIZEDCOUNTRYNAME 0x00000006L #define LOCALE_SENGLISHCOUNTRYNAME 0x00001002L #define LOCALE_SNATIVECOUNTRYNAME 0x00000008L /* GetTimeFormat() flags */ #define TIME_NOMINUTESORSECONDS 0x00000001L #define TIME_NOSECONDS 0x00000002L #define TIME_NOTIMEMARKER 0x00000004L #define TIME_FORCE24HOURFORMAT 0x00000008L /* GetDateFormat() flags */ #define DATE_SHORTDATE 0x00000001L #define DATE_LONGDATE 0x00000002L #define DATE_USE_ALT_CALENDAR 0x00000004L #if (WINVER >= 0x0500) #define DATE_YEARMONTH 0x00000008L #define DATE_LTRREADING 0x00000010L #define DATE_RTLREADING 0x00000020L #endif #if (WINVER >= 0x0601) #define DATE_AUTOLAYOUT 0x00000040L #endif /* Calendar information type flags */ #if (WINVER >= 0x0500) #define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE #define CAL_USE_CP_ACP LOCALE_USE_CP_ACP #define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER #endif #if (WINVER >= 0x0601) #define CAL_RETURN_GENITIVE_NAMES LOCALE_RETURN_GENITIVE_NAMES #endif /* Calendar information types */ #define CAL_ICALINTVALUE 0x00000001L #define CAL_SCALNAME 0x00000002L #define CAL_IYEAROFFSETRANGE 0x00000003L #define CAL_SERASTRING 0x00000004L #define CAL_SSHORTDATE 0x00000005L #define CAL_SLONGDATE 0x00000006L #define CAL_SDAYNAME1 0x00000007L #define CAL_SDAYNAME2 0x00000008L #define CAL_SDAYNAME3 0x00000009L #define CAL_SDAYNAME4 0x0000000AL #define CAL_SDAYNAME5 0x0000000BL #define CAL_SDAYNAME6 0x0000000CL #define CAL_SDAYNAME7 0x0000000DL #define CAL_SABBREVDAYNAME1 0x0000000EL #define CAL_SABBREVDAYNAME2 0x0000000FL #define CAL_SABBREVDAYNAME3 0x00000010L #define CAL_SABBREVDAYNAME4 0x00000011L #define CAL_SABBREVDAYNAME5 0x00000012L #define CAL_SABBREVDAYNAME6 0x00000013L #define CAL_SABBREVDAYNAME7 0x00000014L #define CAL_SMONTHNAME1 0x00000015L #define CAL_SMONTHNAME2 0x00000016L #define CAL_SMONTHNAME3 0x00000017L #define CAL_SMONTHNAME4 0x00000018L #define CAL_SMONTHNAME5 0x00000019L #define CAL_SMONTHNAME6 0x0000001AL #define CAL_SMONTHNAME7 0x0000001BL #define CAL_SMONTHNAME8 0x0000001CL #define CAL_SMONTHNAME9 0x0000001DL #define CAL_SMONTHNAME10 0x0000001EL #define CAL_SMONTHNAME11 0x0000001FL #define CAL_SMONTHNAME12 0x00000020L #define CAL_SMONTHNAME13 0x00000021L #define CAL_SABBREVMONTHNAME1 0x00000022L #define CAL_SABBREVMONTHNAME2 0x00000023L #define CAL_SABBREVMONTHNAME3 0x00000024L #define CAL_SABBREVMONTHNAME4 0x00000025L #define CAL_SABBREVMONTHNAME5 0x00000026L #define CAL_SABBREVMONTHNAME6 0x00000027L #define CAL_SABBREVMONTHNAME7 0x00000028L #define CAL_SABBREVMONTHNAME8 0x00000029L #define CAL_SABBREVMONTHNAME9 0x0000002AL #define CAL_SABBREVMONTHNAME10 0x0000002BL #define CAL_SABBREVMONTHNAME11 0x0000002CL #define CAL_SABBREVMONTHNAME12 0x0000002DL #define CAL_SABBREVMONTHNAME13 0x0000002EL #if (WINVER >= 0x0500) #define CAL_SYEARMONTH 0x0000002FL #define CAL_ITWODIGITYEARMAX 0x00000030L #endif #if (WINVER >= 0x0600) #define CAL_SSHORTESTDAYNAME1 0x00000031L #define CAL_SSHORTESTDAYNAME2 0x00000032L #define CAL_SSHORTESTDAYNAME3 0x00000033L #define CAL_SSHORTESTDAYNAME4 0x00000034L #define CAL_SSHORTESTDAYNAME5 0x00000035L #define CAL_SSHORTESTDAYNAME6 0x00000036L #define CAL_SSHORTESTDAYNAME7 0x00000037L #endif #if (WINVER >= 0x0601) #define CAL_SMONTHDAY 0x00000038L #define CAL_SABBREVERASTRING 0x00000039L #endif /* Special calendar identifier for EnumCalendarInfo() */ #define ENUM_ALL_CALENDARS 0xFFFFFFFFL /* Calendar identifiers */ #define CAL_GREGORIAN 1L #define CAL_GREGORIAN_US 2L #define CAL_JAPAN 3L #define CAL_TAIWAN 4L #define CAL_KOREA 5L #define CAL_HIJRI 6L #define CAL_THAI 7L #define CAL_HEBREW 8L #define CAL_GREGORIAN_ME_FRENCH 9L #define CAL_GREGORIAN_ARABIC 10L #define CAL_GREGORIAN_XLIT_ENGLISH 11L #define CAL_GREGORIAN_XLIT_FRENCH 12L #define CAL_UMALQURA 23L /* Language group identifiers */ #define LGRPID_WESTERN_EUROPE 0x00000001L #define LGRPID_CENTRAL_EUROPE 0x00000002L #define LGRPID_BALTIC 0x00000003L #define LGRPID_GREEK 0x00000004L #define LGRPID_CYRILLIC 0x00000005L #define LGRPID_TURKIC 0x00000006L #define LGRPID_TURKISH 0x00000006L #define LGRPID_JAPANESE 0x00000007L #define LGPRID_KOREAN 0x00000008L #define LGRPID_TRADITIONAL_CHINESE 0x00000009L #define LGRPID_SIMPLIFIED_CHINESE 0x0000000AL #define LGRPID_THAI 0x0000000BL #define LGRPID_HEBREW 0x0000000CL #define LGRPID_ARABIC 0x0000000DL #define LGRPID_VIETNAMESE 0x0000000EL #define LGRPID_INDIC 0x0000000FL #define LGRPID_GEORGIAN 0x00000010L #define LGRPID_ARMENIAN 0x00000011L /* Multilingual User Interface (MUI) flags */ #if (WINVER >= 0x0600) #define MUI_LANGUAGE_ID 0x00000004L #define MUI_LANGUAGE_NAME 0x00000008L #define MUI_MERGE_SYSTEM_FALLBACK 0x00000010L #define MUI_MERGE_USER_FALLBACK 0x00000020L #define MUI_UI_FALLBACK \ (MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK) #define MUI_THREAD_LANGUAGES 0x00000040L #define MUI_CONSOLE_FILTER 0x00000100L #define MUI_COMPLEX_SCRIPT_FILTER 0x00000200L #define MUI_RESET_FILTERS 0x00000001L #define MUI_USER_PREFERRED_UI_LANGUAGES 0x00000010L #define MUI_USE_INSTALLED_LANGUAGES 0x00000020L #define MUI_USE_SEARCH_ALL_LANGUAGES 0x00000040L #define MUI_LANG_NEUTRAL_PE_FILE 0x00000100L #define MUI_NON_LANG_NEUTRAL_FILE 0x00000200L #define MUI_MACHINE_LANGUAGE_SETTINGS 0x00000400L #define MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL 0x00000001L #define MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN 0x00000002L #define MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI 0x00000004L #define MUI_QUERY_TYPE 0x00000001L #define MUI_QUERY_CHECKSUM 0x00000002L #define MUI_QUERY_LANGUAGE_NAME 0x00000004L #define MUI_QUERY_RESOURCE_TYPES 0x00000008L #define MUI_FILEINFO_VERSION 0x00000001L #define MUI_FULL_LANGUAGE 0x00000001L #define MUI_PARTIAL_LANGUAGE 0x00000002L #define MUI_LIP_LANGUAGE 0x00000004L #define MUI_LANGUAGE_INSTALLED 0x00000020L #define MUI_LANGUAGE_LICENSED 0x00000040L #endif /* Special value returned by GetUserGeoID() */ #define GEOID_NOT_AVAILABLE (-1L) /* International Domain Name flags */ #if (WINVER >= 0x0600) #define IDN_ALLOW_UNASSIGNED 0x00000001L #define IDN_USE_STD3_ASCII_RULES 0x00000002L #endif /* VerifyScripts() flags */ #if (WINVER >= 0x0600) #define VS_ALLOW_LATIN 0x00000001L #endif /* GetScriptStrings() flags */ #if (WINVER >= 0x0600) #define GSS_ALLOWED_INHERITED_COMMON 0x00000001L #endif /* Locale name special values */ #if (WINVER >= 0x0600) #define LOCALE_NAME_USER_DEFAULT NULL #define LOCALE_NAME_INVARIANT L"" #define LOCALE_NAME_SYSTEM_DEFAULT L"!sys-default-locale" #endif /* NLS functions */ enum SYSNLS_FUNCTION { COMPARE_STRING = 0x00000001L }; /* Geographical information types */ enum SYSGEOTYPE { GEO_NATION = 0x00000001L, GEO_LATITUDE = 0x00000002L, GEO_LONGITUDE = 0x00000003L, GEO_ISO2 = 0x00000004L, GEO_ISO3 = 0x00000005L, GEO_RFC1766 = 0x00000006L, GEO_LCID = 0x00000007L, GEO_FRIENDLYNAME = 0x00000008L, GEO_OFFICIALNAME = 0x00000009L, GEO_TIMEZONES = 0x0000000AL, GEO_OFFICIALLANGUAGES = 0x0000000BL }; /* Geographical location classes */ enum SYSGEOCLASS { GEOCLASS_NATION = 16L, GEOCLASS_REGION = 14L }; /* Code page information */ typedef struct _cpinfo { UINT MaxCharSize; BYTE DefaultChar[MAX_DEFAULTCHAR]; BYTE LeadByte[MAX_LEADBYTES]; } CPINFO; typedef CPINFO *LPCPINFO; /* Code page information (extended version) */ typedef struct _cpinfoexA { UINT MaxCharSize; BYTE DefaultChar[MAX_DEFAULTCHAR]; BYTE LeadByte[MAX_LEADBYTES]; WCHAR UnicodeDefaultChar; UINT CodePage; CHAR CodePageName[MAX_PATH]; } CPINFOEXA; typedef CPINFOEXA *LPCPINFOEXA; typedef struct _cpinfoexW { UINT MaxCharSize; BYTE DefaultChar[MAX_DEFAULTCHAR]; BYTE LeadByte[MAX_LEADBYTES]; WCHAR UnicodeDefaultChar; UINT CodePage; WCHAR CodePageName[MAX_PATH]; } CPINFOEXW; typedef CPINFOEXW *LPCPINFOEXW; #ifdef UNICODE typedef CPINFOEXW CPINFOEX; typedef LPCPINFOEXW LPCPINFOEX; #else typedef CPINFOEXA CPINFOEX; typedef LPCPINFOEXA LPCPINFOEX; #endif /* Number format information */ typedef struct _numberfmtA { UINT NumDigits; UINT LeadingZero; UINT Grouping; LPSTR lpDecimalSep; LPSTR lpThousandSep; UINT NegativeOrder; } NUMBERFMTA; typedef NUMBERFMTA *LPNUMBERFMTA; typedef struct _numberfmtW { UINT NumDigits; UINT LeadingZero; UINT Grouping; LPWSTR lpDecimalSep; LPWSTR lpThousandSep; UINT NegativeOrder; } NUMBERFMTW; typedef NUMBERFMTW *LPNUMBERFMTW; #ifdef UNICODE typedef NUMBERFMTW NUMBERFMT; typedef LPNUMBERFMTW LPNUMBERFMT; #else typedef NUMBERFMTA NUMBERFMT; typedef LPNUMBERFMTA LPNUMBERFMT; #endif /* Currency format information */ typedef struct _currencyfmtA { UINT NumDigits; UINT LeadingZero; UINT Grouping; LPSTR lpDecimalSep; LPSTR lpThousandSep; UINT NegativeOrder; UINT PositiveOrder; LPSTR lpCurrencySymbol; } CURRENCYFMTA; typedef CURRENCYFMTA *LPCURRENCYFMTA; typedef struct _currencyfmtW { UINT NumDigits; UINT LeadingZero; UINT Grouping; LPWSTR lpDecimalSep; LPWSTR lpThousandSep; UINT NegativeOrder; UINT PositiveOrder; LPWSTR lpCurrencySymbol; } CURRENCYFMTW; typedef CURRENCYFMTW *LPCURRENCYFMTW; #ifdef UNICODE typedef CURRENCYFMTW CURRENCYFMT; typedef LPCURRENCYFMTW LPCURRENCYFMT; #else typedef CURRENCYFMTA CURRENCYFMT; typedef LPCURRENCYFMTA LPCURRENCYFMT; #endif /* NLS version information */ typedef struct _nlsversioninfo { DWORD dwNLSVersionInfoSize; DWORD dwNLSVersion; DWORD dwDefinedVersion; } NLSVERSIONINFO; typedef NLSVERSIONINFO *LPNLSVERSIONINFO; /* NLS version information (extended version) */ typedef struct _nlsversioninfoex { DWORD dwNLSVersionInfoSize; DWORD dwNLSVersion; DWORD dwDefinedVersion; DWORD dwEffectiveId; GUID guidCustomVersion; } NLSVERSIONINFOEX; typedef NLSVERSIONINFOEX *LPNLSVERSIONINFOEX; /* Normalization forms */ #if (WINVER >= 0x0600) typedef enum _NORM_FORM { NormalizationOther = 0, NormalizationC = 1, NormalizationD = 2, NormalizationKC = 5, NormalizationKD = 6 } NORM_FORM; #endif /* MUI file information */ typedef struct _FILEMUIINFO { DWORD dwSize; DWORD dwVersion; DWORD dwFileType; BYTE pChecksum[16]; BYTE pServiceChecksum[16]; DWORD dwLanguageNameOffset; DWORD dwTypeIDMainSize; DWORD dwTypeIDMainOffset; DWORD dwTypeNameMainOffset; DWORD dwTypeIDMUISize; DWORD dwTypeIDMUIOffset; DWORD dwTypeNameMUIOffset; BYTE abBuffer[8]; } FILEMUIINFO; typedef FILEMUIINFO *PFILEMUIINFO; /* Callback functions */ typedef BOOL (CALLBACK *CALINFO_ENUMPROCA)( LPSTR ); typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXA)( LPSTR, CALID ); typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXW)( LPWSTR, CALID ); typedef BOOL (CALLBACK *CALINFO_ENUMPROCW)( LPWSTR ); typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCA)( LPSTR ); typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCW)( LPWSTR ); typedef BOOL (CALLBACK *DATEFMT_ENUMPROCA)( LPSTR ); typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXA)( LPSTR, CALID ); typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXW)( LPWSTR, CALID ); typedef BOOL (CALLBACK *DATEFMT_ENUMPROCW)( LPWSTR ); typedef BOOL (CALLBACK *GEO_ENUMPROC)( GEOID ); typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCA)( LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR ); typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCW)( LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR ); typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCA)( LGRPID, LCID, LPSTR, LONG_PTR ); typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCW)( LGRPID, LCID, LPWSTR, LONG_PTR ); typedef BOOL (CALLBACK *LOCALE_ENUMPROCA)( LPSTR ); typedef BOOL (CALLBACK *LOCALE_ENUMPROCW)( LPWSTR ); typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCA)( LPSTR ); typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCW)( LPWSTR ); typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCA)( LPSTR, LONG_PTR ); typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCW)( LPWSTR, LONG_PTR ); #if (WINVER >= 0x0600) typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXEX)( LPWSTR, CALID, LPWSTR, LPARAM ); typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXEX)( LPWSTR, CALID, LPARAM ); typedef BOOL (CALLBACK *LOCALE_ENUMPROCEX)( LPWSTR, WORD, LPARAM ); typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCEX)( LPWSTR, LPARAM ); #endif #ifdef UNICODE #define CALINFO_ENUMPROC CALINFO_ENUMPROCW #define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXW #define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCW #define DATEFMT_ENUMPROC DATEFMT_ENUMPROCW #define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXW #define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCW #define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCW #define LOCALE_ENUMPROC LOCALE_ENUMPROCW #define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCW #define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCW #else #define CALINFO_ENUMPROC CALINFO_ENUMPROCA #define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXA #define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCA #define DATEFMT_ENUMPROC DATEFMT_ENUMPROCA #define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXA #define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCA #define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCA #define LOCALE_ENUMPROC LOCALE_ENUMPROCA #define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCA #define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCA #endif /* Surrogate pair macros */ #define IS_HIGH_SURROGATE( x ) \ (((x) >= HIGH_SURROGATE_START) && ((x) <= HIGH_SURROGATE_END)) #define IS_LOW_SURROGATE( x ) \ (((x) >= LOW_SURROGATE_START) && ((x) <= LOW_SURROGATE_END)) #define IS_SURROGATE_PAIR( p1, p2 ) \ (IS_HIGH_SURROGATE( p1 ) && IS_LOW_SURROGATE( p2 )) /* MUI file information macros */ #define FILEMUIINFO_GET_CULTURE( x ) \ ((LPWSTR)(((x)->dwLanguageNameOffset > 0) ? \ (ULONG_PTR)(x) + (x)->dwLanguageNameOffset : NULL)) #define FILEMUIINFO_GET_MAIN_TYPEIDS( x ) \ ((DWORD *)(((x)->dwTypeIDMainOffset > 0) ? \ (ULONG_PTR)(x) + (x)->dwTypeIDMainOffset : NULL)) #define FILEMUIINFO_GET_MAIN_TYPEID( p1, p2 ) \ ((((p2) < (p1)->dwTypeIDMainSize) && ((p1)->dwTypeIDMainOffset > 0)) ? \ *((DWORD *)((ULONG_PTR)(p1) + (p1)->dwTypeIDMainOffset) + (p2)) : 0) #define FILEMUIINFO_GET_MAIN_TYPENAMES( x ) \ ((LPWSTR)(((x)->dwTypeNameMainOffset > 0) ? \ (ULONG_PTR)(x) + (x)->dwTypeNameMainOffset : NULL)) #define FILEMUIINFO_GET_MUI_TYPEIDS( x ) \ ((DWORD *)(((x)->dwTypeIDMUIOffset > 0) ? \ (ULONG_PTR)(x) + (x)->dwTypeIDMUIOffset : NULL)) #define FILEMUIINFO_GET_MUI_TYPEID( p1, p2 ) \ ((((p2) < (p1)->dwTypeIDMUISize) && ((p1)->dwTypeIDMUIOffset > 0)) ? \ *((DWORD *)((ULONG_PTR)(p1) + (p1)->dwTypeIDMUIOffset) + (p2)) : 0) #define FILEMUIINFO_GET_MUI_TYPENAMES( x ) \ ((LPWSTR)(((x)->dwTypeNameMUIOffset > 0) ? \ (ULONG_PTR)(x) + (x)->dwTypeNameMUIOffset : NULL)) /* Functions in KERNEL32.DLL */ WINBASEAPI int WINAPI CompareStringA( LCID, DWORD, PCNZCH, int, PCNZCH, int ); WINBASEAPI int WINAPI CompareStringW( LCID, DWORD, PCNZWCH, int, PCNZWCH, int ); WINBASEAPI LCID WINAPI ConvertDefaultLocale( LCID ); WINBASEAPI BOOL WINAPI EnumCalendarInfoA( CALINFO_ENUMPROCA, LCID, CALID, CALTYPE ); WINBASEAPI BOOL WINAPI EnumCalendarInfoW( CALINFO_ENUMPROCW, LCID, CALID, CALTYPE ); WINBASEAPI BOOL WINAPI EnumDateFormatsA( DATEFMT_ENUMPROCA, LCID, DWORD ); WINBASEAPI BOOL WINAPI EnumDateFormatsW( DATEFMT_ENUMPROCW, LCID, DWORD ); WINBASEAPI BOOL WINAPI EnumSystemCodePagesA( CODEPAGE_ENUMPROCA, DWORD ); WINBASEAPI BOOL WINAPI EnumSystemCodePagesW( CODEPAGE_ENUMPROCW, DWORD ); WINBASEAPI BOOL WINAPI EnumSystemGeoID( GEOCLASS, GEOID, GEO_ENUMPROC ); WINBASEAPI BOOL WINAPI EnumSystemLocalesA( LOCALE_ENUMPROCA, DWORD ); WINBASEAPI BOOL WINAPI EnumSystemLocalesW( LOCALE_ENUMPROCW, DWORD ); WINBASEAPI BOOL WINAPI EnumTimeFormatsA( TIMEFMT_ENUMPROCA, LCID, DWORD ); WINBASEAPI BOOL WINAPI EnumTimeFormatsW( TIMEFMT_ENUMPROCW, LCID, DWORD ); WINBASEAPI int WINAPI FoldStringA( DWORD, LPCSTR, int, LPSTR, int ); WINBASEAPI int WINAPI FoldStringW( DWORD, LPCWSTR, int, LPWSTR, int ); WINBASEAPI UINT WINAPI GetACP( void ); WINBASEAPI BOOL WINAPI GetCPInfo( UINT, LPCPINFO ); WINBASEAPI BOOL WINAPI GetCPInfoExA( UINT, DWORD, LPCPINFOEXA ); WINBASEAPI BOOL WINAPI GetCPInfoExW( UINT, DWORD, LPCPINFOEXW ); WINBASEAPI int WINAPI GetCurrencyFormatA( LCID, DWORD, LPCSTR, CONST CURRENCYFMTA *, LPSTR, int ); WINBASEAPI int WINAPI GetCurrencyFormatW( LCID, DWORD, LPCWSTR, CONST CURRENCYFMTW *, LPWSTR, int ); WINBASEAPI int WINAPI GetDateFormatA( LCID, DWORD, CONST SYSTEMTIME *, LPCSTR, LPSTR, int ); WINBASEAPI int WINAPI GetDateFormatW( LCID, DWORD, CONST SYSTEMTIME *, LPCWSTR, LPWSTR, int ); WINBASEAPI int WINAPI GetGeoInfoA( GEOID, GEOTYPE, LPSTR, int, LANGID ); WINBASEAPI int WINAPI GetGeoInfoW( GEOID, GEOTYPE, LPWSTR, int, LANGID ); WINBASEAPI int WINAPI GetLocaleInfoA( LCID, LCTYPE, LPSTR, int ); WINBASEAPI int WINAPI GetLocaleInfoW( LCID, LCTYPE, LPWSTR, int ); WINBASEAPI BOOL WINAPI GetNLSVersion( NLS_FUNCTION, LCID, LPNLSVERSIONINFO ); WINBASEAPI int WINAPI GetNumberFormatA( LCID, DWORD, LPCSTR, CONST NUMBERFMTA *, LPSTR, int ); WINBASEAPI int WINAPI GetNumberFormatW( LCID, DWORD, LPCWSTR, CONST NUMBERFMTW *, LPWSTR, int ); WINBASEAPI UINT WINAPI GetOEMCP( void ); WINBASEAPI BOOL WINAPI GetStringTypeA( LCID, DWORD, LPCSTR, int, LPWORD ); WINBASEAPI BOOL WINAPI GetStringTypeExA( LCID, DWORD, LPCSTR, int, LPWORD ); WINBASEAPI BOOL WINAPI GetStringTypeExW( LCID, DWORD, LPCWSTR, int, LPWORD ); WINBASEAPI BOOL WINAPI GetStringTypeW( DWORD, LPCWSTR, int, LPWORD ); WINBASEAPI LCID WINAPI GetSystemDefaultLCID( void ); WINBASEAPI LANGID WINAPI GetSystemDefaultLangID( void ); WINBASEAPI LCID WINAPI GetThreadLocale( void ); WINBASEAPI int WINAPI GetTimeFormatA( LCID, DWORD, CONST SYSTEMTIME *, LPCSTR, LPSTR, int ); WINBASEAPI int WINAPI GetTimeFormatW( LCID, DWORD, CONST SYSTEMTIME *, LPCWSTR, LPWSTR, int ); WINBASEAPI LCID WINAPI GetUserDefaultLCID( void ); WINBASEAPI LANGID WINAPI GetUserDefaultLangID( void ); WINBASEAPI GEOID WINAPI GetUserGeoID( GEOCLASS ); WINBASEAPI BOOL WINAPI IsDBCSLeadByte( BYTE ); WINBASEAPI BOOL WINAPI IsDBCSLeadByteEx( UINT, BYTE ); WINBASEAPI BOOL WINAPI IsNLSDefinedString( NLS_FUNCTION, DWORD, LPNLSVERSIONINFO, LPCWSTR, INT ); WINBASEAPI BOOL WINAPI IsValidCodePage( UINT ); WINBASEAPI BOOL WINAPI IsValidLocale( LCID, DWORD ); WINBASEAPI int WINAPI LCMapStringA( LCID, DWORD, LPCSTR, int, LPSTR, int ); WINBASEAPI int WINAPI LCMapStringW( LCID, DWORD, LPCWSTR, int, LPWSTR, int ); WINBASEAPI int WINAPI MultiByteToWideChar( UINT, DWORD, LPCSTR, int, LPWSTR, int ); WINBASEAPI BOOL WINAPI SetLocaleInfoA( LCID, LCTYPE, LPCSTR ); WINBASEAPI BOOL WINAPI SetLocaleInfoW( LCID, LCTYPE, LPCWSTR ); WINBASEAPI BOOL WINAPI SetThreadLocale( LCID ); WINBASEAPI LANGID WINAPI SetThreadUILanguage( LANGID ); WINBASEAPI BOOL WINAPI SetUserGeoID( GEOID ); WINBASEAPI int WINAPI WideCharToMultiByte( UINT, DWORD, LPCWSTR, int, LPSTR, int, LPCSTR, LPBOOL ); #if (WINVER >= 0x040A) WINBASEAPI int WINAPI GetCalendarInfoA( LCID, CALID, CALTYPE, LPSTR, int, LPDWORD ); WINBASEAPI int WINAPI GetCalendarInfoW( LCID, CALID, CALTYPE, LPWSTR, int, LPDWORD ); WINBASEAPI BOOL WINAPI SetCalendarInfoA( LCID, CALID, CALTYPE, LPCSTR ); WINBASEAPI BOOL WINAPI SetCalendarInfoW( LCID, CALID, CALTYPE, LPCWSTR ); #endif #if (WINVER >= 0x0500) WINBASEAPI BOOL WINAPI EnumCalendarInfoExA( CALINFO_ENUMPROCEXA, LCID, CALID, CALTYPE ); WINBASEAPI BOOL WINAPI EnumCalendarInfoExW( CALINFO_ENUMPROCEXW, LCID, CALID, CALTYPE ); WINBASEAPI BOOL WINAPI EnumDateFormatsExA( DATEFMT_ENUMPROCEXA, LCID, DWORD ); WINBASEAPI BOOL WINAPI EnumDateFormatsExW( DATEFMT_ENUMPROCEXW, LCID, DWORD ); WINBASEAPI BOOL WINAPI EnumLanguageGroupLocalesA( LANGGROUPLOCALE_ENUMPROCA, LGRPID, DWORD, LONG_PTR ); WINBASEAPI BOOL WINAPI EnumLanguageGroupLocalesW( LANGGROUPLOCALE_ENUMPROCW, LGRPID, DWORD, LONG_PTR ); WINBASEAPI BOOL WINAPI EnumSystemLanguageGroupsA( LANGUAGEGROUP_ENUMPROCA, DWORD, LONG_PTR ); WINBASEAPI BOOL WINAPI EnumSystemLanguageGroupsW( LANGUAGEGROUP_ENUMPROCW, DWORD, LONG_PTR ); WINBASEAPI BOOL WINAPI EnumUILanguagesA( UILANGUAGE_ENUMPROCA, DWORD, LONG_PTR ); WINBASEAPI BOOL WINAPI EnumUILanguagesW( UILANGUAGE_ENUMPROCW, DWORD, LONG_PTR ); WINBASEAPI LANGID WINAPI GetSystemDefaultUILanguage( void ); WINBASEAPI LANGID WINAPI GetUserDefaultUILanguage( void ); WINBASEAPI BOOL WINAPI IsValidLanguageGroup( LGRPID, DWORD ); #endif #if (WINVER >= 0x0600) WINBASEAPI int WINAPI CompareStringEx( LPCWSTR, DWORD, LPCWSTR, int, LPCWSTR, int, LPNLSVERSIONINFO, LPVOID, LPARAM ); WINBASEAPI int WINAPI CompareStringOrdinal( LPCWSTR, int, LPCWSTR, int, BOOL ); WINBASEAPI BOOL WINAPI EnumCalendarInfoExEx( CALINFO_ENUMPROCEXEX, LPCWSTR, CALID, LPCWSTR, CALTYPE, LPARAM ); WINBASEAPI BOOL WINAPI EnumDateFormatsExEx( DATEFMT_ENUMPROCEXEX, LPCWSTR, DWORD, LPARAM ); WINBASEAPI BOOL WINAPI EnumSystemLocalesEx( LOCALE_ENUMPROCEX, DWORD, LPARAM, LPVOID ); WINBASEAPI BOOL WINAPI EnumTimeFormatsEx( TIMEFMT_ENUMPROCEX, LPCWSTR, DWORD, LPARAM ); WINBASEAPI int WINAPI FindNLSString( LCID, DWORD, LPCWSTR, int, LPCWSTR, int, LPINT ); WINBASEAPI int WINAPI FindNLSStringEx( LPCWSTR, DWORD, LPCWSTR, int, LPCWSTR, int, int, LPINT, LPNLSVERSIONINFO, LPVOID, LPARAM ); WINBASEAPI int WINAPI GetCalendarInfoEx( LPCWSTR, CALID, LPCWSTR, CALTYPE, LPWSTR, int, LPDWORD ); WINBASEAPI int WINAPI GetCurrencyFormatEx( LPCWSTR, DWORD, LPCWSTR, CONST CURRENCYFMTW *, LPWSTR, int ); WINBASEAPI int WINAPI GetDateFormatEx( LPCWSTR, DWORD, CONST SYSTEMTIME *, LPCWSTR, LPWSTR, int, LPCWSTR ); WINBASEAPI int WINAPI GetDurationFormat( LCID, DWORD, CONST SYSTEMTIME *, ULONGLONG, LPCWSTR, LPWSTR, int ); WINBASEAPI int WINAPI GetDurationFormatEx( LPCWSTR, DWORD, CONST SYSTEMTIME *, ULONGLONG, LPCWSTR, LPWSTR, int ); WINBASEAPI BOOL WINAPI GetFileMUIInfo( DWORD, PCWSTR, PFILEMUIINFO, DWORD * ); WINBASEAPI BOOL WINAPI GetFileMUIPath( DWORD, PCWSTR, PWSTR, PULONG, PWSTR, PULONG, PULONGLONG ); WINBASEAPI int WINAPI GetLocaleInfoEx( LPCWSTR, LCTYPE, LPWSTR, int ); WINBASEAPI BOOL WINAPI GetNLSVersionEx( NLS_FUNCTION, LPCWSTR, LPNLSVERSIONINFOEX ); WINBASEAPI int WINAPI GetNumberFormatEx( LPCWSTR, DWORD, LPCWSTR, CONST NUMBERFMTW *, LPWSTR, int ); WINBASEAPI BOOL WINAPI GetProcessPreferredUILanguages( DWORD, PULONG, PZZWSTR, PULONG ); WINBASEAPI int WINAPI GetStringScripts( DWORD, LPCWSTR, int, LPWSTR, int ); WINBASEAPI int WINAPI GetSystemDefaultLocaleName( LPWSTR, int ); WINBASEAPI BOOL WINAPI GetSystemPreferredUILanguages( DWORD, PULONG, PZZWSTR, PULONG ); WINBASEAPI BOOL WINAPI GetThreadPreferredUILanguages( DWORD, PULONG, PZZWSTR, PULONG ); WINBASEAPI LANGID WINAPI GetThreadUILanguage( void ); WINBASEAPI int WINAPI GetTimeFormatEx( LPCWSTR, DWORD, CONST SYSTEMTIME *, LPCWSTR, LPWSTR, int ); WINBASEAPI BOOL WINAPI GetUILanguageInfo( DWORD, PCZZWSTR, PZZWSTR, PDWORD, PDWORD ); WINBASEAPI int WINAPI GetUserDefaultLocaleName( LPWSTR, int ); WINBASEAPI BOOL WINAPI GetUserPreferredUILanguages( DWORD, PULONG, PZZWSTR, PULONG ); WINBASEAPI BOOL WINAPI IsValidLocaleName( LPCWSTR ); WINBASEAPI int WINAPI LCIDToLocaleName( LCID, LPWSTR, int, DWORD ); WINBASEAPI int WINAPI LCMapStringEx( LPCWSTR, DWORD, LPCWSTR, int, LPWSTR, int, LPNLSVERSIONINFO, LPVOID, LPARAM ); WINBASEAPI LCID WINAPI LocaleNameToLCID( LPCWSTR, DWORD ); WINBASEAPI BOOL WINAPI NotifyUILanguageChange( DWORD, PCWSTR, PCWSTR, DWORD, PDWORD ); WINBASEAPI BOOL WINAPI SetProcessPreferredUILanguages( DWORD, PCZZWSTR, PULONG ); WINBASEAPI BOOL WINAPI SetThreadPreferredUILanguages( DWORD, PCZZWSTR, PULONG ); WINBASEAPI BOOL WINAPI VerifyScripts( DWORD, LPCWSTR, int, LPCWSTR, int ); #endif #if (WINVER >= 0x0601) WINBASEAPI int WINAPI FindStringOrdinal( DWORD, LPCWSTR, int, LPCWSTR, int, BOOL ); WINBASEAPI int WINAPI ResolveLocaleName( LPCWSTR, LPWSTR, int ); #endif /* Functions in NORMALIZ.DLL */ #if (WINVER >= 0x0600) WINNORMALIZEAPI BOOL WINAPI IsNormalizedString( NORM_FORM, LPCWSTR, int ); WINNORMALIZEAPI int WINAPI NormalizeString( NORM_FORM, LPCWSTR, int, LPWSTR, int ); #endif /* Map generic function names to the appropriate ANSI or Unicode version. */ #ifdef UNICODE #define CompareString CompareStringW #define EnumCalendarInfo EnumCalendarInfoW #define EnumDateFormats EnumDateFormatsW #define EnumSystemCodePages EnumSystemCodePagesW #define EnumSystemLocales EnumSystemLocalesW #define EnumTimeFormats EnumTimeFormatsW #define FoldString FoldStringW #define GetCPInfoEx GetCPInfoExW #define GetCurrencyFormat GetCurrencyFormatW #define GetDateFormat GetDateFormatW #define GetGeoInfo GetGeoInfoW #define GetLocaleInfo GetLocaleInfoW #define GetNumberFormat GetNumberFormatW /* GetStringTypeA() and GetStringTypeW() have different signatures, so the * generic GetStringType() does not exist. */ #define GetStringTypeEx GetStringTypeExW #define GetTimeFormat GetTimeFormatW #define LCMapString LCMapStringW #define SetLocaleInfo SetLocaleInfoW #if (WINVER >= 0x040A) #define GetCalendarInfo GetCalendarInfoW #define SetCalendarInfo SetCalendarInfoW #endif #if (WINVER >= 0x0500) #define EnumCalendarInfoEx EnumCalendarInfoExW #define EnumDateFormatsEx EnumDateFormatsExW #define EnumLanguageGroupLocales EnumLanguageGroupLocalesW #define EnumSystemLanguageGroups EnumSystemLanguageGroupsW #define EnumUILanguages EnumUILanguagesW #endif #else #define CompareString CompareStringA #define EnumCalendarInfo EnumCalendarInfoA #define EnumDateFormats EnumDateFormatsA #define EnumSystemCodePages EnumSystemCodePagesA #define EnumSystemLocales EnumSystemLocalesA #define EnumTimeFormats EnumTimeFormatsA #define FoldString FoldStringA #define GetCPInfoEx GetCPInfoExA #define GetCurrencyFormat GetCurrencyFormatA #define GetDateFormat GetDateFormatA #define GetGeoInfo GetGeoInfoA #define GetLocaleInfo GetLocaleInfoA #define GetNumberFormat GetNumberFormatA /* GetStringTypeA() and GetStringTypeW() have different signatures, so the * generic GetStringType() does not exist. */ #define GetStringTypeEx GetStringTypeExA #define GetTimeFormat GetTimeFormatA #define LCMapString LCMapStringA #define SetLocaleInfo SetLocaleInfoA #if (WINVER >= 0x040A) #define GetCalendarInfo GetCalendarInfoA #define SetCalendarInfo SetCalendarInfoA #endif #if (WINVER >= 0x0500) #define EnumCalendarInfoEx EnumCalendarInfoExA #define EnumDateFormatsEx EnumDateFormatsExA #define EnumLanguageGroupLocales EnumLanguageGroupLocalesA #define EnumSystemLanguageGroups EnumSystemLanguageGroupsA #define EnumUILanguages EnumUILanguagesA #endif #endif #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _WINNLS_ */