From 228f22e967e358967c017a6f0d7dbcdb224ae581 Mon Sep 17 00:00:00 2001 From: Jon Griffiths Date: Mon, 18 Aug 2003 19:54:13 +0000 Subject: [PATCH] Add some new types and functions. Remove ITU_IMPLEMENTED_TESTS, its not part of the Win32 Api. --- dlls/ntdll/rtlstr.c | 4 +- include/winnls.h | 759 +++++++++++++++++++++++++++----------------- 2 files changed, 464 insertions(+), 299 deletions(-) diff --git a/dlls/ntdll/rtlstr.c b/dlls/ntdll/rtlstr.c index 49a3013afda..b3fa2fd5a90 100644 --- a/dlls/ntdll/rtlstr.c +++ b/dlls/ntdll/rtlstr.c @@ -1403,7 +1403,9 @@ NTSTATUS WINAPI RtlFindCharInUnicodeString( /* MISC */ - +/* Tests that we currently implement */ +#define ITU_IMPLEMENTED_TESTS \ + (IS_TEXT_UNICODE_SIGNATURE|IS_TEXT_UNICODE_ODD_LENGTH) /************************************************************************** * RtlIsTextUnicode (NTDLL.@) diff --git a/include/winnls.h b/include/winnls.h index 120e9b5014a..6b45a17dc9d 100644 --- a/include/winnls.h +++ b/include/winnls.h @@ -26,216 +26,328 @@ extern "C" { #endif +/* 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_PUERTO_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) -#define MB_PRECOMPOSED 0x00000001 -#define MB_COMPOSITE 0x00000002 -#define MB_USEGLYPHCHARS 0x00000004 -#define MB_ERR_INVALID_CHARS 0x00000008 +#define MB_PRECOMPOSED 0x01 +#define MB_COMPOSITE 0x02 +#define MB_USEGLYPHCHARS 0x04 +#define MB_ERR_INVALID_CHARS 0x08 -#define LGRPID_INSTALLED 0x00000001 -#define LGRPID_SUPPORTED 0x00000002 +#define LGRPID_INSTALLED 0x1 +#define LGRPID_SUPPORTED 0x2 -#define LCID_INSTALLED 0x00000001 -#define LCID_SUPPORTED 0x00000002 -#define LCID_ALTERNATE_SORTS 0x00000004 +#define LCID_INSTALLED 0x1 +#define LCID_SUPPORTED 0x2 +#define LCID_ALTERNATE_SORTS 0x4 -/* flags to GetLocaleInfo */ +/* Locale flags */ #define LOCALE_NOUSEROVERRIDE 0x80000000 #define LOCALE_USE_CP_ACP 0x40000000 #define LOCALE_RETURN_NUMBER 0x20000000 -/* When adding new defines, don't forget to add an entry to the - * locale_name2id map in ole/ole2nls.c - */ -#define LOCALE_ILANGUAGE 0x00000001 -#define LOCALE_SLANGUAGE 0x00000002 -#define LOCALE_SENGLANGUAGE 0x00001001 -#define LOCALE_SABBREVLANGNAME 0x00000003 -#define LOCALE_SNATIVELANGNAME 0x00000004 -#define LOCALE_ICOUNTRY 0x00000005 -#define LOCALE_SCOUNTRY 0x00000006 -#define LOCALE_SENGCOUNTRY 0x00001002 -#define LOCALE_SABBREVCTRYNAME 0x00000007 -#define LOCALE_SNATIVECTRYNAME 0x00000008 -#define LOCALE_IDEFAULTLANGUAGE 0x00000009 -#define LOCALE_IDEFAULTCOUNTRY 0x0000000A -#define LOCALE_IDEFAULTCODEPAGE 0x0000000B -#define LOCALE_IDEFAULTANSICODEPAGE 0x00001004 -#define LOCALE_IDEFAULTMACCODEPAGE 0x00001011 -#define LOCALE_SLIST 0x0000000C -#define LOCALE_IMEASURE 0x0000000D -#define LOCALE_SDECIMAL 0x0000000E -#define LOCALE_STHOUSAND 0x0000000F -#define LOCALE_SGROUPING 0x00000010 -#define LOCALE_IDIGITS 0x00000011 -#define LOCALE_ILZERO 0x00000012 -#define LOCALE_INEGNUMBER 0x00001010 -#define LOCALE_SNATIVEDIGITS 0x00000013 -#define LOCALE_SCURRENCY 0x00000014 -#define LOCALE_SINTLSYMBOL 0x00000015 -#define LOCALE_SMONDECIMALSEP 0x00000016 -#define LOCALE_SMONTHOUSANDSEP 0x00000017 -#define LOCALE_SMONGROUPING 0x00000018 -#define LOCALE_ICURRDIGITS 0x00000019 -#define LOCALE_IINTLCURRDIGITS 0x0000001A -#define LOCALE_ICURRENCY 0x0000001B -#define LOCALE_INEGCURR 0x0000001C -#define LOCALE_SDATE 0x0000001D -#define LOCALE_STIME 0x0000001E -#define LOCALE_SSHORTDATE 0x0000001F -#define LOCALE_SLONGDATE 0x00000020 -#define LOCALE_STIMEFORMAT 0x00001003 -#define LOCALE_IDATE 0x00000021 -#define LOCALE_ILDATE 0x00000022 -#define LOCALE_ITIME 0x00000023 -#define LOCALE_ITIMEMARKPOSN 0x00001005 -#define LOCALE_ICENTURY 0x00000024 -#define LOCALE_ITLZERO 0x00000025 -#define LOCALE_IDAYLZERO 0x00000026 -#define LOCALE_IMONLZERO 0x00000027 -#define LOCALE_S1159 0x00000028 -#define LOCALE_S2359 0x00000029 -#define LOCALE_ICALENDARTYPE 0x00001009 -#define LOCALE_IOPTIONALCALENDAR 0x0000100B -#define LOCALE_IFIRSTDAYOFWEEK 0x0000100C -#define LOCALE_IFIRSTWEEKOFYEAR 0x0000100D -#define LOCALE_SDAYNAME1 0x0000002A -#define LOCALE_SDAYNAME2 0x0000002B -#define LOCALE_SDAYNAME3 0x0000002C -#define LOCALE_SDAYNAME4 0x0000002D -#define LOCALE_SDAYNAME5 0x0000002E -#define LOCALE_SDAYNAME6 0x0000002F -#define LOCALE_SDAYNAME7 0x00000030 -#define LOCALE_SABBREVDAYNAME1 0x00000031 -#define LOCALE_SABBREVDAYNAME2 0x00000032 -#define LOCALE_SABBREVDAYNAME3 0x00000033 -#define LOCALE_SABBREVDAYNAME4 0x00000034 -#define LOCALE_SABBREVDAYNAME5 0x00000035 -#define LOCALE_SABBREVDAYNAME6 0x00000036 -#define LOCALE_SABBREVDAYNAME7 0x00000037 -#define LOCALE_SMONTHNAME1 0x00000038 -#define LOCALE_SMONTHNAME2 0x00000039 -#define LOCALE_SMONTHNAME3 0x0000003A -#define LOCALE_SMONTHNAME4 0x0000003B -#define LOCALE_SMONTHNAME5 0x0000003C -#define LOCALE_SMONTHNAME6 0x0000003D -#define LOCALE_SMONTHNAME7 0x0000003E -#define LOCALE_SMONTHNAME8 0x0000003F -#define LOCALE_SMONTHNAME9 0x00000040 -#define LOCALE_SMONTHNAME10 0x00000041 -#define LOCALE_SMONTHNAME11 0x00000042 -#define LOCALE_SMONTHNAME12 0x00000043 -#define LOCALE_SMONTHNAME13 0x0000100E -#define LOCALE_SABBREVMONTHNAME1 0x00000044 -#define LOCALE_SABBREVMONTHNAME2 0x00000045 -#define LOCALE_SABBREVMONTHNAME3 0x00000046 -#define LOCALE_SABBREVMONTHNAME4 0x00000047 -#define LOCALE_SABBREVMONTHNAME5 0x00000048 -#define LOCALE_SABBREVMONTHNAME6 0x00000049 -#define LOCALE_SABBREVMONTHNAME7 0x0000004A -#define LOCALE_SABBREVMONTHNAME8 0x0000004B -#define LOCALE_SABBREVMONTHNAME9 0x0000004C -#define LOCALE_SABBREVMONTHNAME10 0x0000004D -#define LOCALE_SABBREVMONTHNAME11 0x0000004E -#define LOCALE_SABBREVMONTHNAME12 0x0000004F -#define LOCALE_SABBREVMONTHNAME13 0x0000100F -#define LOCALE_SPOSITIVESIGN 0x00000050 -#define LOCALE_SNEGATIVESIGN 0x00000051 -#define LOCALE_IPOSSIGNPOSN 0x00000052 -#define LOCALE_INEGSIGNPOSN 0x00000053 -#define LOCALE_IPOSSYMPRECEDES 0x00000054 -#define LOCALE_IPOSSEPBYSPACE 0x00000055 -#define LOCALE_INEGSYMPRECEDES 0x00000056 -#define LOCALE_INEGSEPBYSPACE 0x00000057 -#define LOCALE_FONTSIGNATURE 0x00000058 -#define LOCALE_SISO639LANGNAME 0x00000059 -#define LOCALE_SISO3166CTRYNAME 0x0000005A +/* Locale information types */ +#define LOCALE_ILANGUAGE 0x0001 +#define LOCALE_SLANGUAGE 0x0002 +#define LOCALE_SENGLANGUAGE 0x1001 +#define LOCALE_SABBREVLANGNAME 0x0003 +#define LOCALE_SNATIVELANGNAME 0x0004 +#define LOCALE_ICOUNTRY 0x0005 +#define LOCALE_SCOUNTRY 0x0006 +#define LOCALE_SENGCOUNTRY 0x1002 +#define LOCALE_SABBREVCTRYNAME 0x0007 +#define LOCALE_SNATIVECTRYNAME 0x0008 +#define LOCALE_IDEFAULTLANGUAGE 0x0009 +#define LOCALE_IDEFAULTCOUNTRY 0x000A +#define LOCALE_IDEFAULTCODEPAGE 0x000B +#define LOCALE_IDEFAULTANSICODEPAGE 0x1004 +#define LOCALE_IDEFAULTMACCODEPAGE 0x1011 +#define LOCALE_SLIST 0x000C +#define LOCALE_IMEASURE 0x000D +#define LOCALE_SDECIMAL 0x000E +#define LOCALE_STHOUSAND 0x000F +#define LOCALE_SGROUPING 0x0010 +#define LOCALE_IDIGITS 0x0011 +#define LOCALE_ILZERO 0x0012 +#define LOCALE_INEGNUMBER 0x1010 +#define LOCALE_SNATIVEDIGITS 0x0013 +#define LOCALE_SCURRENCY 0x0014 +#define LOCALE_SINTLSYMBOL 0x0015 +#define LOCALE_SMONDECIMALSEP 0x0016 +#define LOCALE_SMONTHOUSANDSEP 0x0017 +#define LOCALE_SMONGROUPING 0x0018 +#define LOCALE_ICURRDIGITS 0x0019 +#define LOCALE_IINTLCURRDIGITS 0x001A +#define LOCALE_ICURRENCY 0x001B +#define LOCALE_INEGCURR 0x001C +#define LOCALE_SDATE 0x001D +#define LOCALE_STIME 0x001E +#define LOCALE_SSHORTDATE 0x001F +#define LOCALE_SLONGDATE 0x0020 +#define LOCALE_STIMEFORMAT 0x1003 +#define LOCALE_IDATE 0x0021 +#define LOCALE_ILDATE 0x0022 +#define LOCALE_ITIME 0x0023 +#define LOCALE_ITIMEMARKPOSN 0x1005 +#define LOCALE_ICENTURY 0x0024 +#define LOCALE_ITLZERO 0x0025 +#define LOCALE_IDAYLZERO 0x0026 +#define LOCALE_IMONLZERO 0x0027 +#define LOCALE_S1159 0x0028 +#define LOCALE_S2359 0x0029 +#define LOCALE_ICALENDARTYPE 0x1009 +#define LOCALE_IOPTIONALCALENDAR 0x100B +#define LOCALE_IFIRSTDAYOFWEEK 0x100C +#define LOCALE_IFIRSTWEEKOFYEAR 0x100D +#define LOCALE_SDAYNAME1 0x002A +#define LOCALE_SDAYNAME2 0x002B +#define LOCALE_SDAYNAME3 0x002C +#define LOCALE_SDAYNAME4 0x002D +#define LOCALE_SDAYNAME5 0x002E +#define LOCALE_SDAYNAME6 0x002F +#define LOCALE_SDAYNAME7 0x0030 +#define LOCALE_SABBREVDAYNAME1 0x0031 +#define LOCALE_SABBREVDAYNAME2 0x0032 +#define LOCALE_SABBREVDAYNAME3 0x0033 +#define LOCALE_SABBREVDAYNAME4 0x0034 +#define LOCALE_SABBREVDAYNAME5 0x0035 +#define LOCALE_SABBREVDAYNAME6 0x0036 +#define LOCALE_SABBREVDAYNAME7 0x0037 +#define LOCALE_SMONTHNAME1 0x0038 +#define LOCALE_SMONTHNAME2 0x0039 +#define LOCALE_SMONTHNAME3 0x003A +#define LOCALE_SMONTHNAME4 0x003B +#define LOCALE_SMONTHNAME5 0x003C +#define LOCALE_SMONTHNAME6 0x003D +#define LOCALE_SMONTHNAME7 0x003E +#define LOCALE_SMONTHNAME8 0x003F +#define LOCALE_SMONTHNAME9 0x0040 +#define LOCALE_SMONTHNAME10 0x0041 +#define LOCALE_SMONTHNAME11 0x0042 +#define LOCALE_SMONTHNAME12 0x0043 +#define LOCALE_SMONTHNAME13 0x100E +#define LOCALE_SABBREVMONTHNAME1 0x0044 +#define LOCALE_SABBREVMONTHNAME2 0x0045 +#define LOCALE_SABBREVMONTHNAME3 0x0046 +#define LOCALE_SABBREVMONTHNAME4 0x0047 +#define LOCALE_SABBREVMONTHNAME5 0x0048 +#define LOCALE_SABBREVMONTHNAME6 0x0049 +#define LOCALE_SABBREVMONTHNAME7 0x004A +#define LOCALE_SABBREVMONTHNAME8 0x004B +#define LOCALE_SABBREVMONTHNAME9 0x004C +#define LOCALE_SABBREVMONTHNAME10 0x004D +#define LOCALE_SABBREVMONTHNAME11 0x004E +#define LOCALE_SABBREVMONTHNAME12 0x004F +#define LOCALE_SABBREVMONTHNAME13 0x100F +#define LOCALE_SPOSITIVESIGN 0x0050 +#define LOCALE_SNEGATIVESIGN 0x0051 +#define LOCALE_IPOSSIGNPOSN 0x0052 +#define LOCALE_INEGSIGNPOSN 0x0053 +#define LOCALE_IPOSSYMPRECEDES 0x0054 +#define LOCALE_IPOSSEPBYSPACE 0x0055 +#define LOCALE_INEGSYMPRECEDES 0x0056 +#define LOCALE_INEGSEPBYSPACE 0x0057 +#define LOCALE_FONTSIGNATURE 0x0058 +#define LOCALE_SISO639LANGNAME 0x0059 +#define LOCALE_SISO3166CTRYNAME 0x005A -#define LOCALE_IDEFAULTEBCDICCODEPAGE 0x00001012 -#define LOCALE_IPAPERSIZE 0x0000100A -#define LOCALE_SENGCURRNAME 0x00001007 -#define LOCALE_SNATIVECURRNAME 0x00001008 -#define LOCALE_SYEARMONTH 0x00001006 -#define LOCALE_SSORTNAME 0x00001013 -#define LOCALE_IDIGITSUBSTITUTION 0x00001014 +#define LOCALE_IDEFAULTEBCDICCODEPAGE 0x1012 +#define LOCALE_IPAPERSIZE 0x100A +#define LOCALE_SENGCURRNAME 0x1007 +#define LOCALE_SNATIVECURRNAME 0x1008 +#define LOCALE_SYEARMONTH 0x1006 +#define LOCALE_SSORTNAME 0x1013 +#define LOCALE_IDIGITSUBSTITUTION 0x1014 -#define LOCALE_IDEFAULTUNIXCODEPAGE 0x00001030 /* Wine extension */ +#define LOCALE_IDEFAULTUNIXCODEPAGE 0x1030 /* Wine extension */ -#define NORM_IGNORECASE 1 -#define NORM_IGNORENONSPACE 2 -#define NORM_IGNORESYMBOLS 4 -#define NORM_STRINGSORT 0x1000 -#define NORM_IGNOREKANATYPE 0x00010000 -#define NORM_IGNOREWIDTH 0x00020000 +#define NORM_IGNORECASE 0x00001 +#define NORM_IGNORENONSPACE 0x00002 +#define NORM_IGNORESYMBOLS 0x00004 +#define NORM_STRINGSORT 0x01000 +#define NORM_IGNOREKANATYPE 0x10000 +#define NORM_IGNOREWIDTH 0x20000 -#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 +#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 -#define CP_UNIXCP 65010 /* Wine extension */ +#define CP_UNIXCP 65010 /* Wine extension */ -#define WC_DISCARDNS 0x00000010 -#define WC_SEPCHARS 0x00000020 -#define WC_DEFAULTCHAR 0x00000040 -#define WC_COMPOSITECHECK 0x00000200 -#define WC_NO_BEST_FIT_CHARS 0x00000400 +#define CP_INSTALLED 0x1 +#define CP_SUPPORTED 0x2 + +#define WC_DISCARDNS 0x0010 +#define WC_SEPCHARS 0x0020 +#define WC_DEFAULTCHAR 0x0040 +#define WC_COMPOSITECHECK 0x0200 +#define WC_NO_BEST_FIT_CHARS 0x0400 + +#define MAP_FOLDCZONE 0x0010 +#define MAP_PRECOMPOSED 0x0020 +#define MAP_COMPOSITE 0x0040 +#define MAP_FOLDDIGITS 0x0080 +#define MAP_EXPAND_LIGATURES 0x2000 -/* Locale Dependent Mapping Flags */ -#define LCMAP_LOWERCASE 0x00000100 /* lower case letters */ -#define LCMAP_UPPERCASE 0x00000200 /* upper case letters */ -#define LCMAP_SORTKEY 0x00000400 /* WC sort key (normalize) */ -#define LCMAP_BYTEREV 0x00000800 /* byte reversal */ +/* String mapping flags */ +#define LCMAP_LOWERCASE 0x00000100 /* Make lower-case */ +#define LCMAP_UPPERCASE 0x00000200 /* Make upper-case */ +#define LCMAP_SORTKEY 0x00000400 /* Create a sort key */ +#define LCMAP_BYTEREV 0x00000800 /* Reverse the result */ -#define SORT_STRINGSORT 0x00001000 /* take punctuation into account */ +#define SORT_STRINGSORT 0x00001000 /* Take punctuation into account */ -#define LCMAP_HIRAGANA 0x00100000 /* map katakana to hiragana */ -#define LCMAP_KATAKANA 0x00200000 /* map hiragana to katakana */ -#define LCMAP_HALFWIDTH 0x00400000 /* map double byte to single byte */ -#define LCMAP_FULLWIDTH 0x00800000 /* map single byte to double byte */ +#define LCMAP_HIRAGANA 0x00100000 /* Transform Japanese katakana into hiragana */ +#define LCMAP_KATAKANA 0x00200000 /* Transform Japanese hiragana into katakana */ +#define LCMAP_HALFWIDTH 0x00400000 /* Use single byte chars in output */ +#define LCMAP_FULLWIDTH 0x00800000 /* Use double byte chars in output */ -#define LCMAP_LINGUISTIC_CASING 0x01000000 /* use linguistic rules for casing */ -#define LCMAP_SIMPLIFIED_CHINESE 0x02000000 /* map traditional chinese to simplified chinese */ -#define LCMAP_TRADITIONAL_CHINESE 0x04000000 /* map simplified chinese to traditional chinese */ +#define LCMAP_LINGUISTIC_CASING 0x01000000 /* Change case by using language context */ +#define LCMAP_SIMPLIFIED_CHINESE 0x02000000 /* Transform Chinese traditional into simplified */ +#define LCMAP_TRADITIONAL_CHINESE 0x04000000 /* Transform Chinese simplified into traditional */ -/* Date Flags for GetDateFormat. */ +/* Date and time formatting flags */ +#define DATE_SHORTDATE 0x01 /* Short date format */ +#define DATE_LONGDATE 0x02 /* Long date format */ +#define DATE_USE_ALT_CALENDAR 0x04 /* Use an Alternate calendar */ +#define DATE_YEARMONTH 0x08 /* Year/month format */ +#define DATE_LTRREADING 0x10 /* Add LTR reading marks */ +#define DATE_RTLREADING 0x20 /* Add RTL reading marks */ -#define DATE_SHORTDATE 0x00000001 /* use short date picture */ -#define DATE_LONGDATE 0x00000002 /* use long date picture */ -#define DATE_USE_ALT_CALENDAR 0x00000004 /* use alternate calendar */ - /* alt. calendar support is broken anyway */ +#define TIME_FORCE24HOURFORMAT 0x08 /* Always use 24 hour clock */ +#define TIME_NOTIMEMARKER 0x04 /* show no AM/PM */ +#define TIME_NOSECONDS 0x02 /* show no seconds */ +#define TIME_NOMINUTESORSECONDS 0x01 /* show no minutes either */ -#define DATE_YEARMONTH 0x00000008 /* use year/month */ -#define DATE_LTRREADING 0x00000010 /* left to right reading order */ -#define DATE_RTLREADING 0x00000020 /* right to left reading order */ +/* FIXME: These 3 defines are internal and should be removed */ +#ifdef __WINESRC__ +#define DATE_DATEVARSONLY 0x0100 /* only date stuff: yMdg */ +#define TIME_TIMEVARSONLY 0x0200 /* only time stuff: hHmst */ +#define LOCALE_TIMEDATEBOTH 0x0300 /* full set */ +#endif -#define TIME_FORCE24HOURFORMAT 0x00000008 /* force 24 hour format*/ -#define TIME_NOTIMEMARKER 0x00000004 /* show no AM/PM */ -#define TIME_NOSECONDS 0x00000002 /* show no seconds */ -#define TIME_NOMINUTESORSECONDS 0x0000001 /* show no minutes either */ +/* Unicode char type flags */ +#define CT_CTYPE1 0x0001 /* usual ctype */ +#define CT_CTYPE2 0x0002 /* bidirectional layout info */ +#define CT_CTYPE3 0x0004 /* textprocessing info */ -/* internal flags for GetDateFormat system */ -#define DATE_DATEVARSONLY 0x00000100 /* only date stuff: yMdg */ -#define TIME_TIMEVARSONLY 0x00000200 /* only time stuff: hHmst */ -/* use this in a Winelib program if you really want all types */ -#define LOCALE_TIMEDATEBOTH 0x00000300 /* full set */ - -/* Tests that we currently implement */ -#define ITU_IMPLEMENTED_TESTS \ - IS_TEXT_UNICODE_SIGNATURE| \ - IS_TEXT_UNICODE_ODD_LENGTH - - -/* Character Type Flags */ -#define CT_CTYPE1 0x00000001 /* usual ctype */ -#define CT_CTYPE2 0x00000002 /* bidirectional layout info */ -#define CT_CTYPE3 0x00000004 /* textprocessing info */ - -/* CType 1 Flag Bits */ +/* Type 1 flags */ #define C1_UPPER 0x0001 #define C1_LOWER 0x0002 #define C1_DIGIT 0x0004 @@ -246,7 +358,7 @@ extern "C" { #define C1_XDIGIT 0x0080 #define C1_ALPHA 0x0100 -/* CType 2 Flag Bits */ +/* Type 2 flags */ #define C2_LEFTTORIGHT 0x0001 #define C2_RIGHTTOLEFT 0x0002 #define C2_EUROPENUMBER 0x0003 @@ -260,7 +372,7 @@ extern "C" { #define C2_OTHERNEUTRAL 0x000B #define C2_NOTAPPLICABLE 0x0000 -/* CType 3 Flag Bits */ +/* Type 3 flags */ #define C3_NONSPACING 0x0001 #define C3_DIACRITIC 0x0002 #define C3_VOWELMARK 0x0004 @@ -281,112 +393,121 @@ extern "C" { #define MAX_DEFAULTCHAR 2 /* Defines for calendar handling */ -#define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE -#define CAL_USE_CP_ACP LOCALE_USE_CP_ACP -#define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER -#define CAL_ICALINTVALUE 0x00000001 -#define CAL_SCALNAME 0x00000002 -#define CAL_IYEAROFFSETRANGE 0x00000003 -#define CAL_SERASTRING 0x00000004 -#define CAL_SSHORTDATE 0x00000005 -#define CAL_SLONGDATE 0x00000006 -#define CAL_SDAYNAME1 0x00000007 -#define CAL_SDAYNAME2 0x00000008 -#define CAL_SDAYNAME3 0x00000009 -#define CAL_SDAYNAME4 0x0000000a -#define CAL_SDAYNAME5 0x0000000b -#define CAL_SDAYNAME6 0x0000000c -#define CAL_SDAYNAME7 0x0000000d -#define CAL_SABBREVDAYNAME1 0x0000000e -#define CAL_SABBREVDAYNAME2 0x0000000f -#define CAL_SABBREVDAYNAME3 0x00000010 -#define CAL_SABBREVDAYNAME4 0x00000011 -#define CAL_SABBREVDAYNAME5 0x00000012 -#define CAL_SABBREVDAYNAME6 0x00000013 -#define CAL_SABBREVDAYNAME7 0x00000014 -#define CAL_SMONTHNAME1 0x00000015 -#define CAL_SMONTHNAME2 0x00000016 -#define CAL_SMONTHNAME3 0x00000017 -#define CAL_SMONTHNAME4 0x00000018 -#define CAL_SMONTHNAME5 0x00000019 -#define CAL_SMONTHNAME6 0x0000001a -#define CAL_SMONTHNAME7 0x0000001b -#define CAL_SMONTHNAME8 0x0000001c -#define CAL_SMONTHNAME9 0x0000001d -#define CAL_SMONTHNAME10 0x0000001e -#define CAL_SMONTHNAME11 0x0000001f -#define CAL_SMONTHNAME12 0x00000020 -#define CAL_SMONTHNAME13 0x00000021 -#define CAL_SABBREVMONTHNAME1 0x00000022 -#define CAL_SABBREVMONTHNAME2 0x00000023 -#define CAL_SABBREVMONTHNAME3 0x00000024 -#define CAL_SABBREVMONTHNAME4 0x00000025 -#define CAL_SABBREVMONTHNAME5 0x00000026 -#define CAL_SABBREVMONTHNAME6 0x00000027 -#define CAL_SABBREVMONTHNAME7 0x00000028 -#define CAL_SABBREVMONTHNAME8 0x00000029 -#define CAL_SABBREVMONTHNAME9 0x0000002a -#define CAL_SABBREVMONTHNAME10 0x0000002b -#define CAL_SABBREVMONTHNAME11 0x0000002c -#define CAL_SABBREVMONTHNAME12 0x0000002d -#define CAL_SABBREVMONTHNAME13 0x0000002e -#define CAL_SYEARMONTH 0x0000002f -#define CAL_ITWODIGITYEARMAX 0x00000030 -#define CAL_GREGORIAN 1 -#define CAL_GREGORIAN_US 2 -#define CAL_JAPAN 3 -#define CAL_TAIWAN 4 -#define CAL_KOREA 5 -#define CAL_HIJRI 6 -#define CAL_THAI 7 -#define CAL_HEBREW 8 -#define CAL_GREGORIAN_ME_FRENCH 9 -#define CAL_GREGORIAN_ARABIC 10 -#define CAL_GREGORIAN_XLIT_ENGLISH 11 -#define CAL_GREGORIAN_XLIT_FRENCH 12 +#define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE +#define CAL_USE_CP_ACP LOCALE_USE_CP_ACP +#define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER -/* CompareString defines */ -#define CSTR_LESS_THAN 1 -#define CSTR_EQUAL 2 -#define CSTR_GREATER_THAN 3 +#define CAL_ICALINTVALUE 0x01 +#define CAL_SCALNAME 0x02 +#define CAL_IYEAROFFSETRANGE 0x03 +#define CAL_SERASTRING 0x04 +#define CAL_SSHORTDATE 0x05 +#define CAL_SLONGDATE 0x06 +#define CAL_SDAYNAME1 0x07 +#define CAL_SDAYNAME2 0x08 +#define CAL_SDAYNAME3 0x09 +#define CAL_SDAYNAME4 0x0a +#define CAL_SDAYNAME5 0x0b +#define CAL_SDAYNAME6 0x0c +#define CAL_SDAYNAME7 0x0d +#define CAL_SABBREVDAYNAME1 0x0e +#define CAL_SABBREVDAYNAME2 0x0f +#define CAL_SABBREVDAYNAME3 0x10 +#define CAL_SABBREVDAYNAME4 0x11 +#define CAL_SABBREVDAYNAME5 0x12 +#define CAL_SABBREVDAYNAME6 0x13 +#define CAL_SABBREVDAYNAME7 0x14 +#define CAL_SMONTHNAME1 0x15 +#define CAL_SMONTHNAME2 0x16 +#define CAL_SMONTHNAME3 0x17 +#define CAL_SMONTHNAME4 0x18 +#define CAL_SMONTHNAME5 0x19 +#define CAL_SMONTHNAME6 0x1a +#define CAL_SMONTHNAME7 0x1b +#define CAL_SMONTHNAME8 0x1c +#define CAL_SMONTHNAME9 0x1d +#define CAL_SMONTHNAME10 0x1e +#define CAL_SMONTHNAME11 0x1f +#define CAL_SMONTHNAME12 0x20 +#define CAL_SMONTHNAME13 0x21 +#define CAL_SABBREVMONTHNAME1 0x22 +#define CAL_SABBREVMONTHNAME2 0x23 +#define CAL_SABBREVMONTHNAME3 0x24 +#define CAL_SABBREVMONTHNAME4 0x25 +#define CAL_SABBREVMONTHNAME5 0x26 +#define CAL_SABBREVMONTHNAME6 0x27 +#define CAL_SABBREVMONTHNAME7 0x28 +#define CAL_SABBREVMONTHNAME8 0x29 +#define CAL_SABBREVMONTHNAME9 0x2a +#define CAL_SABBREVMONTHNAME10 0x2b +#define CAL_SABBREVMONTHNAME11 0x2c +#define CAL_SABBREVMONTHNAME12 0x2d +#define CAL_SABBREVMONTHNAME13 0x2e +#define CAL_SYEARMONTH 0x2f +#define CAL_ITWODIGITYEARMAX 0x30 + +/* Calendar types */ +#define CAL_GREGORIAN 1 +#define CAL_GREGORIAN_US 2 +#define CAL_JAPAN 3 +#define CAL_TAIWAN 4 +#define CAL_KOREA 5 +#define CAL_HIJRI 6 +#define CAL_THAI 7 +#define CAL_HEBREW 8 +#define CAL_GREGORIAN_ME_FRENCH 9 +#define CAL_GREGORIAN_ARABIC 10 +#define CAL_GREGORIAN_XLIT_ENGLISH 11 +#define CAL_GREGORIAN_XLIT_FRENCH 12 + +/* EnumCalendarInfo Flags */ +#define ENUM_ALL_CALENDARS 0xffffffff /* Enumerate all calendars within a locale */ + +/* CompareString results */ +#define CSTR_LESS_THAN 1 +#define CSTR_EQUAL 2 +#define CSTR_GREATER_THAN 3 /* - * Language Group ID Values. + * Language Group IDs. * Resources in kernel32 are LGRPID_xxx+0x2000 because low values were used by LOCALE_xxx - * This is done because resources in win2k kernel32 / winxp kernel32 are not even + * This is done because resources in win2k kernel32 / winxp kernel32 are not even * stored the same way. */ -#define LGRPID_WESTERN_EUROPE 0x0001 /* Western Europe & U.S. */ -#define LGRPID_CENTRAL_EUROPE 0x0002 /* Central Europe */ -#define LGRPID_BALTIC 0x0003 /* Baltic */ -#define LGRPID_GREEK 0x0004 /* Greek */ -#define LGRPID_CYRILLIC 0x0005 /* Cyrillic */ -#define LGRPID_TURKISH 0x0006 /* Turkish */ -#define LGRPID_JAPANESE 0x0007 /* Japanese */ -#define LGRPID_KOREAN 0x0008 /* Korean */ -#define LGRPID_TRADITIONAL_CHINESE 0x0009 /* Traditional Chinese */ -#define LGRPID_SIMPLIFIED_CHINESE 0x000a /* Simplified Chinese */ -#define LGRPID_THAI 0x000b /* Thai */ -#define LGRPID_HEBREW 0x000c /* Hebrew */ -#define LGRPID_ARABIC 0x000d /* Arabic */ -#define LGRPID_VIETNAMESE 0x000e /* Vietnamese */ -#define LGRPID_INDIC 0x000f /* Indic */ -#define LGRPID_GEORGIAN 0x0010 /* Georgian */ -#define LGRPID_ARMENIAN 0x0011 /* Armenian */ +#define LGRPID_WESTERN_EUROPE 0x01 /* Includes US and Africa */ +#define LGRPID_CENTRAL_EUROPE 0x02 +#define LGRPID_BALTIC 0x03 +#define LGRPID_GREEK 0x04 +#define LGRPID_CYRILLIC 0x05 +#define LGRPID_TURKISH 0x06 +#define LGRPID_JAPANESE 0x07 +#define LGRPID_KOREAN 0x08 +#define LGRPID_TRADITIONAL_CHINESE 0x09 +#define LGRPID_SIMPLIFIED_CHINESE 0x0A +#define LGRPID_THAI 0x0B +#define LGRPID_HEBREW 0x0C +#define LGRPID_ARABIC 0x0D +#define LGRPID_VIETNAMESE 0x0E +#define LGRPID_INDIC 0x0F +#define LGRPID_GEORGIAN 0x10 +#define LGRPID_ARMENIAN 0x11 /* Types */ -typedef DWORD LGRPID; -typedef DWORD LCTYPE; -typedef DWORD CALTYPE; typedef DWORD CALID; +typedef DWORD CALTYPE; +typedef LONG GEOID; +typedef DWORD GEOCLASS; +typedef DWORD GEOTYPE; +typedef DWORD LCTYPE; +typedef DWORD LGRPID; typedef struct { UINT MaxCharSize; - BYTE DefaultChar[MAX_DEFAULTCHAR]; - BYTE LeadByte[MAX_LEADBYTES]; + BYTE DefaultChar[MAX_DEFAULTCHAR]; + BYTE LeadByte[MAX_LEADBYTES]; } CPINFO, *LPCPINFO; typedef struct @@ -474,14 +595,17 @@ typedef BOOL (CALLBACK *DATEFMT_ENUMPROCA)(LPSTR); typedef BOOL (CALLBACK *DATEFMT_ENUMPROCW)(LPWSTR); typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXA)(LPSTR,CALID); typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXW)(LPWSTR,CALID); +typedef BOOL (CALLBACK *GEO_ENUMPROC)(GEOID); +typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCA)(LGRPID,LCID,LPSTR,LONG_PTR); +typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCW)(LGRPID,LCID,LPWSTR,LONG_PTR); +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 *LOCALE_ENUMPROCA)(LPSTR); typedef BOOL (CALLBACK *LOCALE_ENUMPROCW)(LPWSTR); typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCA)(LPSTR); typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCW)(LPWSTR); -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 *UILANGUAGE_ENUMPROCA)(LPSTR,LONG_PTR); +typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCW)(LPWSTR,LONG_PTR); #else typedef FARPROC CALINFO_ENUMPROCA; typedef FARPROC CALINFO_ENUMPROCW; @@ -493,14 +617,17 @@ typedef FARPROC DATEFMT_ENUMPROCA; typedef FARPROC DATEFMT_ENUMPROCW; typedef FARPROC DATEFMT_ENUMPROCEXA; typedef FARPROC DATEFMT_ENUMPROCEXW; +typedef FARPROC GEO_ENUMPROC; +typedef FARPROC LANGGROUPLOCALE_ENUMPROCA; +typedef FARPROC LANGGROUPLOCALE_ENUMPROCW; +typedef FARPROC LANGUAGEGROUP_ENUMPROCA; +typedef FARPROC LANGUAGEGROUP_ENUMPROCW; typedef FARPROC LOCALE_ENUMPROCA; typedef FARPROC LOCALE_ENUMPROCW; typedef FARPROC TIMEFMT_ENUMPROCA; typedef FARPROC TIMEFMT_ENUMPROCW; -typedef FARPROC LANGUAGEGROUP_ENUMPROCA; -typedef FARPROC LANGUAGEGROUP_ENUMPROCW; -typedef FARPROC LANGGROUPLOCALE_ENUMPROCA; -typedef FARPROC LANGGROUPLOCALE_ENUMPROCW; +typedef FARPROC UILANGUAGE_ENUMPROCA; +typedef FARPROC UILANGUAGE_ENUMPROCW; #endif /* STRICT */ DECL_WINELIB_TYPE_AW(CALINFO_ENUMPROC) @@ -508,15 +635,42 @@ DECL_WINELIB_TYPE_AW(CALINFO_ENUMPROCEX) DECL_WINELIB_TYPE_AW(CODEPAGE_ENUMPROC) DECL_WINELIB_TYPE_AW(DATEFMT_ENUMPROC) DECL_WINELIB_TYPE_AW(DATEFMT_ENUMPROCEX) +DECL_WINELIB_TYPE_AW(LANGGROUPLOCALE_ENUMPROC) +DECL_WINELIB_TYPE_AW(LANGUAGEGROUP_ENUMPROC) DECL_WINELIB_TYPE_AW(LOCALE_ENUMPROC) DECL_WINELIB_TYPE_AW(TIMEFMT_ENUMPROC) +DECL_WINELIB_TYPE_AW(UILANGUAGE_ENUMPROC) + +/* Geographic Information types */ +enum SYSGEOTYPE +{ + GEO_NATION = 1, + GEO_LATITUDE, + GEO_LONGITUDE, + GEO_ISO2, + GEO_ISO3, + GEO_RFC1766, + GEO_LCID, + GEO_FRIENDLYNAME, + GEO_OFFICIALNAME, + GEO_TIMEZONES, + GEO_OFFICIALLANGUAGES +}; + +enum SYSGEOCLASS +{ + GEOCLASS_REGION = 14, + GEOCLASS_NATION = 16 +}; + +#define GEOID_NOT_AVAILABLE (-1) -/* APIs +/* NLS Functions. */ -int WINAPI CompareStringA(LCID,DWORD,LPCSTR,int,LPCSTR,int); -int WINAPI CompareStringW(LCID,DWORD,LPCWSTR,int,LPCWSTR,int); +INT WINAPI CompareStringA(LCID,DWORD,LPCSTR,INT,LPCSTR,INT); +INT WINAPI CompareStringW(LCID,DWORD,LPCWSTR,INT,LPCWSTR,INT); #define CompareString WINELIB_NAME_AW(CompareString) LCID WINAPI ConvertDefaultLocale(LCID); BOOL WINAPI EnumCalendarInfoA(CALINFO_ENUMPROCA,LCID,CALID,CALTYPE); @@ -534,6 +688,7 @@ BOOL WINAPI EnumDateFormatsExW(DATEFMT_ENUMPROCEXW,LCID,DWORD); BOOL WINAPI EnumSystemCodePagesA(CODEPAGE_ENUMPROCA,DWORD); BOOL WINAPI EnumSystemCodePagesW(CODEPAGE_ENUMPROCW,DWORD); #define EnumSystemCodePages WINELIB_NAME_AW(EnumSystemCodePages) +BOOL WINAPI EnumSystemGeoID(GEOCLASS,GEOID,GEO_ENUMPROC); BOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA,DWORD); BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW,DWORD); #define EnumSystemLocales WINELIB_NAME_AW(EnumSystemLocales) @@ -546,28 +701,34 @@ BOOL WINAPI EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW,LGRPID,DW BOOL WINAPI EnumTimeFormatsA(TIMEFMT_ENUMPROCA,LCID,DWORD); BOOL WINAPI EnumTimeFormatsW(TIMEFMT_ENUMPROCW,LCID,DWORD); #define EnumTimeFormats WINELIB_NAME_AW(EnumTimeFormats) -int WINAPI FoldStringA(DWORD,LPCSTR,int,LPSTR,int); -int WINAPI FoldStringW(DWORD,LPCWSTR,int,LPWSTR,int); +BOOL WINAPI EnumUILanguagesA(UILANGUAGE_ENUMPROCA,DWORD,LONG_PTR); +BOOL WINAPI EnumUILanguagesW(UILANGUAGE_ENUMPROCW,DWORD,LONG_PTR); +#define EnumUILanguages WINELIB_NAME_AW(EnumUILanguages) +INT WINAPI FoldStringA(DWORD,LPCSTR,INT,LPSTR,INT); +INT WINAPI FoldStringW(DWORD,LPCWSTR,INT,LPWSTR,INT); #define FoldString WINELIB_NAME_AW(FoldString) UINT WINAPI GetACP(void); BOOL WINAPI GetCPInfo(UINT,LPCPINFO); BOOL WINAPI GetCPInfoExA(UINT,DWORD,LPCPINFOEXA); BOOL WINAPI GetCPInfoExW(UINT,DWORD,LPCPINFOEXW); #define GetCPInfoEx WINELIB_NAME_AW(GetCPInfoEx) -int WINAPI GetCalendarInfoA(LCID,DWORD,DWORD,LPSTR,INT,LPDWORD); -int WINAPI GetCalendarInfoW(LCID,DWORD,DWORD,LPWSTR,INT,LPDWORD); +INT WINAPI GetCalendarInfoA(LCID,DWORD,DWORD,LPSTR,INT,LPDWORD); +INT WINAPI GetCalendarInfoW(LCID,DWORD,DWORD,LPWSTR,INT,LPDWORD); #define GetCalendarInfo WINELIB_NAME_AW(GetCalendarInfo) -INT WINAPI GetCurrencyFormatA(LCID,DWORD,LPCSTR,const CURRENCYFMTA*,LPSTR,int); -INT WINAPI GetCurrencyFormatW(LCID,DWORD,LPCWSTR,const CURRENCYFMTW*,LPWSTR,int); +INT WINAPI GetCurrencyFormatA(LCID,DWORD,LPCSTR,const CURRENCYFMTA*,LPSTR,INT); +INT WINAPI GetCurrencyFormatW(LCID,DWORD,LPCWSTR,const CURRENCYFMTW*,LPWSTR,INT); #define GetCurrencyFormat WINELIB_NAME_AW(GetCurrencyFormat) INT WINAPI GetDateFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,INT); INT WINAPI GetDateFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,INT); #define GetDateFormat WINELIB_NAME_AW(GetDateFormat) +INT WINAPI GetGeoInfoA(GEOID,GEOTYPE,LPSTR,INT,LANGID); +INT WINAPI GetGeoInfoW(GEOID,GEOTYPE,LPWSTR,INT,LANGID); +#define GetGeoInfo WINELIB_NAME_AW(GetGeoInfo) INT WINAPI GetLocaleInfoA(LCID,LCTYPE,LPSTR,INT); INT WINAPI GetLocaleInfoW(LCID,LCTYPE,LPWSTR,INT); #define GetLocaleInfo WINELIB_NAME_AW(GetLocaleInfo) -INT WINAPI GetNumberFormatA(LCID,DWORD,LPCSTR,const NUMBERFMTA*,LPSTR,int); -INT WINAPI GetNumberFormatW(LCID,DWORD,LPCWSTR,const NUMBERFMTW*,LPWSTR,int); +INT WINAPI GetNumberFormatA(LCID,DWORD,LPCSTR,const NUMBERFMTA*,LPSTR,INT); +INT WINAPI GetNumberFormatW(LCID,DWORD,LPCWSTR,const NUMBERFMTW*,LPWSTR,INT); #define GetNumberFormat WINELIB_NAME_AW(GetNumberFormat) UINT WINAPI GetOEMCP(void); BOOL WINAPI GetStringTypeA(LCID,DWORD,LPCSTR,INT,LPWORD); @@ -585,6 +746,7 @@ INT WINAPI GetTimeFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,IN LANGID WINAPI GetUserDefaultLangID(void); LCID WINAPI GetUserDefaultLCID(void); LANGID WINAPI GetUserDefaultUILanguage(void); +GEOID WINAPI GetUserGeoID(GEOCLASS); BOOL WINAPI IsDBCSLeadByte(BYTE); BOOL WINAPI IsDBCSLeadByteEx(UINT,BYTE); BOOL WINAPI IsValidCodePage(UINT); @@ -598,6 +760,7 @@ BOOL WINAPI SetLocaleInfoA(LCID,LCTYPE,LPCSTR); BOOL WINAPI SetLocaleInfoW(LCID,LCTYPE,LPCWSTR); #define SetLocaleInfo WINELIB_NAME_AW(SetLocaleInfo) BOOL WINAPI SetThreadLocale(LCID); +BOOL WINAPI SetUserGeoID(GEOID); INT WINAPI WideCharToMultiByte(UINT,DWORD,LPCWSTR,INT,LPSTR,INT,LPCSTR,LPBOOL); #ifdef __cplusplus