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

This commit is contained in:
Piotr Caban 2015-01-15 13:39:31 +01:00 committed by Alexandre Julliard
parent bb33dbab1d
commit 95c57c618a
1 changed files with 6 additions and 5 deletions

View File

@ -2407,11 +2407,12 @@ static void OLEDD_TrackStateChange(TrackerWindowInfo* trackerInfo)
*/ */
case DRAGDROP_S_DROP: case DRAGDROP_S_DROP:
if (*trackerInfo->pdwEffect != DROPEFFECT_NONE) if (*trackerInfo->pdwEffect != DROPEFFECT_NONE)
trackerInfo->returnValue = IDropTarget_Drop(trackerInfo->curDragTarget, {
trackerInfo->dataObject, hr = IDropTarget_Drop(trackerInfo->curDragTarget, trackerInfo->dataObject,
trackerInfo->dwKeyState, trackerInfo->dwKeyState, trackerInfo->curMousePos, trackerInfo->pdwEffect);
trackerInfo->curMousePos, if (FAILED(hr))
trackerInfo->pdwEffect); trackerInfo->returnValue = hr;
}
else else
IDropTarget_DragLeave(trackerInfo->curDragTarget); IDropTarget_DragLeave(trackerInfo->curDragTarget);
break; break;