Jacek Caban : mshtml: Added IHTMLDocument::get_charset implementation.

Alexandre Julliard julliard at winehq.org
Mon Sep 24 16:04:27 CDT 2012


Module: wine
Branch: master
Commit: efb08f261d88061f0ccc7b959f7986d4d06044c2
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=efb08f261d88061f0ccc7b959f7986d4d06044c2

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Sep 24 14:10:50 2012 +0200

mshtml: Added IHTMLDocument::get_charset implementation.

---

 dlls/mshtml/htmldoc.c   |   15 +++++++++++++--
 dlls/mshtml/tests/dom.c |    7 +++++++
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index ff917d9..322751a 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -729,8 +729,19 @@ static HRESULT WINAPI HTMLDocument_put_charset(IHTMLDocument2 *iface, BSTR v)
 static HRESULT WINAPI HTMLDocument_get_charset(IHTMLDocument2 *iface, BSTR *p)
 {
     HTMLDocument *This = impl_from_IHTMLDocument2(iface);
-    FIXME("(%p)->(%p)\n", This, p);
-    return E_NOTIMPL;
+    nsAString charset_str;
+    nsresult nsres;
+
+    TRACE("(%p)->(%p)\n", This, p);
+
+    if(!This->doc_node->nsdoc) {
+        FIXME("NULL nsdoc\n");
+        return E_FAIL;
+    }
+
+    nsAString_Init(&charset_str, NULL);
+    nsres = nsIDOMHTMLDocument_GetCharacterSet(This->doc_node->nsdoc, &charset_str);
+    return return_nsstr(nsres, &charset_str, p);
 }
 
 static HRESULT WINAPI HTMLDocument_put_defaultCharset(IHTMLDocument2 *iface, BSTR v)
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 149aa5e..c988ac6 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -4745,6 +4745,7 @@ static void test_defaults(IHTMLDocument2 *doc)
     IHTMLElement2 *elem2;
     IHTMLElement *elem;
     IHTMLStyle *style;
+    BSTR str;
     LONG l;
     HRESULT hres;
     IHTMLElementCollection *collection;
@@ -4819,6 +4820,12 @@ static void test_defaults(IHTMLDocument2 *doc)
     test_ifaces((IUnknown*)style, style_iids);
     IHTMLStyle_Release(style);
 
+    str = NULL;
+    hres = IHTMLDocument2_get_charset(doc, &str);
+    ok(hres == S_OK, "get_charset failed: %08x\n", hres);
+    ok(str && *str, "charset is empty"); /* FIXME: better tests */
+    SysFreeString(str);
+
     test_window(doc);
     test_compatmode(doc);
     test_location(doc);




More information about the wine-cvs mailing list