Jacek Caban : mshtml: Use IDOMMouseEvent instead of nsIDOMMouseEvent in IHTMLEventObj implementation.
Alexandre Julliard
julliard at winehq.org
Mon Feb 5 16:48:27 CST 2018
Module: wine
Branch: master
Commit: 65ce11478c2885ed2b248e6967479ba84fabb449
URL: https://source.winehq.org/git/wine.git/?a=commit;h=65ce11478c2885ed2b248e6967479ba84fabb449
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Feb 5 17:31:04 2018 +0100
mshtml: Use IDOMMouseEvent instead of nsIDOMMouseEvent in IHTMLEventObj implementation.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mshtml/htmlevent.c | 109 ++++++++++++------------------------------------
1 file changed, 27 insertions(+), 82 deletions(-)
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index 8462bed..633c1f9 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -411,6 +411,9 @@ static HRESULT WINAPI HTMLEventObj_get_altKey(IHTMLEventObj *iface, VARIANT_BOOL
TRACE("(%p)->(%p)\n", This, p);
+ if(This->event && This->event->mouse_event)
+ return IDOMMouseEvent_get_altKey(&This->event->IDOMMouseEvent_iface, p);
+
if(This->event) {
nsIDOMKeyEvent *key_event;
nsresult nsres;
@@ -419,14 +422,6 @@ static HRESULT WINAPI HTMLEventObj_get_altKey(IHTMLEventObj *iface, VARIANT_BOOL
if(NS_SUCCEEDED(nsres)) {
nsIDOMKeyEvent_GetAltKey(key_event, &ret);
nsIDOMKeyEvent_Release(key_event);
- }else {
- nsIDOMMouseEvent *mouse_event;
-
- nsres = nsIDOMEvent_QueryInterface(This->event->nsevent, &IID_nsIDOMMouseEvent, (void**)&mouse_event);
- if(NS_SUCCEEDED(nsres)) {
- nsIDOMMouseEvent_GetAltKey(mouse_event, &ret);
- nsIDOMMouseEvent_Release(mouse_event);
- }
}
}
@@ -441,6 +436,9 @@ static HRESULT WINAPI HTMLEventObj_get_ctrlKey(IHTMLEventObj *iface, VARIANT_BOO
TRACE("(%p)->(%p)\n", This, p);
+ if(This->event && This->event->mouse_event)
+ return IDOMMouseEvent_get_ctrlKey(&This->event->IDOMMouseEvent_iface, p);
+
if(This->event) {
nsIDOMKeyEvent *key_event;
nsresult nsres;
@@ -449,14 +447,6 @@ static HRESULT WINAPI HTMLEventObj_get_ctrlKey(IHTMLEventObj *iface, VARIANT_BOO
if(NS_SUCCEEDED(nsres)) {
nsIDOMKeyEvent_GetCtrlKey(key_event, &ret);
nsIDOMKeyEvent_Release(key_event);
- }else {
- nsIDOMMouseEvent *mouse_event;
-
- nsres = nsIDOMEvent_QueryInterface(This->event->nsevent, &IID_nsIDOMMouseEvent, (void**)&mouse_event);
- if(NS_SUCCEEDED(nsres)) {
- nsIDOMMouseEvent_GetCtrlKey(mouse_event, &ret);
- nsIDOMMouseEvent_Release(mouse_event);
- }
}
}
@@ -471,6 +461,9 @@ static HRESULT WINAPI HTMLEventObj_get_shiftKey(IHTMLEventObj *iface, VARIANT_BO
TRACE("(%p)->(%p)\n", This, p);
+ if(This->event && This->event->mouse_event)
+ return IDOMMouseEvent_get_shiftKey(&This->event->IDOMMouseEvent_iface, p);
+
if(This->event) {
nsIDOMKeyEvent *key_event;
nsresult nsres;
@@ -479,14 +472,6 @@ static HRESULT WINAPI HTMLEventObj_get_shiftKey(IHTMLEventObj *iface, VARIANT_BO
if(NS_SUCCEEDED(nsres)) {
nsIDOMKeyEvent_GetShiftKey(key_event, &ret);
nsIDOMKeyEvent_Release(key_event);
- }else {
- nsIDOMMouseEvent *mouse_event;
-
- nsres = nsIDOMEvent_QueryInterface(This->event->nsevent, &IID_nsIDOMMouseEvent, (void**)&mouse_event);
- if(NS_SUCCEEDED(nsres)) {
- nsIDOMMouseEvent_GetShiftKey(mouse_event, &ret);
- nsIDOMMouseEvent_Release(mouse_event);
- }
}
}
@@ -594,19 +579,15 @@ static HRESULT WINAPI HTMLEventObj_get_keyCode(IHTMLEventObj *iface, LONG *p)
static HRESULT WINAPI HTMLEventObj_get_button(IHTMLEventObj *iface, LONG *p)
{
HTMLEventObj *This = impl_from_IHTMLEventObj(iface);
- INT16 button = 0;
+ USHORT button = 0;
TRACE("(%p)->(%p)\n", This, p);
- if(This->event) {
- nsIDOMMouseEvent *mouse_event;
- nsresult nsres;
-
- nsres = nsIDOMEvent_QueryInterface(This->event->nsevent, &IID_nsIDOMMouseEvent, (void**)&mouse_event);
- if(NS_SUCCEEDED(nsres)) {
- nsIDOMMouseEvent_GetButton(mouse_event, &button);
- nsIDOMMouseEvent_Release(mouse_event);
- }
+ if(This->event && This->event->mouse_event) {
+ HRESULT hres;
+ hres = IDOMMouseEvent_get_button(&This->event->IDOMMouseEvent_iface, &button);
+ if(FAILED(hres))
+ return hres;
}
*p = button;
@@ -698,44 +679,26 @@ static HRESULT WINAPI HTMLEventObj_get_y(IHTMLEventObj *iface, LONG *p)
static HRESULT WINAPI HTMLEventObj_get_clientX(IHTMLEventObj *iface, LONG *p)
{
HTMLEventObj *This = impl_from_IHTMLEventObj(iface);
- LONG x = 0;
TRACE("(%p)->(%p)\n", This, p);
- if(This->event) {
- nsIDOMMouseEvent *mouse_event;
- nsresult nsres;
+ if(This->event && This->event->mouse_event)
+ return IDOMMouseEvent_get_clientX(&This->event->IDOMMouseEvent_iface, p);
- nsres = nsIDOMEvent_QueryInterface(This->event->nsevent, &IID_nsIDOMMouseEvent, (void**)&mouse_event);
- if(NS_SUCCEEDED(nsres)) {
- nsIDOMMouseEvent_GetClientX(mouse_event, &x);
- nsIDOMMouseEvent_Release(mouse_event);
- }
- }
-
- *p = x;
+ *p = 0;
return S_OK;
}
static HRESULT WINAPI HTMLEventObj_get_clientY(IHTMLEventObj *iface, LONG *p)
{
HTMLEventObj *This = impl_from_IHTMLEventObj(iface);
- LONG y = 0;
TRACE("(%p)->(%p)\n", This, p);
- if(This->event) {
- nsIDOMMouseEvent *mouse_event;
- nsresult nsres;
-
- nsres = nsIDOMEvent_QueryInterface(This->event->nsevent, &IID_nsIDOMMouseEvent, (void**)&mouse_event);
- if(NS_SUCCEEDED(nsres)) {
- nsIDOMMouseEvent_GetClientY(mouse_event, &y);
- nsIDOMMouseEvent_Release(mouse_event);
- }
- }
+ if(This->event && This->event->mouse_event)
+ return IDOMMouseEvent_get_clientY(&This->event->IDOMMouseEvent_iface, p);
- *p = y;
+ *p = 0;
return S_OK;
}
@@ -762,44 +725,26 @@ static HRESULT WINAPI HTMLEventObj_get_offsetY(IHTMLEventObj *iface, LONG *p)
static HRESULT WINAPI HTMLEventObj_get_screenX(IHTMLEventObj *iface, LONG *p)
{
HTMLEventObj *This = impl_from_IHTMLEventObj(iface);
- LONG x = 0;
TRACE("(%p)->(%p)\n", This, p);
- if(This->event) {
- nsIDOMMouseEvent *mouse_event;
- nsresult nsres;
-
- nsres = nsIDOMEvent_QueryInterface(This->event->nsevent, &IID_nsIDOMMouseEvent, (void**)&mouse_event);
- if(NS_SUCCEEDED(nsres)) {
- nsIDOMMouseEvent_GetScreenX(mouse_event, &x);
- nsIDOMMouseEvent_Release(mouse_event);
- }
- }
+ if(This->event && This->event->mouse_event)
+ return IDOMMouseEvent_get_screenX(&This->event->IDOMMouseEvent_iface, p);
- *p = x;
+ *p = 0;
return S_OK;
}
static HRESULT WINAPI HTMLEventObj_get_screenY(IHTMLEventObj *iface, LONG *p)
{
HTMLEventObj *This = impl_from_IHTMLEventObj(iface);
- LONG y = 0;
TRACE("(%p)->(%p)\n", This, p);
- if(This->event) {
- nsIDOMMouseEvent *mouse_event;
- nsresult nsres;
-
- nsres = nsIDOMEvent_QueryInterface(This->event->nsevent, &IID_nsIDOMMouseEvent, (void**)&mouse_event);
- if(NS_SUCCEEDED(nsres)) {
- nsIDOMMouseEvent_GetScreenY(mouse_event, &y);
- nsIDOMMouseEvent_Release(mouse_event);
- }
- }
+ if(This->event && This->event->mouse_event)
+ return IDOMMouseEvent_get_screenY(&This->event->IDOMMouseEvent_iface, p);
- *p = y;
+ *p = 0;
return S_OK;
}
More information about the wine-cvs
mailing list