diff --git a/dlls/kernel/kernel32.spec b/dlls/kernel/kernel32.spec index 12d91504fc8..e6d133b22e5 100644 --- a/dlls/kernel/kernel32.spec +++ b/dlls/kernel/kernel32.spec @@ -253,8 +253,8 @@ @ stdcall EnumSystemCodePagesA(ptr long) @ stdcall EnumSystemCodePagesW(ptr long) @ stub EnumSystemGeoID -@ stub EnumSystemLanguageGroupsA -@ stub EnumSystemLanguageGroupsW +@ stdcall EnumSystemLanguageGroupsA(ptr long ptr) +@ stdcall EnumSystemLanguageGroupsW(ptr long ptr) @ stdcall EnumSystemLocalesA(ptr long) @ stdcall EnumSystemLocalesW(ptr long) @ stdcall EnumTimeFormatsA(ptr long long) diff --git a/dlls/kernel/locale.c b/dlls/kernel/locale.c index e2a6b138101..9184a65d32a 100644 --- a/dlls/kernel/locale.c +++ b/dlls/kernel/locale.c @@ -1012,3 +1012,31 @@ void LOCALE_Init(void) CODEPAGE_Init( ansi, oem, mac, lcid ); update_registry( lcid ); } + +/****************************************************************************** + * EnumSystemLanguageGroupsA (KERNEL32.@) + */ +BOOL EnumSystemLanguageGroupsA( + LANGUAGEGROUP_ENUMPROCA pLangGroupEnumProc, /* callback function */ + DWORD dwFlags, /* language groups */ + LONG_PTR lParam /* callback parameter */ +) +{ + FIXME("stub\n"); + SetLastError( ERROR_INVALID_PARAMETER ); + return FALSE; +} + +/****************************************************************************** + * EnumSystemLanguageGroupsW (KERNEL32.@) + */ +BOOL EnumSystemLanguageGroupsW( + LANGUAGEGROUP_ENUMPROCW pLangGroupEnumProc, /* callback function */ + DWORD dwFlags, /* language groups */ + LONG_PTR lParam /* callback parameter */ +) +{ + FIXME("stub\n"); + SetLastError( ERROR_INVALID_PARAMETER ); + return FALSE; +} diff --git a/include/winnls.h b/include/winnls.h index db0c880984d..9409817af02 100644 --- a/include/winnls.h +++ b/include/winnls.h @@ -340,6 +340,7 @@ extern "C" { /* Types */ +typedef DWORD LGRPID; typedef DWORD LCTYPE; typedef DWORD CALTYPE; typedef DWORD CALID; @@ -440,6 +441,8 @@ 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); #else typedef FARPROC CALINFO_ENUMPROCA; typedef FARPROC CALINFO_ENUMPROCW; @@ -455,6 +458,8 @@ typedef FARPROC LOCALE_ENUMPROCA; typedef FARPROC LOCALE_ENUMPROCW; typedef FARPROC TIMEFMT_ENUMPROCA; typedef FARPROC TIMEFMT_ENUMPROCW; +typedef FARPROC LANGUAGEGROUP_ENUMPROCA; +typedef FARPROC LANGUAGEGROUP_ENUMPROCW; #endif /* STRICT */ DECL_WINELIB_TYPE_AW(CALINFO_ENUMPROC)