Commit 1c881e53 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

mshtml: Moved call_disp_func to htmlevent.c.

parent 47ebbbd4
......@@ -324,30 +324,6 @@ static dispex_data_t *get_dispex_data(DispatchEx *This)
return This->data->data;
}
HRESULT call_disp_func(IDispatch *disp, DISPPARAMS *dp)
{
EXCEPINFO ei;
IDispatchEx *dispex;
VARIANT res;
HRESULT hres;
VariantInit(&res);
memset(&ei, 0, sizeof(ei));
hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (void**)&dispex);
if(SUCCEEDED(hres)) {
hres = IDispatchEx_InvokeEx(dispex, 0, GetUserDefaultLCID(), DISPATCH_METHOD, dp, &res, &ei, NULL);
IDispatchEx_Release(dispex);
}else {
TRACE("Could not get IDispatchEx interface: %08x\n", hres);
hres = IDispatch_Invoke(disp, 0, &IID_NULL, GetUserDefaultLCID(), DISPATCH_METHOD,
dp, &res, &ei, NULL);
}
VariantClear(&res);
return hres;
}
static inline BOOL is_custom_dispid(DISPID id)
{
return MSHTML_DISPID_CUSTOM_MIN <= id && id <= MSHTML_DISPID_CUSTOM_MAX;
......
......@@ -786,6 +786,30 @@ static IHTMLEventObj *create_event(HTMLDOMNode *target, eventid_t eid, nsIDOMEve
return &ret->IHTMLEventObj_iface;
}
static HRESULT call_disp_func(IDispatch *disp, DISPPARAMS *dp)
{
EXCEPINFO ei;
IDispatchEx *dispex;
VARIANT res;
HRESULT hres;
VariantInit(&res);
memset(&ei, 0, sizeof(ei));
hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (void**)&dispex);
if(SUCCEEDED(hres)) {
hres = IDispatchEx_InvokeEx(dispex, 0, GetUserDefaultLCID(), DISPATCH_METHOD, dp, &res, &ei, NULL);
IDispatchEx_Release(dispex);
}else {
TRACE("Could not get IDispatchEx interface: %08x\n", hres);
hres = IDispatch_Invoke(disp, 0, &IID_NULL, GetUserDefaultLCID(), DISPATCH_METHOD,
dp, &res, &ei, NULL);
}
VariantClear(&res);
return hres;
}
static HRESULT call_cp_func(IDispatch *disp, DISPID dispid)
{
DISPPARAMS dp = {NULL,NULL,0,0};
......
......@@ -204,6 +204,7 @@ BOOL dispex_query_interface(DispatchEx*,REFIID,void**);
HRESULT dispex_get_dprop_ref(DispatchEx*,const WCHAR*,BOOL,VARIANT**);
HRESULT get_dispids(tid_t,DWORD*,DISPID**);
HRESULT remove_prop(DispatchEx*,BSTR,VARIANT_BOOL*);
void release_typelib(void);
typedef struct HTMLWindow HTMLWindow;
typedef struct HTMLDocumentNode HTMLDocumentNode;
......@@ -866,9 +867,6 @@ void remove_target_tasks(LONG);
DWORD set_task_timer(HTMLDocument*,DWORD,BOOL,IDispatch*);
HRESULT clear_task_timer(HTMLDocument*,BOOL,DWORD);
void release_typelib(void);
HRESULT call_disp_func(IDispatch*,DISPPARAMS*);
const char *debugstr_variant(const VARIANT*);
DEFINE_GUID(CLSID_AboutProtocol, 0x3050F406, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
......
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