Rob Shearman : mshtml: Implement HTMLElement_setAttribute.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jun 25 07:28:33 CDT 2007


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

Author: Rob Shearman <rob at codeweavers.com>
Date:   Sun Jun 24 09:18:41 2007 +0100

mshtml: Implement HTMLElement_setAttribute.

---

 dlls/mshtml/htmlelem.c |   36 ++++++++++++++++++++++++++++++++++--
 1 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index 516a0d0..ccdad8c 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -135,8 +135,40 @@ static HRESULT WINAPI HTMLElement_setAttribute(IHTMLElement *iface, BSTR strAttr
                                                VARIANT AttributeValue, LONG lFlags)
 {
     HTMLElement *This = HTMLELEM_THIS(iface);
-    FIXME("(%p)->(%s . %08x)\n", This, debugstr_w(strAttributeName), lFlags);
-    return E_NOTIMPL;
+    nsAString attr_str;
+    nsAString value_str;
+    nsresult nsres;
+    HRESULT hres;
+    VARIANT AttributeValueChanged;
+
+    WARN("(%p)->(%s . %08x)\n", This, debugstr_w(strAttributeName), lFlags);
+
+    VariantInit(&AttributeValueChanged);
+
+    hres = VariantChangeType(&AttributeValueChanged, &AttributeValue, 0, VT_BSTR);
+    if (FAILED(hres)) {
+        WARN("couldn't convert input attribute value %d to VT_BSTR\n", V_VT(&AttributeValue));
+        return hres;
+    }
+
+    nsAString_Init(&attr_str, strAttributeName);
+    nsAString_Init(&value_str, V_BSTR(&AttributeValueChanged));
+
+    TRACE("setting %s to %s\n", debugstr_w(strAttributeName),
+        debugstr_w(V_BSTR(&AttributeValueChanged)));
+
+    nsres = nsIDOMHTMLElement_SetAttribute(This->nselem, &attr_str, &value_str);
+    nsAString_Finish(&attr_str);
+    nsAString_Finish(&value_str);
+
+    if(NS_SUCCEEDED(nsres)) {
+        hres = S_OK;
+    }else {
+        ERR("SetAttribute failed: %08x\n", nsres);
+        hres = E_FAIL;
+    }
+
+    return hres;
 }
 
 static HRESULT WINAPI HTMLElement_getAttribute(IHTMLElement *iface, BSTR strAttributeName,




More information about the wine-cvs mailing list