From e61e1968437e82fa19f821c2f6ca4b7e86d1b305 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Thu, 11 Mar 2021 20:40:35 +0100 Subject: [PATCH] mshtml: Initialize DOMEventObj object with compat mode. Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/mshtml/htmldoc.c | 2 +- dlls/mshtml/htmlevent.c | 12 ++++++------ dlls/mshtml/htmlevent.h | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index 344079ba36e..4e56d548f47 100644 --- a/dlls/mshtml/htmldoc.c +++ b/dlls/mshtml/htmldoc.c @@ -2681,7 +2681,7 @@ static HRESULT WINAPI HTMLDocument4_createEventObject(IHTMLDocument4 *iface, return E_NOTIMPL; } - return create_event_obj(ppEventObj); + return create_event_obj(dispex_compat_mode(&This->doc_node->node.event_target.dispex), ppEventObj); } static HRESULT WINAPI HTMLDocument4_fireEvent(IHTMLDocument4 *iface, BSTR bstrEventName, diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index 9995f40a571..17584669c3b 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -756,7 +756,7 @@ static dispex_static_data_t HTMLEventObj_dispex = { HTMLEventObj_iface_tids }; -static HTMLEventObj *alloc_event_obj(DOMEvent *event) +static HTMLEventObj *alloc_event_obj(DOMEvent *event, compat_mode_t compat_mode) { HTMLEventObj *event_obj; @@ -770,15 +770,15 @@ static HTMLEventObj *alloc_event_obj(DOMEvent *event) if(event) IDOMEvent_AddRef(&event->IDOMEvent_iface); - init_dispex(&event_obj->dispex, (IUnknown*)&event_obj->IHTMLEventObj_iface, &HTMLEventObj_dispex); + init_dispex_with_compat_mode(&event_obj->dispex, (IUnknown*)&event_obj->IHTMLEventObj_iface, &HTMLEventObj_dispex, compat_mode); return event_obj; } -HRESULT create_event_obj(IHTMLEventObj **ret) +HRESULT create_event_obj(compat_mode_t compat_mode, IHTMLEventObj **ret) { HTMLEventObj *event_obj; - event_obj = alloc_event_obj(NULL); + event_obj = alloc_event_obj(NULL, compat_mode); if(!event_obj) return E_OUTOFMEMORY; @@ -2682,7 +2682,7 @@ static HRESULT dispatch_event_object(EventTarget *event_target, DOMEvent *event, } while(iter); if(!event->event_obj && !event->no_event_obj) { - event_obj_ref = alloc_event_obj(event); + event_obj_ref = alloc_event_obj(event, dispex_compat_mode(&event->dispex)); if(event_obj_ref) event->event_obj = &event_obj_ref->IHTMLEventObj_iface; } @@ -2800,7 +2800,7 @@ HRESULT fire_event(HTMLDOMNode *node, const WCHAR *event_name, VARIANT *event_va } if(!event_obj) { - event_obj = alloc_event_obj(NULL); + event_obj = alloc_event_obj(NULL, dispex_compat_mode(&node->event_target.dispex)); if(!event_obj) return E_OUTOFMEMORY; } diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h index fc581ee5398..617b15b6c49 100644 --- a/dlls/mshtml/htmlevent.h +++ b/dlls/mshtml/htmlevent.h @@ -102,7 +102,7 @@ HRESULT fire_event(HTMLDOMNode*,const WCHAR*,VARIANT*,VARIANT_BOOL*) DECLSPEC_HI void update_doc_cp_events(HTMLDocumentNode*,cp_static_data_t*) DECLSPEC_HIDDEN; HRESULT doc_init_events(HTMLDocumentNode*) DECLSPEC_HIDDEN; void detach_events(HTMLDocumentNode *doc) DECLSPEC_HIDDEN; -HRESULT create_event_obj(IHTMLEventObj**) DECLSPEC_HIDDEN; +HRESULT create_event_obj(compat_mode_t,IHTMLEventObj**) DECLSPEC_HIDDEN; void bind_target_event(HTMLDocumentNode*,EventTarget*,const WCHAR*,IDispatch*) DECLSPEC_HIDDEN; HRESULT ensure_doc_nsevent_handler(HTMLDocumentNode*,nsIDOMNode*,eventid_t) DECLSPEC_HIDDEN;