Module: wine Branch: master Commit: 2261b2653a67f0220694f896d3f0f4465f6b40c5 URL: https://gitlab.winehq.org/wine/wine/-/commit/2261b2653a67f0220694f896d3f0f44...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Jul 15 19:08:41 2024 +0200
mshtml: Directly use dispex_prop_put and dispex_prop_get in HTMLElement implementation.
---
dlls/mshtml/dispex.c | 4 ++-- dlls/mshtml/htmlelem.c | 13 +++---------- dlls/mshtml/mshtml_private.h | 4 ++++ 3 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c index 72eb8db40a7..ccba451507b 100644 --- a/dlls/mshtml/dispex.c +++ b/dlls/mshtml/dispex.c @@ -1914,7 +1914,7 @@ static HRESULT WINAPI DispatchEx_GetDispID(IWineJSDispatchHost *iface, BSTR bstr return S_OK; }
-static HRESULT dispex_prop_get(DispatchEx *dispex, DISPID id, LCID lcid, VARIANT *r, EXCEPINFO *ei, IServiceProvider *caller) +HRESULT dispex_prop_get(DispatchEx *dispex, DISPID id, LCID lcid, VARIANT *r, EXCEPINFO *ei, IServiceProvider *caller) { switch(get_dispid_type(id)) { case DISPEXPROP_CUSTOM: { @@ -1950,7 +1950,7 @@ static HRESULT dispex_prop_get(DispatchEx *dispex, DISPID id, LCID lcid, VARIANT } }
-static HRESULT dispex_prop_put(DispatchEx *dispex, DISPID id, LCID lcid, VARIANT *v, EXCEPINFO *ei, IServiceProvider *caller) +HRESULT dispex_prop_put(DispatchEx *dispex, DISPID id, LCID lcid, VARIANT *v, EXCEPINFO *ei, IServiceProvider *caller) { static DISPID propput_dispid = DISPID_PROPERTYPUT;
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c index 470b718523b..750bc8f2428 100644 --- a/dlls/mshtml/htmlelem.c +++ b/dlls/mshtml/htmlelem.c @@ -1161,8 +1161,6 @@ static inline WCHAR *translate_attr_name(WCHAR *attr_name, compat_mode_t compat_
static HRESULT set_elem_attr_value_by_dispid(HTMLElement *elem, DISPID dispid, VARIANT *v) { - DISPID propput_dispid = DISPID_PROPERTYPUT; - DISPPARAMS dp = {v, &propput_dispid, 1, 1}; EXCEPINFO ei;
if(dispid == DISPID_IHTMLELEMENT_STYLE) { @@ -1170,8 +1168,7 @@ static HRESULT set_elem_attr_value_by_dispid(HTMLElement *elem, DISPID dispid, V return S_OK; }
- return IWineJSDispatchHost_InvokeEx(&elem->node.event_target.dispex.IWineJSDispatchHost_iface, dispid, - LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYPUT, &dp, NULL, &ei, NULL); + return dispex_prop_put(&elem->node.event_target.dispex, dispid, LOCALE_SYSTEM_DEFAULT, v, &ei, NULL); }
static HRESULT WINAPI HTMLElement_setAttribute(IHTMLElement *iface, BSTR strAttributeName, @@ -1238,11 +1235,8 @@ done:
HRESULT get_elem_attr_value_by_dispid(HTMLElement *elem, DISPID dispid, VARIANT *ret) { - DISPPARAMS dispParams = {NULL, NULL, 0, 0}; EXCEPINFO excep; - - return IWineJSDispatchHost_InvokeEx(&elem->node.event_target.dispex.IWineJSDispatchHost_iface, dispid, LOCALE_SYSTEM_DEFAULT, - DISPATCH_PROPERTYGET, &dispParams, ret, &excep, NULL); + return dispex_prop_get(&elem->node.event_target.dispex, dispid, LOCALE_SYSTEM_DEFAULT, ret, &excep, NULL); }
HRESULT attr_value_to_string(VARIANT *v) @@ -2483,8 +2477,7 @@ static HRESULT WINAPI HTMLElement_toString(IHTMLElement *iface, BSTR *String) if(!String) return E_INVALIDARG;
- hres = IWineJSDispatchHost_InvokeEx(&This->node.event_target.dispex.IWineJSDispatchHost_iface, DISPID_VALUE, - LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET, NULL, &var, NULL, NULL); + hres = dispex_prop_get(&This->node.event_target.dispex, DISPID_VALUE, LOCALE_SYSTEM_DEFAULT, &var, NULL, NULL); if(SUCCEEDED(hres)) { assert(V_VT(&var) == VT_BSTR); *String = V_BSTR(&var); diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 0bce00762b7..dffb191f13c 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -508,6 +508,10 @@ compat_mode_t dispex_compat_mode(DispatchEx*); HRESULT dispex_to_string(DispatchEx*,BSTR*); HRESULT dispex_call_builtin(DispatchEx *dispex, DISPID id, DISPPARAMS *dp, VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller); +HRESULT dispex_prop_get(DispatchEx *dispex, DISPID id, LCID lcid, VARIANT *r, EXCEPINFO *ei, + IServiceProvider *caller); +HRESULT dispex_prop_put(DispatchEx *dispex, DISPID id, LCID lcid, VARIANT *v, EXCEPINFO *ei, + IServiceProvider *caller);
typedef enum { DISPEXPROP_CUSTOM,