Jacek Caban : mshtml: Added support for IHTMLDOMAttribute2:: get_value on detached attributes.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Mar 30 10:00:31 CDT 2016


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Mar 30 14:38:58 2016 +0200

mshtml: Added support for IHTMLDOMAttribute2::get_value on detached attributes.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/htmlattr.c  | 11 +++++------
 dlls/mshtml/tests/dom.c |  7 +++++++
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/dlls/mshtml/htmlattr.c b/dlls/mshtml/htmlattr.c
index 8b21eea..bd7cb82 100644
--- a/dlls/mshtml/htmlattr.c
+++ b/dlls/mshtml/htmlattr.c
@@ -310,12 +310,11 @@ static HRESULT WINAPI HTMLDOMAttribute2_get_value(IHTMLDOMAttribute2 *iface, BST
 
     TRACE("(%p)->(%p)\n", This, p);
 
-    if(!This->elem) {
-        FIXME("NULL This->elem\n");
-        return E_UNEXPECTED;
-    }
-
-    hres = get_elem_attr_value_by_dispid(This->elem, This->dispid, &val);
+    V_VT(&val) = VT_EMPTY;
+    if(This->elem)
+        hres = get_elem_attr_value_by_dispid(This->elem, This->dispid, &val);
+    else
+        hres = VariantCopy(&val, &This->value);
     if(SUCCEEDED(hres))
         hres = attr_value_to_string(&val);
     if(FAILED(hres))
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index f64bd82..41dddab 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -8610,11 +8610,18 @@ static void test_attr(IHTMLDocument2 *doc, IHTMLElement *elem)
 
     get_attr_node_value(attr, &v, VT_I4);
     ok(V_I4(&v) == 1, "nodeValue = %d\n", V_I4(&v));
+    test_attr_value(attr, "1");
 
     V_VT(&v) = VT_EMPTY;
     put_attr_node_value(attr, v);
     get_attr_node_value(attr, &v, VT_EMPTY);
 
+    V_VT(&v) = VT_BSTR;
+    V_BSTR(&v) = a2bstr("testing");
+    put_attr_node_value(attr, v);
+    SysFreeString(V_BSTR(&v));
+    test_attr_value(attr, "testing");
+
     IHTMLDOMAttribute_Release(attr);
 }
 




More information about the wine-cvs mailing list