Jacek Caban : mshtml: Return IHTMLElementCollection instead of IDispatch from HTMLElementCollection_Create .

Alexandre Julliard julliard at winehq.org
Thu Oct 4 06:21:10 CDT 2007


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Oct  4 02:12:02 2007 +0200

mshtml: Return IHTMLElementCollection instead of IDispatch from HTMLElementCollection_Create.

---

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

diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index 27d3b71..dd152f2 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -38,7 +38,7 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
 
-static HRESULT HTMLElementCollection_Create(IUnknown*,HTMLElement**,DWORD,IDispatch**);
+static IHTMLElementCollection *HTMLElementCollection_Create(IUnknown*,HTMLElement**,DWORD);
 
 typedef struct {
     HTMLElement **buf;
@@ -1083,7 +1083,8 @@ static HRESULT WINAPI HTMLElement_get_children(IHTMLElement *iface, IDispatch **
 
     create_child_list(This->node.doc, This, &buf);
 
-    return HTMLElementCollection_Create((IUnknown*)HTMLELEM(This), buf.buf, buf.len, p);
+    *p = (IDispatch*)HTMLElementCollection_Create((IUnknown*)HTMLELEM(This), buf.buf, buf.len);
+    return S_OK;
 }
 
 static void create_all_list(HTMLDocument *doc, HTMLElement *elem, elem_vector *buf)
@@ -1133,7 +1134,8 @@ static HRESULT WINAPI HTMLElement_get_all(IHTMLElement *iface, IDispatch **p)
     create_all_list(This->node.doc, This, &buf);
     elem_vector_normalize(&buf);
 
-    return HTMLElementCollection_Create((IUnknown*)HTMLELEM(This), buf.buf, buf.len, p);
+    *p = (IDispatch*)HTMLElementCollection_Create((IUnknown*)HTMLELEM(This), buf.buf, buf.len);
+    return S_OK;
 }
 
 #undef HTMLELEM_THIS
@@ -1526,7 +1528,8 @@ static HRESULT WINAPI HTMLElementCollection_item(IHTMLElementCollection *iface,
         }
         elem_vector_normalize(&buf);
         TRACE("Returning %d element(s).\n", buf.len);
-        return HTMLElementCollection_Create(This->ref_unk, buf.buf, buf.len, pdisp);
+        *pdisp = (IDispatch*)HTMLElementCollection_Create(This->ref_unk, buf.buf, buf.len);
+        return S_OK;
     }
 
     FIXME("unsupported arguments\n");
@@ -1570,7 +1573,8 @@ static HRESULT WINAPI HTMLElementCollection_tags(IHTMLElementCollection *iface,
 
     TRACE("fount %d tags\n", buf.len);
 
-    return HTMLElementCollection_Create(This->ref_unk, buf.buf, buf.len, pdisp);
+    *pdisp = (IDispatch*)HTMLElementCollection_Create(This->ref_unk, buf.buf, buf.len);
+    return S_OK;
 }
 
 #undef ELEMCOL_THIS
@@ -1591,8 +1595,8 @@ static const IHTMLElementCollectionVtbl HTMLElementCollectionVtbl = {
     HTMLElementCollection_tags
 };
 
-static HRESULT HTMLElementCollection_Create(IUnknown *ref_unk, HTMLElement **elems, DWORD len,
-                                            IDispatch **p)
+static IHTMLElementCollection *HTMLElementCollection_Create(IUnknown *ref_unk,
+            HTMLElement **elems, DWORD len)
 {
     HTMLElementCollection *ret = mshtml_alloc(sizeof(HTMLElementCollection));
 
@@ -1606,6 +1610,5 @@ static HRESULT HTMLElementCollection_Create(IUnknown *ref_unk, HTMLElement **ele
 
     TRACE("ret=%p len=%d\n", ret, len);
 
-    *p = (IDispatch*)ret;
-    return S_OK;
+    return HTMLELEMCOL(ret);
 }




More information about the wine-cvs mailing list