ole32: Only change DoDragDrop return value on IDropTarget::Drop failure.
This commit is contained in:
parent
bb33dbab1d
commit
95c57c618a
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue