Jacek Caban : mshtml: Added IDispatchEx support to HTMLDOMChildrenCollection.
Alexandre Julliard
julliard at winehq.org
Thu May 1 06:38:38 CDT 2008
Module: wine
Branch: master
Commit: 30d204753704cc1ff4c714e274effba98d1a21b5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=30d204753704cc1ff4c714e274effba98d1a21b5
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Apr 30 18:18:09 2008 +0200
mshtml: Added IDispatchEx support to HTMLDOMChildrenCollection.
---
dlls/mshtml/dispex.c | 2 ++
dlls/mshtml/htmlnode.c | 16 ++++++++++++++++
dlls/mshtml/mshtml_private.h | 2 ++
3 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c
index 6f17a9d..f0cfc59 100644
--- a/dlls/mshtml/dispex.c
+++ b/dlls/mshtml/dispex.c
@@ -51,6 +51,7 @@ static struct list dispex_data_list = LIST_INIT(dispex_data_list);
static REFIID tid_ids[] = {
&IID_NULL,
+ &DIID_DispDOMChildrenCollection,
&DIID_DispHTMLDocument,
&DIID_DispHTMLDOMTextNode,
&DIID_DispHTMLElementCollection,
@@ -62,6 +63,7 @@ static REFIID tid_ids[] = {
&IID_IHTMLDocument3,
&IID_IHTMLDocument4,
&IID_IHTMLDocument5,
+ &IID_IHTMLDOMChildrenCollection,
&IID_IHTMLDOMNode,
&IID_IHTMLDOMNode2,
&IID_IHTMLDOMTextNode,
diff --git a/dlls/mshtml/htmlnode.c b/dlls/mshtml/htmlnode.c
index dbb35e1..1a9bea3 100644
--- a/dlls/mshtml/htmlnode.c
+++ b/dlls/mshtml/htmlnode.c
@@ -32,6 +32,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
typedef struct {
+ DispatchEx dispex;
const IHTMLDOMChildrenCollectionVtbl *lpIHTMLDOMChildrenCollectionVtbl;
LONG ref;
@@ -58,6 +59,9 @@ static HRESULT WINAPI HTMLDOMChildrenCollection_QueryInterface(IHTMLDOMChildrenC
}else if(IsEqualGUID(&IID_IDispatch, riid)) {
TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
*ppv = HTMLCHILDCOL(This);
+ }else if(IsEqualGUID(&IID_IDispatchEx, riid)) {
+ TRACE("(%p)->(IID_IDispatchEx %p)\n", This, ppv);
+ *ppv = DISPATCHEX(&This->dispex);
}else if(IsEqualGUID(&IID_IHTMLDOMChildrenCollection, riid)) {
TRACE("(%p)->(IID_IHTMLDOMChildrenCollection %p)\n", This, ppv);
*ppv = HTMLCHILDCOL(This);
@@ -189,6 +193,16 @@ static const IHTMLDOMChildrenCollectionVtbl HTMLDOMChildrenCollectionVtbl = {
HTMLDOMChildrenCollection_item
};
+static dispex_static_data_t HTMLDOMChildrenCollection_dispex = {
+ NULL,
+ DispDOMChildrenCollection_tid,
+ NULL,
+ {
+ IHTMLDOMChildrenCollection_tid,
+ 0
+ }
+};
+
static IHTMLDOMChildrenCollection *create_child_collection(HTMLDocument *doc, nsIDOMNodeList *nslist)
{
HTMLDOMChildrenCollection *ret;
@@ -201,6 +215,8 @@ static IHTMLDOMChildrenCollection *create_child_collection(HTMLDocument *doc, ns
ret->nslist = nslist;
ret->doc = doc;
+ init_dispex(&ret->dispex, (IUnknown*)HTMLCHILDCOL(ret), &HTMLDOMChildrenCollection_dispex);
+
return HTMLCHILDCOL(ret);
}
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 55c0090..92d63a2 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -61,6 +61,7 @@ typedef struct event_target_t event_target_t;
/* NOTE: make sure to keep in sync with dispex.c */
typedef enum {
NULL_tid,
+ DispDOMChildrenCollection_tid,
DispHTMLDocument_tid,
DispHTMLDOMTextNode_tid,
DispHTMLElementCollection_tid,
@@ -72,6 +73,7 @@ typedef enum {
IHTMLDocument3_tid,
IHTMLDocument4_tid,
IHTMLDocument5_tid,
+ IHTMLDOMChildrenCollection_tid,
IHTMLDOMNode_tid,
IHTMLDOMNode2_tid,
IHTMLDOMTextNode_tid,
More information about the wine-cvs
mailing list