Jacek Caban : mshtml: Correctly handle VT_EMPTY in set_event_handler_disp in standard compliant mode.
Alexandre Julliard
julliard at winehq.org
Fri Sep 29 13:32:38 CDT 2017
Module: wine
Branch: master
Commit: fd10004e31b834b5497f9dddf51aad2af6c9bc81
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fd10004e31b834b5497f9dddf51aad2af6c9bc81
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Sep 29 17:14:42 2017 +0200
mshtml: Correctly handle VT_EMPTY in set_event_handler_disp in standard compliant mode.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mshtml/htmlevent.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index 4372066..ebb901c 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -185,6 +185,8 @@ static const event_info_t event_info[] = {
EVENT_FIXME}
};
+static BOOL use_event_quirks(EventTarget*);
+
eventid_t str_to_eid(LPCWSTR str)
{
int i;
@@ -953,6 +955,9 @@ void call_event_handlers(HTMLDocumentNode *doc, HTMLEventObj *event_obj, EventTa
VARIANTARG arg;
DISPPARAMS dp = {&arg, &named_arg, 1, 1};
+ if(!use_event_quirks(event_target))
+ FIXME("Event argument not supported\n");
+
V_VT(&arg) = VT_DISPATCH;
V_DISPATCH(&arg) = this_obj;
V_VT(&v) = VT_EMPTY;
@@ -1381,6 +1386,12 @@ static HRESULT set_event_handler_disp(EventTarget *event_target, eventid_t eid,
HRESULT set_event_handler(EventTarget *event_target, eventid_t eid, VARIANT *var)
{
switch(V_VT(var)) {
+ case VT_EMPTY:
+ if(use_event_quirks(event_target)) {
+ WARN("attempt to set to VT_EMPTY in quirks mode\n");
+ return E_NOTIMPL;
+ }
+ /* fall through */
case VT_NULL:
remove_event_handler(event_target, eid);
return S_OK;
@@ -1392,6 +1403,9 @@ HRESULT set_event_handler(EventTarget *event_target, eventid_t eid, VARIANT *var
VARIANT *v;
HRESULT hres;
+ if(!use_event_quirks(event_target))
+ FIXME("Setting to string %s not supported\n", debugstr_w(V_BSTR(var)));
+
/*
* Setting event handler to string is a rare case and we don't want to
* complicate nor increase memory of handler_vector_t for that. Instead,
@@ -1413,8 +1427,6 @@ HRESULT set_event_handler(EventTarget *event_target, eventid_t eid, VARIANT *var
default:
FIXME("not handler %s\n", debugstr_variant(var));
- /* fall through */
- case VT_EMPTY:
return E_NOTIMPL;
}
More information about the wine-cvs
mailing list