Module: wine Branch: refs/heads/master Commit: 53b74b0d56659210c960ae0662c0af397b407ec4 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=53b74b0d56659210c960ae06...
Author: Kevin Koltzau kevin@plop.org Date: Wed Feb 22 23:09:59 2006 -0500
riched20: Call GetClipboardData callback on cut/copy.
---
dlls/riched20/editor.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 5eb9d77..cf6080a 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -1767,11 +1767,14 @@ LRESULT WINAPI RichEditANSIWndProc(HWND case WM_CUT: case WM_COPY: { - LPDATAOBJECT dataObj; + LPDATAOBJECT dataObj = NULL; CHARRANGE range; - HRESULT hr; + HRESULT hr = S_OK; ME_GetSelection(editor, (int*)&range.cpMin, (int*)&range.cpMax); - hr = ME_GetDataObject(editor, &range, &dataObj); + if(editor->lpOleCallback) + hr = IRichEditOleCallback_GetClipboardData(editor->lpOleCallback, &range, RECO_COPY, &dataObj); + if(FAILED(hr) || !dataObj) + hr = ME_GetDataObject(editor, &range, &dataObj); if(SUCCEEDED(hr)) { hr = OleSetClipboard(dataObj); IDataObject_Release(dataObj);