Jacek Caban : mshtml: Added IDispatchEx support for frame element.

Alexandre Julliard julliard at winehq.org
Fri Jan 22 08:26:52 CST 2010


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jan 21 14:48:43 2010 +0100

mshtml: Added IDispatchEx support for frame element.

---

 dlls/mshtml/dispex.c         |    2 ++
 dlls/mshtml/htmlframe.c      |   21 ++++++++++++++++++++-
 dlls/mshtml/mshtml_private.h |    2 ++
 dlls/mshtml/tests/dom.c      |    2 +-
 4 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c
index be44748..4019a3c 100644
--- a/dlls/mshtml/dispex.c
+++ b/dlls/mshtml/dispex.c
@@ -92,6 +92,7 @@ static REFIID tid_ids[] = {
     &DIID_DispHTMLElementCollection,
     &DIID_DispHTMLFormElement,
     &DIID_DispHTMLGenericElement,
+    &DIID_DispHTMLFrameElement,
     &DIID_DispHTMLIFrame,
     &DIID_DispHTMLImg,
     &DIID_DispHTMLInputElement,
@@ -133,6 +134,7 @@ static REFIID tid_ids[] = {
     &IID_IHTMLFrameBase,
     &IID_IHTMLFrameBase2,
     &IID_IHTMLGenericElement,
+    &IID_IHTMLFrameElement3,
     &IID_IHTMLIFrameElement,
     &IID_IHTMLImageElementFactory,
     &IID_IHTMLImgElement,
diff --git a/dlls/mshtml/htmlframe.c b/dlls/mshtml/htmlframe.c
index 0bf5c4d..99b3f0b 100644
--- a/dlls/mshtml/htmlframe.c
+++ b/dlls/mshtml/htmlframe.c
@@ -269,6 +269,25 @@ static const NodeImplVtbl HTMLFrameElementImplVtbl = {
     HTMLFrameElement_bind_to_tree
 };
 
+static const tid_t HTMLFrameElement_iface_tids[] = {
+    IHTMLDOMNode_tid,
+    IHTMLDOMNode2_tid,
+    IHTMLElement_tid,
+    IHTMLElement2_tid,
+    IHTMLElement3_tid,
+    IHTMLFrameBase_tid,
+    IHTMLFrameBase2_tid,
+    IHTMLFrameElement3_tid,
+    0
+};
+
+static dispex_static_data_t HTMLFrameElement_dispex = {
+    NULL,
+    DispHTMLFrameElement_tid,
+    NULL,
+    HTMLFrameElement_iface_tids
+};
+
 HTMLElement *HTMLFrameElement_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem)
 {
     HTMLFrameElement *ret;
@@ -278,7 +297,7 @@ HTMLElement *HTMLFrameElement_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *n
     ret->framebase.element.node.vtbl = &HTMLFrameElementImplVtbl;
     ret->lpIHTMLFrameElement3Vtbl = &HTMLFrameElement3Vtbl;
 
-    HTMLFrameBase_Init(&ret->framebase, doc, nselem, NULL);
+    HTMLFrameBase_Init(&ret->framebase, doc, nselem, &HTMLFrameElement_dispex);
 
     return &ret->framebase.element;
 }
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 4529231..0f7930e 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -68,6 +68,7 @@ typedef enum {
     DispHTMLElementCollection_tid,
     DispHTMLFormElement_tid,
     DispHTMLGenericElement_tid,
+    DispHTMLFrameElement_tid,
     DispHTMLIFrame_tid,
     DispHTMLImg_tid,
     DispHTMLInputElement_tid,
@@ -108,6 +109,7 @@ typedef enum {
     IHTMLFormElement_tid,
     IHTMLFrameBase_tid,
     IHTMLFrameBase2_tid,
+    IHTMLFrameElement3_tid,
     IHTMLGenericElement_tid,
     IHTMLIFrameElement_tid,
     IHTMLImageElementFactory_tid,
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 6fa0e29..c818a1d 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -421,7 +421,7 @@ static const elem_type_info_t elem_type_infos[] = {
     {"TD",        td_iids,          NULL},
     {"IFRAME",    iframe_iids,      &DIID_DispHTMLIFrame},
     {"FORM",      form_iids,        &DIID_DispHTMLFormElement},
-    {"FRAME",     frame_iids,       NULL}
+    {"FRAME",     frame_iids,       &DIID_DispHTMLFrameElement}
 };
 
 static const char *dbgstr_guid(REFIID riid)




More information about the wine-cvs mailing list