Jacek Caban : mshtml: Added get_event_dispex_ref helper that avoids using attr_name.
Module: wine Branch: master Commit: 607a8d0121dcdee783f808eeb9dc7e32ac47f936 URL: http://source.winehq.org/git/wine.git/?a=commit;h=607a8d0121dcdee783f808eeb9... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Fri Feb 17 13:17:02 2017 +0100 mshtml: Added get_event_dispex_ref helper that avoids using attr_name. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/mshtml/htmlevent.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index 13fda24..7c25ad9 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -1396,13 +1396,22 @@ void detach_events(HTMLDocumentNode *doc) release_nsevents(doc); } +static HRESULT get_event_dispex_ref(EventTarget *event_target, eventid_t eid, BOOL alloc, VARIANT **ret) +{ + WCHAR buf[64]; + buf[0] = 'o'; + buf[1] = 'n'; + strcpyW(buf+2, event_info[eid].name); + return dispex_get_dprop_ref(&event_target->dispex, buf, alloc, ret); +} + static void remove_event_handler(EventTarget *event_target, eventid_t eid) { handler_vector_t *handler_vector; VARIANT *store; HRESULT hres; - hres = dispex_get_dprop_ref(&event_target->dispex, event_info[eid].attr_name, FALSE, &store); + hres = get_event_dispex_ref(event_target, eid, FALSE, &store); if(SUCCEEDED(hres)) VariantClear(store); @@ -1458,7 +1467,7 @@ HRESULT set_event_handler(EventTarget *event_target, eventid_t eid, VARIANT *var */ remove_event_handler(event_target, eid); - hres = dispex_get_dprop_ref(&event_target->dispex, event_info[eid].attr_name, TRUE, &v); + hres = get_event_dispex_ref(event_target, eid, TRUE, &v); if(FAILED(hres)) return hres; @@ -1485,7 +1494,7 @@ HRESULT get_event_handler(EventTarget *event_target, eventid_t eid, VARIANT *var VARIANT *v; HRESULT hres; - hres = dispex_get_dprop_ref(&event_target->dispex, event_info[eid].attr_name, FALSE, &v); + hres = get_event_dispex_ref(event_target, eid, FALSE, &v); if(SUCCEEDED(hres) && V_VT(v) != VT_EMPTY) { V_VT(var) = VT_EMPTY; return VariantCopy(var, v);
participants (1)
-
Alexandre Julliard