mshtml: Moved call_disp_func to htmlevent.c.

oldstable
Jacek Caban 2011-02-25 14:11:05 +01:00 committed by Alexandre Julliard
parent 47ebbbd447
commit 1c881e534b
3 changed files with 25 additions and 27 deletions

View File

@ -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;

View File

@ -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};

View File

@ -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);