Module: wine Branch: master Commit: 88219db8ab809de8ebc031a872f42b4fee7d026e URL: http://source.winehq.org/git/wine.git/?a=commit;h=88219db8ab809de8ebc031a872...
Author: Rob Shearman robertshearman@gmail.com Date: Tue Dec 29 19:00:53 2009 +0000
ole32: Handle SetClipboardData failing in OLE clipboard functions.
---
dlls/ole32/clipboard.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/ole32/clipboard.c b/dlls/ole32/clipboard.c index 51e750a..2afc77e 100644 --- a/dlls/ole32/clipboard.c +++ b/dlls/ole32/clipboard.c @@ -1701,7 +1701,11 @@ static HRESULT set_clipboard_formats(ole_clipbrd *clipbrd, IDataObject *data) td_offs_to_ptr(clipbrd->cached_enum, (DWORD_PTR)clipbrd->cached_enum->entries[idx].fmtetc.ptd);
GlobalUnlock(priv_data_handle); - SetClipboardData(ole_private_data_clipboard_format, priv_data_handle); + if(!SetClipboardData(ole_private_data_clipboard_format, priv_data_handle)) + { + GlobalFree(priv_data_handle); + return CLIPBRD_E_CANT_SET; + }
return S_OK; } @@ -1759,7 +1763,11 @@ static HRESULT expose_marshalled_dataobject(ole_clipbrd *clipbrd, IDataObject *d
if(!h) return E_OUTOFMEMORY;
- SetClipboardData(wine_marshal_clipboard_format, h); + if(!SetClipboardData(wine_marshal_clipboard_format, h)) + { + GlobalFree(h); + return CLIPBRD_E_CANT_SET; + } return S_OK; }