Piotr Caban : ole32: Only change DoDragDrop return value on IDropTarget:: Drop failure.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jan 15 15:55:42 CST 2015


Module: wine
Branch: master
Commit: 95c57c618affa2ff77a7a54798c4ce6b2dd1234c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=95c57c618affa2ff77a7a54798c4ce6b2dd1234c

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Jan 15 13:39:31 2015 +0100

ole32: Only change DoDragDrop return value on IDropTarget::Drop failure.

---

 dlls/ole32/ole2.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/dlls/ole32/ole2.c b/dlls/ole32/ole2.c
index 786fdb4..f6c6c10 100644
--- a/dlls/ole32/ole2.c
+++ b/dlls/ole32/ole2.c
@@ -2407,11 +2407,12 @@ static void OLEDD_TrackStateChange(TrackerWindowInfo* trackerInfo)
 	 */
         case DRAGDROP_S_DROP:
           if (*trackerInfo->pdwEffect != DROPEFFECT_NONE)
-            trackerInfo->returnValue =  IDropTarget_Drop(trackerInfo->curDragTarget,
-                                                         trackerInfo->dataObject,
-                                                         trackerInfo->dwKeyState,
-                                                         trackerInfo->curMousePos,
-                                                         trackerInfo->pdwEffect);
+          {
+            hr = IDropTarget_Drop(trackerInfo->curDragTarget, trackerInfo->dataObject,
+                    trackerInfo->dwKeyState, trackerInfo->curMousePos, trackerInfo->pdwEffect);
+            if (FAILED(hr))
+              trackerInfo->returnValue = hr;
+          }
           else
             IDropTarget_DragLeave(trackerInfo->curDragTarget);
           break;




More information about the wine-cvs mailing list