Rob Shearman : ole32: Handle SetClipboardData failing in OLE clipboard functions.
Alexandre Julliard
julliard at winehq.org
Wed Dec 30 10:18:14 CST 2009
Module: wine
Branch: master
Commit: 88219db8ab809de8ebc031a872f42b4fee7d026e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=88219db8ab809de8ebc031a872f42b4fee7d026e
Author: Rob Shearman <robertshearman at 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;
}
More information about the wine-cvs
mailing list