Jacek Caban : mshtml: Added IOmNavigator::get_*Language implementations.
Alexandre Julliard
julliard at winehq.org
Mon Aug 1 13:22:10 CDT 2011
Module: wine
Branch: master
Commit: e36d0d2e1bc817934c4fb6eb457c64524b98342d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e36d0d2e1bc817934c4fb6eb457c64524b98342d
Author: Jacek Caban <jacek at 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)
More information about the wine-cvs
mailing list