Module: wine Branch: master Commit: e36d0d2e1bc817934c4fb6eb457c64524b98342d URL: http://source.winehq.org/git/wine.git/?a=commit;h=e36d0d2e1bc817934c4fb6eb45...
Author: Jacek Caban jacek@codeweavers.com Date: Sun Jul 31 16:45:26 2011 +0200
mshtml: Added IOmNavigator::get_*Language implementations.
---
dlls/mshtml/omnavigator.c | 44 ++++++++++++++++++++++++++++++++++++++------ 1 files changed, 38 insertions(+), 6 deletions(-)
diff --git a/dlls/mshtml/omnavigator.c b/dlls/mshtml/omnavigator.c index b4b5c15..73e55dd 100644 --- a/dlls/mshtml/omnavigator.c +++ b/dlls/mshtml/omnavigator.c @@ -621,25 +621,57 @@ static HRESULT WINAPI OmNavigator_get_cpuClass(IOmNavigator *iface, BSTR *p) return *p ? S_OK : E_OUTOFMEMORY; }
+static HRESULT get_language_string(LCID lcid, BSTR *p) +{ + BSTR ret; + int len; + + len = LCIDToLocaleName(lcid, NULL, 0, 0); + if(!len) { + WARN("LCIDToLocaleName failed: %u\n", GetLastError()); + return E_FAIL; + } + + ret = SysAllocStringLen(NULL, len-1); + if(!ret) + return E_OUTOFMEMORY; + + len = LCIDToLocaleName(lcid, ret, len, 0); + if(!len) { + WARN("LCIDToLocaleName failed: %u\n", GetLastError()); + SysFreeString(ret); + return E_FAIL; + } + + *p = ret; + return S_OK; +} + static HRESULT WINAPI OmNavigator_get_systemLanguage(IOmNavigator *iface, BSTR *p) { OmNavigator *This = impl_from_IOmNavigator(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return get_language_string(LOCALE_SYSTEM_DEFAULT, p); }
static HRESULT WINAPI OmNavigator_get_browserLanguage(IOmNavigator *iface, BSTR *p) { OmNavigator *This = impl_from_IOmNavigator(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return get_language_string(GetUserDefaultUILanguage(), p); }
static HRESULT WINAPI OmNavigator_get_userLanguage(IOmNavigator *iface, BSTR *p) { OmNavigator *This = impl_from_IOmNavigator(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return get_language_string(LOCALE_USER_DEFAULT, p); }
static HRESULT WINAPI OmNavigator_get_platform(IOmNavigator *iface, BSTR *p)