diff --git a/include/winnls.h b/include/winnls.h index 21de9985480..e497dac1f35 100644 --- a/include/winnls.h +++ b/include/winnls.h @@ -457,4 +457,6 @@ INT16 WINAPI GetLocaleInfo16(LCID,LCTYPE,LPSTR,INT16); BOOL16 WINAPI GetStringType16(LCID,DWORD,LPCSTR,INT16,LPWORD); +LCID WINAPI ConvertDefaultLocale(LCID Locale); + #endif /* __WINE_WINNLS_H */ diff --git a/ole/ole2nls.c b/ole/ole2nls.c index 067ddd5d737..d18d33e6ebb 100644 --- a/ole/ole2nls.c +++ b/ole/ole2nls.c @@ -643,7 +643,20 @@ INT16 WINAPI GetLocaleInfo16(LCID lcid,LCTYPE LCType,LPSTR buf,INT16 len) { return GetLocaleInfo32A(lcid,LCType,buf,len); } - +/****************************************************************************** + * ConvertDefaultLocale32 [KERNEL32.147] + */ +LCID WINAPI ConvertDefaultLocale32 (LCID lcid) +{ switch (lcid) + { case LOCALE_SYSTEM_DEFAULT: + return GetSystemDefaultLCID(); + case LOCALE_USER_DEFAULT: + return GetUserDefaultLCID(); + case 0: + return MAKELCID (LANG_NEUTRAL, SUBLANG_NEUTRAL); + } + return MAKELANGID( PRIMARYLANGID(lcid), SUBLANG_NEUTRAL); +} /****************************************************************************** * GetLocaleInfo32A [KERNEL32.342] * diff --git a/relay32/kernel32.spec b/relay32/kernel32.spec index 9a2f5b6a229..e392228c10a 100644 --- a/relay32/kernel32.spec +++ b/relay32/kernel32.spec @@ -160,7 +160,7 @@ init MAIN_KernelInit 144 stdcall CompareStringW(long long wstr long wstr long) CompareString32W 145 stub ConnectNamedPipe 146 stdcall ContinueDebugEvent(long long long) ContinueDebugEvent -147 stub ConvertDefaultLocale +147 stdcall ConvertDefaultLocale (long) ConvertDefaultLocale32 148 stdcall ConvertToGlobalHandle(long) ConvertToGlobalHandle 149 stdcall CopyFileA(str str long) CopyFile32A 150 stdcall CopyFileW(wstr wstr long) CopyFile32W