Commit 607a8d01 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

mshtml: Added get_event_dispex_ref helper that avoids using attr_name.

parent 9f0be726
...@@ -1396,13 +1396,22 @@ void detach_events(HTMLDocumentNode *doc) ...@@ -1396,13 +1396,22 @@ void detach_events(HTMLDocumentNode *doc)
release_nsevents(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) static void remove_event_handler(EventTarget *event_target, eventid_t eid)
{ {
handler_vector_t *handler_vector; handler_vector_t *handler_vector;
VARIANT *store; VARIANT *store;
HRESULT hres; 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)) if(SUCCEEDED(hres))
VariantClear(store); VariantClear(store);
...@@ -1458,7 +1467,7 @@ HRESULT set_event_handler(EventTarget *event_target, eventid_t eid, VARIANT *var ...@@ -1458,7 +1467,7 @@ HRESULT set_event_handler(EventTarget *event_target, eventid_t eid, VARIANT *var
*/ */
remove_event_handler(event_target, eid); 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)) if(FAILED(hres))
return hres; return hres;
...@@ -1485,7 +1494,7 @@ HRESULT get_event_handler(EventTarget *event_target, eventid_t eid, VARIANT *var ...@@ -1485,7 +1494,7 @@ HRESULT get_event_handler(EventTarget *event_target, eventid_t eid, VARIANT *var
VARIANT *v; VARIANT *v;
HRESULT hres; 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) { if(SUCCEEDED(hres) && V_VT(v) != VT_EMPTY) {
V_VT(var) = VT_EMPTY; V_VT(var) = VT_EMPTY;
return VariantCopy(var, v); return VariantCopy(var, v);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment