Moved LCTYPE, GetLocaleInfo, NUMBERFMT, CURRENCYFMT and the related API to winnls.h. Moved LANG_xxx, SUBLANG_xxx, SORT_xxx and IS_TEXT_UNICODE_xxx to winnt.h.
diff --git a/include/winbase.h b/include/winbase.h index d66218a..67398da 100644 --- a/include/winbase.h +++ b/include/winbase.h
@@ -1726,9 +1726,6 @@ UINT WINAPI GetLogicalDriveStringsA(UINT,LPSTR); UINT WINAPI GetLogicalDriveStringsW(UINT,LPWSTR); #define GetLogicalDriveStrings WINELIB_NAME_AW(GetLogicalDriveStrings) -INT WINAPI GetLocaleInfoA(LCID,LCTYPE,LPSTR,INT); -INT WINAPI GetLocaleInfoW(LCID,LCTYPE,LPWSTR,INT); -#define GetLocaleInfo WINELIB_NAME_AW(GetLocaleInfo) DWORD WINAPI GetModuleFileNameA(HMODULE,LPSTR,DWORD); DWORD WINAPI GetModuleFileNameW(HMODULE,LPWSTR,DWORD); #define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
diff --git a/include/windef.h b/include/windef.h index dd51fe8..cccddff 100644 --- a/include/windef.h +++ b/include/windef.h
@@ -195,7 +195,6 @@ typedef HANDLE HMONITOR; typedef DWORD LCID; typedef WORD LANGID; -typedef DWORD LCTYPE; typedef float FLOAT; /* Pointers types. These are the same for emulator and library. */ @@ -352,6 +351,8 @@ #define OPTIONAL #endif /* __WINE__ */ +#include "winnt.h" + /* Macro for structure packing. */ #ifdef __GNUC__
diff --git a/include/wine/winbase16.h b/include/wine/winbase16.h index db90ff4..27569b6 100644 --- a/include/wine/winbase16.h +++ b/include/wine/winbase16.h
@@ -3,6 +3,7 @@ #include "windef.h" #include "winbase.h" +#include "winnls.h" #include "wine/windef16.h" #include "pshpack1.h"
diff --git a/include/winnls.h b/include/winnls.h index aa4e21c..5736528 100644 --- a/include/winnls.h +++ b/include/winnls.h
@@ -1,7 +1,11 @@ #ifndef __WINE_WINNLS_H #define __WINE_WINNLS_H +#ifndef NONLS #include "windef.h" +#ifdef __cplusplus +extern "C" { +#endif #define MB_PRECOMPOSED 0x00000001 #define MB_COMPOSITE 0x00000002 @@ -152,234 +156,6 @@ #define WC_COMPOSITECHECK 0x00000200 #define WC_NO_BEST_FIT_CHARS 0x00000400 -#define MAKELCID(l, s) (MAKELONG(l, s)) - -#define MAKELANGID(p, s) ((((WORD)(s))<<10) | (WORD)(p)) -#define PRIMARYLANGID(l) ((WORD)(l) & 0x3ff) -#define SUBLANGID(l) ((WORD)(l) >> 10) - -#define LANGIDFROMLCID(lcid) ((WORD)(lcid)) -#define SORTIDFROMLCID(lcid) ((WORD)((((DWORD)(lcid)) >> 16) & 0x0f)) - -#define LANG_SYSTEM_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT)) -#define LANG_USER_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)) -#define LOCALE_SYSTEM_DEFAULT (MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT)) -#define LOCALE_USER_DEFAULT (MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT)) -#define LOCALE_NEUTRAL (MAKELCID(MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL),SORT_DEFAULT)) - - -/* Language IDs (were in winnt.h, for some reason) */ - - -/* Language IDs */ - -/* FIXME: are the symbolic names correct for LIDs: 0x17, 0x20, 0x28, - * 0x2a, 0x2b, 0x2c, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - * 0x37, 0x39, 0x3a, 0x3b, 0x3c, 0x3e, 0x3f, 0x41, 0x43, 0x44, - * 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, - * 0x4f, 0x57 - */ -#define LANG_NEUTRAL 0x00 -#define LANG_AFRIKAANS 0x36 -#define LANG_ALBANIAN 0x1c -#define LANG_ARABIC 0x01 -#define LANG_ARMENIAN 0x2b -#define LANG_ASSAMESE 0x4d -#define LANG_AZERI 0x2c -#define LANG_BASQUE 0x2d -#define LANG_BENGALI 0x45 -#define LANG_BULGARIAN 0x02 -#define LANG_BYELORUSSIAN 0x23 -#define LANG_CATALAN 0x03 -#define LANG_CHINESE 0x04 -#define LANG_SERBO_CROATIAN 0x1a -#define LANG_CROATIAN LANG_SERBO_CROATIAN -#define LANG_SERBIAN LANG_SERBO_CROATIAN -#define LANG_CZECH 0x05 -#define LANG_DANISH 0x06 -#define LANG_DUTCH 0x13 -#define LANG_ENGLISH 0x09 -#define LANG_ESTONIAN 0x25 -#define LANG_FAEROESE 0x38 -#define LANG_FARSI 0x29 -#define LANG_FINNISH 0x0b -#define LANG_FRENCH 0x0c -#define LANG_GAELIC 0x3c -#define LANG_GEORGIAN 0x37 -#define LANG_GERMAN 0x07 -#define LANG_GREEK 0x08 -#define LANG_GUJARATI 0x47 -#define LANG_HEBREW 0x0D -#define LANG_HINDI 0x39 -#define LANG_HUNGARIAN 0x0e -#define LANG_ICELANDIC 0x0f -#define LANG_INDONESIAN 0x21 -#define LANG_ITALIAN 0x10 -#define LANG_JAPANESE 0x11 -#define LANG_KANNADA 0x4b -#define LANG_KAZAKH 0x3f -#define LANG_KONKANI 0x57 -#define LANG_KOREAN 0x12 -#define LANG_LATVIAN 0x26 -#define LANG_LITHUANIAN 0x27 -#define LANG_MACEDONIAN 0x2f -#define LANG_MALAY 0x3e -#define LANG_MALAYALAM 0x4c -#define LANG_MALTESE 0x3a -#define LANG_MAORI 0x28 -#define LANG_MARATHI 0x4e -#define LANG_NORWEGIAN 0x14 -#define LANG_ORIYA 0x48 -#define LANG_POLISH 0x15 -#define LANG_PORTUGUESE 0x16 -#define LANG_PUNJABI 0x46 -#define LANG_RHAETO_ROMANCE 0x17 -#define LANG_ROMANIAN 0x18 -#define LANG_RUSSIAN 0x19 -#define LANG_SAAMI 0x3b -#define LANG_SANSKRIT 0x4f -#define LANG_SLOVAK 0x1b -#define LANG_SLOVENIAN 0x24 -#define LANG_SORBIAN 0x2e -#define LANG_SPANISH 0x0a -#define LANG_SUTU 0x30 -#define LANG_SWAHILI 0x41 -#define LANG_SWEDISH 0x1d -#define LANG_TAMIL 0x49 -#define LANG_TATAR 0x44 -#define LANG_TELUGU 0x4a -#define LANG_THAI 0x1e -#define LANG_TSONGA 0x31 -#define LANG_TSWANA 0x32 -#define LANG_TURKISH 0x1f -#define LANG_UKRAINIAN 0x22 -#define LANG_URDU 0x20 -#define LANG_UZBEK 0x43 -#define LANG_VENDA 0x33 -#define LANG_VIETNAMESE 0x2a -#define LANG_XHOSA 0x34 -#define LANG_ZULU 0x35 -/* non standard; keep the number high enough (but < 0xff) */ -#define LANG_ESPERANTO 0x8f -#define LANG_WALON 0x90 -#define LANG_CORNISH 0x91 -#define LANG_WELSH 0x92 -#define LANG_BRETON 0x93 - -/* Sublanguage definitions */ -#define SUBLANG_NEUTRAL 0x00 /* language neutral */ -#define SUBLANG_DEFAULT 0x01 /* user default */ -#define SUBLANG_SYS_DEFAULT 0x02 /* system default */ - -#define SUBLANG_ARABIC 0x01 -#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 -#define SUBLANG_ARABIC_IRAQ 0x02 -#define SUBLANG_ARABIC_EGYPT 0x03 -#define SUBLANG_ARABIC_LIBYA 0x04 -#define SUBLANG_ARABIC_ALGERIA 0x05 -#define SUBLANG_ARABIC_MOROCCO 0x06 -#define SUBLANG_ARABIC_TUNISIA 0x07 -#define SUBLANG_ARABIC_OMAN 0x08 -#define SUBLANG_ARABIC_YEMEN 0x09 -#define SUBLANG_ARABIC_SYRIA 0x0a -#define SUBLANG_ARABIC_JORDAN 0x0b -#define SUBLANG_ARABIC_LEBANON 0x0c -#define SUBLANG_ARABIC_KUWAIT 0x0d -#define SUBLANG_ARABIC_UAE 0x0e -#define SUBLANG_ARABIC_BAHRAIN 0x0f -#define SUBLANG_ARABIC_QATAR 0x10 -#define SUBLANG_CHINESE_TRADITIONAL 0x01 -#define SUBLANG_CHINESE_SIMPLIFIED 0x02 -#define SUBLANG_CHINESE_HONGKONG 0x03 -#define SUBLANG_CHINESE_SINGAPORE 0x04 -#define SUBLANG_CHINESE_MACAU 0x05 -#define SUBLANG_DUTCH 0x01 -#define SUBLANG_DUTCH_BELGIAN 0x02 -#define SUBLANG_DUTCH_SURINAM 0x03 -#define SUBLANG_ENGLISH_US 0x01 -#define SUBLANG_ENGLISH_UK 0x02 -#define SUBLANG_ENGLISH_AUS 0x03 -#define SUBLANG_ENGLISH_CAN 0x04 -#define SUBLANG_ENGLISH_NZ 0x05 -#define SUBLANG_ENGLISH_EIRE 0x06 -#define SUBLANG_ENGLISH_SAFRICA 0x07 -#define SUBLANG_ENGLISH_JAMAICA 0x08 -#define SUBLANG_ENGLISH_CARRIBEAN 0x09 -#define SUBLANG_ENGLISH_BELIZE 0x0a -#define SUBLANG_ENGLISH_TRINIDAD 0x0b -#define SUBLANG_ENGLISH_ZIMBABWE 0x0c -#define SUBLANG_ENGLISH_PHILIPPINES 0x0d -#define SUBLANG_FRENCH 0x01 -#define SUBLANG_FRENCH_BELGIAN 0x02 -#define SUBLANG_FRENCH_CANADIAN 0x03 -#define SUBLANG_FRENCH_SWISS 0x04 -#define SUBLANG_FRENCH_LUXEMBOURG 0x05 -#define SUBLANG_FRENCH_MONACO 0x06 -#define SUBLANG_GERMAN 0x01 -#define SUBLANG_GERMAN_SWISS 0x02 -#define SUBLANG_GERMAN_AUSTRIAN 0x03 -#define SUBLANG_GERMAN_LUXEMBOURG 0x04 -#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 -#define SUBLANG_ITALIAN 0x01 -#define SUBLANG_ITALIAN_SWISS 0x02 -#define SUBLANG_KOREAN 0x01 -#define SUBLANG_KOREAN_JOHAB 0x02 -#define SUBLANG_NORWEGIAN_BOKMAL 0x01 -#define SUBLANG_NORWEGIAN_NYNORSK 0x02 -#define SUBLANG_PORTUGUESE 0x02 -#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01 -#define SUBLANG_SPANISH 0x01 -#define SUBLANG_SPANISH_MEXICAN 0x02 -#define SUBLANG_SPANISH_MODERN 0x03 -#define SUBLANG_SPANISH_GUATEMALA 0x04 -#define SUBLANG_SPANISH_COSTARICA 0x05 -#define SUBLANG_SPANISH_PANAMA 0x06 -#define SUBLANG_SPANISH_DOMINICAN 0x07 -#define SUBLANG_SPANISH_VENEZUELA 0x08 -#define SUBLANG_SPANISH_COLOMBIA 0x09 -#define SUBLANG_SPANISH_PERU 0x0a -#define SUBLANG_SPANISH_ARGENTINA 0x0b -#define SUBLANG_SPANISH_ECUADOR 0x0c -#define SUBLANG_SPANISH_CHILE 0x0d -#define SUBLANG_SPANISH_URUGUAY 0x0e -#define SUBLANG_SPANISH_PARAGUAY 0x0f -#define SUBLANG_SPANISH_BOLIVIA 0x10 -#define SUBLANG_SPANISH_EL_SALVADOR 0x11 -#define SUBLANG_SPANISH_HONDURAS 0x12 -#define SUBLANG_SPANISH_NICARAGUA 0x13 -#define SUBLANG_SPANISH_PUERTO_RICO 0x14 -/* FIXME: I don't know the symbolic names for those */ -#define SUBLANG_ROMANIAN 0x01 -#define SUBLANG_ROMANIAN_MOLDAVIA 0x02 -#define SUBLANG_RUSSIAN 0x01 -#define SUBLANG_RUSSIAN_MOLDAVIA 0x02 -#define SUBLANG_CROATIAN 0x01 -#define SUBLANG_SERBIAN 0x02 -#define SUBLANG_SERBIAN_LATIN 0x03 -#define SUBLANG_SWEDISH 0x01 -#define SUBLANG_SWEDISH_FINLAND 0x02 -#define SUBLANG_LITHUANIAN 0x01 -#define SUBLANG_LITHUANIAN_CLASSIC 0x02 -#define SUBLANG_AZERI 0x01 -#define SUBLANG_AZERI_CYRILLIC 0x02 -#define SUBLANG_GAELIC 0x01 -#define SUBLANG_GAELIC_SCOTTISH 0x02 -#define SUBLANG_GAELIC_MANX 0x03 -#define SUBLANG_MALAY 0x01 -#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 -#define SUBLANG_UZBEK 0x01 -#define SUBLANG_UZBEK_CYRILLIC 0x02 -#define SUBLANG_URDU_PAKISTAN 0x01 - -/* Sort definitions */ -#define SORT_DEFAULT 0x0 -#define SORT_JAPANESE_XJIS 0x0 -#define SORT_JAPANESE_UNICODE 0x1 -#define SORT_CHINESE_BIG5 0x0 -#define SORT_CHINESE_UNICODE 0x1 -#define SORT_KOREAN_KSC 0x0 -#define SORT_KOREAN_UNICODE 0x1 - /* Locale Dependent Mapping Flags */ #define LCMAP_LOWERCASE 0x00000100 /* lower case letters */ @@ -412,14 +188,6 @@ /* use this in a WineLib program if you really want all types */ #define LOCALE_TIMEDATEBOTH 0x00000300 /* full set */ -/* Definitions for IsTextUnicode() function */ -#define IS_TEXT_UNICODE_ASCII16 0x0001 -#define IS_TEXT_UNICODE_SIGNATURE 0x0008 -#define IS_TEXT_UNICODE_REVERSE_ASCII16 0x0010 -#define IS_TEXT_UNICODE_REVERSE_SIGNATURE 0x0080 -#define IS_TEXT_UNICODE_ILLEGAL_CHARS 0x0100 -#define IS_TEXT_UNICODE_ODD_LENGTH 0x0200 - /* Tests that we currently implement */ #define ITU_IMPLEMENTED_TESTS \ IS_TEXT_UNICODE_SIGNATURE| \ @@ -476,6 +244,14 @@ #define MAX_LEADBYTES 12 #define MAX_DEFAULTCHAR 2 + +/* Types + */ + +typedef DWORD LCTYPE; +typedef DWORD CALTYPE; +typedef DWORD CALID; + typedef struct { UINT MaxCharSize; @@ -503,8 +279,60 @@ WCHAR CodePageName[MAX_PATH]; } CPINFOEXW, *LPCPINFOEXW; -typedef DWORD CALTYPE; -typedef DWORD CALID; +DECL_WINELIB_TYPE_AW(CPINFOEX) +DECL_WINELIB_TYPE_AW(LPCPINFOEX) + +typedef struct _numberfmtA { + UINT NumDigits; + UINT LeadingZero; + UINT Grouping; + LPCSTR lpDecimalSep; + LPCSTR lpThousandSep; + UINT NegativeOrder; +} NUMBERFMTA, *LPNUMBERFMTA; + +typedef struct _numberfmtW { + UINT NumDigits; + UINT LeadingZero; + UINT Grouping; + LPCWSTR lpDecimalSep; + LPCWSTR lpThousandSep; + UINT NegativeOrder; +} NUMBERFMTW, *LPNUMBERFMTW; + +DECL_WINELIB_TYPE_AW(NUMBERFMT) +DECL_WINELIB_TYPE_AW(LPNUMBERFMT) + +typedef struct _currencyfmtA +{ + UINT NumDigits; + UINT LeadingZero; + UINT Grouping; + LPCSTR lpDecimalSep; + LPCSTR lpThousandSep; + UINT NegativeOrder; + UINT PositiveOrder; + LPCSTR lpCurrencySymbol; +} CURRENCYFMTA, *LPCURRENCYFMTA; + +typedef struct _currencyfmtW +{ + UINT NumDigits; + UINT LeadingZero; + UINT Grouping; + LPCWSTR lpDecimalSep; + LPCWSTR lpThousandSep; + UINT NegativeOrder; + UINT PositiveOrder; + LPCWSTR lpCurrencySymbol; +} CURRENCYFMTW, *LPCURRENCYFMTW; + +DECL_WINELIB_TYPE_AW(CURRENCYFMT) +DECL_WINELIB_TYPE_AW(LPCURRENCYFMT) + + +/* APIs + */ typedef BOOL CALLBACK (*CALINFO_ENUMPROCA)(LPSTR); typedef BOOL CALLBACK (*CALINFO_ENUMPROCW)(LPWSTR); @@ -516,9 +344,20 @@ LCID WINAPI ConvertDefaultLocale(LCID Locale); -BOOL WINAPI GetCPInfo(UINT,LPCPINFO); -BOOL WINAPI GetCPInfoExA(UINT,DWORD,LPCPINFOEXA); -BOOL WINAPI GetCPInfoExW(UINT,DWORD,LPCPINFOEXW); -#define GetCPInfoEx WINELIB_NAME_AW(GetCPInfoEx) +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 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); +#define GetNumberFormat WINELIB_NAME_AW(GetNumberFormat) +#ifdef __cplusplus +} +#endif + +#endif /* !NONLS */ #endif /* __WINE_WINNLS_H */
diff --git a/include/winnt.h b/include/winnt.h index c678cc1..933e83e 100644 --- a/include/winnt.h +++ b/include/winnt.h
@@ -826,6 +826,264 @@ #endif /* __WINE__ */ + + +/* + * Language IDs + */ + +#define MAKELCID(l, s) (MAKELONG(l, s)) + +#define MAKELANGID(p, s) ((((WORD)(s))<<10) | (WORD)(p)) +#define PRIMARYLANGID(l) ((WORD)(l) & 0x3ff) +#define SUBLANGID(l) ((WORD)(l) >> 10) + +#define LANGIDFROMLCID(lcid) ((WORD)(lcid)) +#define SORTIDFROMLCID(lcid) ((WORD)((((DWORD)(lcid)) >> 16) & 0x0f)) + +#define LANG_SYSTEM_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT)) +#define LANG_USER_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)) +#define LOCALE_SYSTEM_DEFAULT (MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT)) +#define LOCALE_USER_DEFAULT (MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT)) +#define LOCALE_NEUTRAL (MAKELCID(MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL),SORT_DEFAULT)) + +/* FIXME: are the symbolic names correct for LIDs: 0x17, 0x20, 0x28, + * 0x2a, 0x2b, 0x2c, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + * 0x37, 0x39, 0x3a, 0x3b, 0x3c, 0x3e, 0x3f, 0x41, 0x43, 0x44, + * 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, + * 0x4f, 0x57 + */ +#define LANG_NEUTRAL 0x00 +#define LANG_AFRIKAANS 0x36 +#define LANG_ALBANIAN 0x1c +#define LANG_ARABIC 0x01 +#define LANG_ARMENIAN 0x2b +#define LANG_ASSAMESE 0x4d +#define LANG_AZERI 0x2c +#define LANG_BASQUE 0x2d +#define LANG_BENGALI 0x45 +#define LANG_BULGARIAN 0x02 +#define LANG_BYELORUSSIAN 0x23 +#define LANG_CATALAN 0x03 +#define LANG_CHINESE 0x04 +#define LANG_SERBO_CROATIAN 0x1a +#define LANG_CROATIAN LANG_SERBO_CROATIAN +#define LANG_SERBIAN LANG_SERBO_CROATIAN +#define LANG_CZECH 0x05 +#define LANG_DANISH 0x06 +#define LANG_DUTCH 0x13 +#define LANG_ENGLISH 0x09 +#define LANG_ESTONIAN 0x25 +#define LANG_FAEROESE 0x38 +#define LANG_FARSI 0x29 +#define LANG_FINNISH 0x0b +#define LANG_FRENCH 0x0c +#define LANG_GAELIC 0x3c +#define LANG_GEORGIAN 0x37 +#define LANG_GERMAN 0x07 +#define LANG_GREEK 0x08 +#define LANG_GUJARATI 0x47 +#define LANG_HEBREW 0x0D +#define LANG_HINDI 0x39 +#define LANG_HUNGARIAN 0x0e +#define LANG_ICELANDIC 0x0f +#define LANG_INDONESIAN 0x21 +#define LANG_ITALIAN 0x10 +#define LANG_JAPANESE 0x11 +#define LANG_KANNADA 0x4b +#define LANG_KAZAKH 0x3f +#define LANG_KONKANI 0x57 +#define LANG_KOREAN 0x12 +#define LANG_LATVIAN 0x26 +#define LANG_LITHUANIAN 0x27 +#define LANG_MACEDONIAN 0x2f +#define LANG_MALAY 0x3e +#define LANG_MALAYALAM 0x4c +#define LANG_MALTESE 0x3a +#define LANG_MAORI 0x28 +#define LANG_MARATHI 0x4e +#define LANG_NORWEGIAN 0x14 +#define LANG_ORIYA 0x48 +#define LANG_POLISH 0x15 +#define LANG_PORTUGUESE 0x16 +#define LANG_PUNJABI 0x46 +#define LANG_RHAETO_ROMANCE 0x17 +#define LANG_ROMANIAN 0x18 +#define LANG_RUSSIAN 0x19 +#define LANG_SAAMI 0x3b +#define LANG_SANSKRIT 0x4f +#define LANG_SLOVAK 0x1b +#define LANG_SLOVENIAN 0x24 +#define LANG_SORBIAN 0x2e +#define LANG_SPANISH 0x0a +#define LANG_SUTU 0x30 +#define LANG_SWAHILI 0x41 +#define LANG_SWEDISH 0x1d +#define LANG_TAMIL 0x49 +#define LANG_TATAR 0x44 +#define LANG_TELUGU 0x4a +#define LANG_THAI 0x1e +#define LANG_TSONGA 0x31 +#define LANG_TSWANA 0x32 +#define LANG_TURKISH 0x1f +#define LANG_UKRAINIAN 0x22 +#define LANG_URDU 0x20 +#define LANG_UZBEK 0x43 +#define LANG_VENDA 0x33 +#define LANG_VIETNAMESE 0x2a +#define LANG_XHOSA 0x34 +#define LANG_ZULU 0x35 +/* non standard; keep the number high enough (but < 0xff) */ +#define LANG_ESPERANTO 0x8f +#define LANG_WALON 0x90 +#define LANG_CORNISH 0x91 +#define LANG_WELSH 0x92 +#define LANG_BRETON 0x93 + +/* Sublanguage definitions */ +#define SUBLANG_NEUTRAL 0x00 /* language neutral */ +#define SUBLANG_DEFAULT 0x01 /* user default */ +#define SUBLANG_SYS_DEFAULT 0x02 /* system default */ + +#define SUBLANG_ARABIC 0x01 +#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 +#define SUBLANG_ARABIC_IRAQ 0x02 +#define SUBLANG_ARABIC_EGYPT 0x03 +#define SUBLANG_ARABIC_LIBYA 0x04 +#define SUBLANG_ARABIC_ALGERIA 0x05 +#define SUBLANG_ARABIC_MOROCCO 0x06 +#define SUBLANG_ARABIC_TUNISIA 0x07 +#define SUBLANG_ARABIC_OMAN 0x08 +#define SUBLANG_ARABIC_YEMEN 0x09 +#define SUBLANG_ARABIC_SYRIA 0x0a +#define SUBLANG_ARABIC_JORDAN 0x0b +#define SUBLANG_ARABIC_LEBANON 0x0c +#define SUBLANG_ARABIC_KUWAIT 0x0d +#define SUBLANG_ARABIC_UAE 0x0e +#define SUBLANG_ARABIC_BAHRAIN 0x0f +#define SUBLANG_ARABIC_QATAR 0x10 +#define SUBLANG_CHINESE_TRADITIONAL 0x01 +#define SUBLANG_CHINESE_SIMPLIFIED 0x02 +#define SUBLANG_CHINESE_HONGKONG 0x03 +#define SUBLANG_CHINESE_SINGAPORE 0x04 +#define SUBLANG_CHINESE_MACAU 0x05 +#define SUBLANG_DUTCH 0x01 +#define SUBLANG_DUTCH_BELGIAN 0x02 +#define SUBLANG_DUTCH_SURINAM 0x03 +#define SUBLANG_ENGLISH_US 0x01 +#define SUBLANG_ENGLISH_UK 0x02 +#define SUBLANG_ENGLISH_AUS 0x03 +#define SUBLANG_ENGLISH_CAN 0x04 +#define SUBLANG_ENGLISH_NZ 0x05 +#define SUBLANG_ENGLISH_EIRE 0x06 +#define SUBLANG_ENGLISH_SAFRICA 0x07 +#define SUBLANG_ENGLISH_JAMAICA 0x08 +#define SUBLANG_ENGLISH_CARRIBEAN 0x09 +#define SUBLANG_ENGLISH_BELIZE 0x0a +#define SUBLANG_ENGLISH_TRINIDAD 0x0b +#define SUBLANG_ENGLISH_ZIMBABWE 0x0c +#define SUBLANG_ENGLISH_PHILIPPINES 0x0d +#define SUBLANG_FRENCH 0x01 +#define SUBLANG_FRENCH_BELGIAN 0x02 +#define SUBLANG_FRENCH_CANADIAN 0x03 +#define SUBLANG_FRENCH_SWISS 0x04 +#define SUBLANG_FRENCH_LUXEMBOURG 0x05 +#define SUBLANG_FRENCH_MONACO 0x06 +#define SUBLANG_GERMAN 0x01 +#define SUBLANG_GERMAN_SWISS 0x02 +#define SUBLANG_GERMAN_AUSTRIAN 0x03 +#define SUBLANG_GERMAN_LUXEMBOURG 0x04 +#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 +#define SUBLANG_ITALIAN 0x01 +#define SUBLANG_ITALIAN_SWISS 0x02 +#define SUBLANG_KOREAN 0x01 +#define SUBLANG_KOREAN_JOHAB 0x02 +#define SUBLANG_NORWEGIAN_BOKMAL 0x01 +#define SUBLANG_NORWEGIAN_NYNORSK 0x02 +#define SUBLANG_PORTUGUESE 0x02 +#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01 +#define SUBLANG_SPANISH 0x01 +#define SUBLANG_SPANISH_MEXICAN 0x02 +#define SUBLANG_SPANISH_MODERN 0x03 +#define SUBLANG_SPANISH_GUATEMALA 0x04 +#define SUBLANG_SPANISH_COSTARICA 0x05 +#define SUBLANG_SPANISH_PANAMA 0x06 +#define SUBLANG_SPANISH_DOMINICAN 0x07 +#define SUBLANG_SPANISH_VENEZUELA 0x08 +#define SUBLANG_SPANISH_COLOMBIA 0x09 +#define SUBLANG_SPANISH_PERU 0x0a +#define SUBLANG_SPANISH_ARGENTINA 0x0b +#define SUBLANG_SPANISH_ECUADOR 0x0c +#define SUBLANG_SPANISH_CHILE 0x0d +#define SUBLANG_SPANISH_URUGUAY 0x0e +#define SUBLANG_SPANISH_PARAGUAY 0x0f +#define SUBLANG_SPANISH_BOLIVIA 0x10 +#define SUBLANG_SPANISH_EL_SALVADOR 0x11 +#define SUBLANG_SPANISH_HONDURAS 0x12 +#define SUBLANG_SPANISH_NICARAGUA 0x13 +#define SUBLANG_SPANISH_PUERTO_RICO 0x14 +/* FIXME: I don't know the symbolic names for those */ +#define SUBLANG_ROMANIAN 0x01 +#define SUBLANG_ROMANIAN_MOLDAVIA 0x02 +#define SUBLANG_RUSSIAN 0x01 +#define SUBLANG_RUSSIAN_MOLDAVIA 0x02 +#define SUBLANG_CROATIAN 0x01 +#define SUBLANG_SERBIAN 0x02 +#define SUBLANG_SERBIAN_LATIN 0x03 +#define SUBLANG_SWEDISH 0x01 +#define SUBLANG_SWEDISH_FINLAND 0x02 +#define SUBLANG_LITHUANIAN 0x01 +#define SUBLANG_LITHUANIAN_CLASSIC 0x02 +#define SUBLANG_AZERI 0x01 +#define SUBLANG_AZERI_CYRILLIC 0x02 +#define SUBLANG_GAELIC 0x01 +#define SUBLANG_GAELIC_SCOTTISH 0x02 +#define SUBLANG_GAELIC_MANX 0x03 +#define SUBLANG_MALAY 0x01 +#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 +#define SUBLANG_UZBEK 0x01 +#define SUBLANG_UZBEK_CYRILLIC 0x02 +#define SUBLANG_URDU_PAKISTAN 0x01 + + + +/* + * Sort definitions + */ + +#define SORT_DEFAULT 0x0 +#define SORT_JAPANESE_XJIS 0x0 +#define SORT_JAPANESE_UNICODE 0x1 +#define SORT_CHINESE_BIG5 0x0 +#define SORT_CHINESE_UNICODE 0x1 +#define SORT_KOREAN_KSC 0x0 +#define SORT_KOREAN_UNICODE 0x1 + + + +/* + * Definitions for IsTextUnicode() + */ + +#define IS_TEXT_UNICODE_ASCII16 0x0001 +#define IS_TEXT_UNICODE_STATISTICS 0x0002 +#define IS_TEXT_UNICODE_CONTROLS 0x0004 +#define IS_TEXT_UNICODE_SIGNATURE 0x0008 +#define IS_TEXT_UNICODE_UNICODE_MASK 0x000F +#define IS_TEXT_UNICODE_REVERSE_ASCII16 0x0010 +#define IS_TEXT_UNICODE_REVERSE_STATISTICS 0x0020 +#define IS_TEXT_UNICODE_REVERSE_CONTROLS 0x0040 +#define IS_TEXT_UNICODE_REVERSE_SIGNATURE 0x0080 +#define IS_TEXT_UNICODE_REVERSE_MASK 0x00F0 +#define IS_TEXT_UNICODE_ILLEGAL_CHARS 0x0100 +#define IS_TEXT_UNICODE_ODD_LENGTH 0x0200 +#define IS_TEXT_UNICODE_DBCS_LEADBYTE 0x0400 +#define IS_TEXT_UNICODE_NOT_UNICODE_MASK 0x0F00 +#define IS_TEXT_UNICODE_NULL_BYTES 0x1000 +#define IS_TEXT_UNICODE_NOT_ASCII_MASK 0xF000 + + + /* * Exception codes */