Changeset 21634 for trunk/src


Ignore:
Timestamp:
Jun 11, 2011, 1:18:08 PM (14 years ago)
Author:
dmik
Message:

ole32: Fixed a crash when dragging an object that doesn't support CF_TEXT or CF_HDROP over an OS/2 (non-Odin) window (#107).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/ole32/ole2.c

    r21554 r21634  
    35373537    if(ret != S_OK) {
    35383538        dprintf(("IDataObject_GetData failed (fatal) with %x", ret));
     3539        if(pdwEffect) {
     3540            *pdwEffect = DROPEFFECT_NONE;
     3541        }
    35393542        return ret;
    35403543    }
     
    35553558    dprintf(("IDropTarget_fnDragOver %x (%d,%d)", grfKeyState, pt.x, pt.y));
    35563559
     3560    if (!This->lpDragStruct) {
     3561        dprintf(("IDropTarget_fnDragOver: fnDragEnter failed"));
     3562        if(pdwEffect) {
     3563            *pdwEffect = DROPEFFECT_NONE;
     3564        }
     3565        return S_OK;
     3566    }
     3567
    35573568    dwEffect = OSLibDragOver(This->lpDragStruct, pt.x, pt.y);
    35583569    if(pdwEffect) {
     
    35683579
    35693580    dprintf(("IDropTarget_fnDragLeave"));
     3581
     3582    if (!This->lpDragStruct) {
     3583        dprintf(("IDropTarget_fnDragLeave: fnDragEnter failed"));
     3584        return S_OK;
     3585    }
    35703586
    35713587    OSLibDragLeave(This->lpDragStruct);
     
    35833599
    35843600    dprintf(("IDropTarget_fnDrop %x (%d,%d) %s", grfKeyState, pt.x, pt.y, This->lpOS2StringData));
     3601
     3602    if (!This->lpDragStruct) {
     3603        dprintf(("IDropTarget_fnDrop: fnDragEnter failed"));
     3604        if(pdwEffect) {
     3605            *pdwEffect = DROPEFFECT_NONE;
     3606        }
     3607        return S_OK;
     3608    }
    35853609
    35863610    dwEffect = OSLibDragDrop(This->lpDragStruct, pt.x, pt.y, This->lpOS2StringData);
Note: See TracChangeset for help on using the changeset viewer.