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