Piotr Caban : mshtml: Added HTMLAttributeCollection2_getNamedItem implementation.

Alexandre Julliard julliard at winehq.org
Fri Sep 2 13:13:38 CDT 2011


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Fri Sep  2 14:17:02 2011 +0200

mshtml: Added HTMLAttributeCollection2_getNamedItem implementation.

---

 dlls/mshtml/htmlelem.c |   25 +++++++++++++++++++++----
 1 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index 1cd838d..b9840b1 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -2403,8 +2403,26 @@ static HRESULT WINAPI HTMLAttributeCollection2_getNamedItem(IHTMLAttributeCollec
         IHTMLDOMAttribute **newretNode)
 {
     HTMLAttributeCollection *This = impl_from_IHTMLAttributeCollection2(iface);
-    FIXME("(%p)->(%s %p)\n", This, debugstr_w(bstrName), newretNode);
-    return E_NOTIMPL;
+    HTMLDOMAttribute *attr;
+    DISPID id;
+    HRESULT hres;
+
+    TRACE("(%p)->(%s %p)\n", This, debugstr_w(bstrName), newretNode);
+
+    hres = get_attr_dispid_by_name(This, bstrName, &id);
+    if(hres == DISP_E_UNKNOWNNAME) {
+        *newretNode = NULL;
+        return S_OK;
+    } else if(FAILED(hres)) {
+        return hres;
+    }
+
+    hres = get_domattr(This->elem, id, &attr);
+    if(FAILED(hres))
+        return hres;
+
+    *newretNode = &attr->IHTMLDOMAttribute_iface;
+    return S_OK;
 }
 
 static HRESULT WINAPI HTMLAttributeCollection2_setNamedItem(IHTMLAttributeCollection2 *iface,
@@ -2493,8 +2511,7 @@ static HRESULT WINAPI HTMLAttributeCollection3_getNamedItem(IHTMLAttributeCollec
         IHTMLDOMAttribute **ppNodeOut)
 {
     HTMLAttributeCollection *This = impl_from_IHTMLAttributeCollection3(iface);
-    FIXME("(%p)->(%s %p)\n", This, debugstr_w(bstrName), ppNodeOut);
-    return E_NOTIMPL;
+    return IHTMLAttributeCollection2_getNamedItem(&This->IHTMLAttributeCollection2_iface, bstrName, ppNodeOut);
 }
 
 static HRESULT WINAPI HTMLAttributeCollection3_setNamedItem(IHTMLAttributeCollection3 *iface,




More information about the wine-cvs mailing list