Added resource strings for language groups.
diff --git a/include/winnls.h b/include/winnls.h
index 9409817..7fe59c0 100644
--- a/include/winnls.h
+++ b/include/winnls.h
@@ -32,7 +32,12 @@
#define MB_USEGLYPHCHARS 0x00000004
#define MB_ERR_INVALID_CHARS 0x00000008
+#define LGRPID_INSTALLED 0x00000001
+#define LGRPID_SUPPORTED 0x00000002
+
#define LCID_INSTALLED 0x00000001
+#define LCID_SUPPORTED 0x00000002
+#define LCID_ALTERNATE_SORTS 0x00000004
/* flags to GetLocaleInfo */
#define LOCALE_NOUSEROVERRIDE 0x80000000
@@ -337,6 +342,30 @@
#define CSTR_EQUAL 2
#define CSTR_GREATER_THAN 3
+/*
+ * Language Group ID Values.
+ * 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
+ * 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 */
+
/* Types
*/
@@ -443,6 +472,8 @@
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);
#else
typedef FARPROC CALINFO_ENUMPROCA;
typedef FARPROC CALINFO_ENUMPROCW;
@@ -460,6 +491,8 @@
typedef FARPROC TIMEFMT_ENUMPROCW;
typedef FARPROC LANGUAGEGROUP_ENUMPROCA;
typedef FARPROC LANGUAGEGROUP_ENUMPROCW;
+typedef FARPROC LANGGROUPLOCALE_ENUMPROCA;
+typedef FARPROC LANGGROUPLOCALE_ENUMPROCW;
#endif /* STRICT */
DECL_WINELIB_TYPE_AW(CALINFO_ENUMPROC)
@@ -496,6 +529,12 @@
BOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA,DWORD);
BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW,DWORD);
#define EnumSystemLocales WINELIB_NAME_AW(EnumSystemLocales)
+BOOL WINAPI EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA,DWORD,LONG_PTR);
+BOOL WINAPI EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW,DWORD,LONG_PTR);
+#define EnumSystemLanguageGroups WINELIB_NAME_AW(EnumSystemLanguageGroups)
+BOOL WINAPI EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA,LGRPID,DWORD,LONG_PTR);
+BOOL WINAPI EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW,LGRPID,DWORD,LONG_PTR);
+#define EnumLanguageGroupLocales WINELIB_NAME_AW(EnumLanguageGroupLocales)
BOOL WINAPI EnumTimeFormatsA(TIMEFMT_ENUMPROCA,LCID,DWORD);
BOOL WINAPI EnumTimeFormatsW(TIMEFMT_ENUMPROCW,LCID,DWORD);
#define EnumTimeFormats WINELIB_NAME_AW(EnumTimeFormats)
@@ -542,6 +581,7 @@
BOOL WINAPI IsDBCSLeadByteEx(UINT,BYTE);
BOOL WINAPI IsValidCodePage(UINT);
BOOL WINAPI IsValidLocale(LCID,DWORD);
+BOOL WINAPI IsValidLanguageGroup(LGRPID,DWORD);
INT WINAPI LCMapStringA(LCID,DWORD,LPCSTR,INT,LPSTR,INT);
INT WINAPI LCMapStringW(LCID,DWORD,LPCWSTR,INT,LPWSTR,INT);
#define LCMapString WINELIB_NAME_AW(LCMapString)