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