Module: wine Branch: master Commit: 51385a98ccaaf0fa0d98ceeb9e0d0b422ef5be9d URL: http://source.winehq.org/git/wine.git/?a=commit;h=51385a98ccaaf0fa0d98ceeb9e...
Author: Vincent Povirk vincent@codeweavers.com Date: Fri Jun 19 14:26:48 2009 -0500
ole32: Add support for rendering HENHMETAFILE clipboard objects.
---
dlls/ole32/clipboard.c | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/dlls/ole32/clipboard.c b/dlls/ole32/clipboard.c index 81231aa..208645e 100644 --- a/dlls/ole32/clipboard.c +++ b/dlls/ole32/clipboard.c @@ -744,6 +744,30 @@ static HRESULT get_data_from_global(IDataObject *data, FORMATETC *fmt, HGLOBAL * return hr; }
+static HRESULT get_data_from_enhmetafile(IDataObject *data, FORMATETC *fmt, HGLOBAL *mem) +{ + HENHMETAFILE copy; + HRESULT hr; + FORMATETC mem_fmt; + STGMEDIUM med; + + *mem = NULL; + + mem_fmt = *fmt; + mem_fmt.tymed = TYMED_ENHMF; + + hr = IDataObject_GetData(data, &mem_fmt, &med); + if(FAILED(hr)) return hr; + + copy = CopyEnhMetaFileW(med.u.hEnhMetaFile, NULL); + if(copy) *mem = (HGLOBAL)copy; + else hr = E_FAIL; + + ReleaseStgMedium(&med); + + return hr; +} + /*********************************************************************** * render_format * @@ -773,6 +797,10 @@ static HRESULT render_format(IDataObject *data, LPFORMATETC fmt) { hr = get_data_from_global(data, fmt, &clip_data); } + else if(fmt->tymed & TYMED_ENHMF) + { + hr = get_data_from_enhmetafile(data, fmt, &clip_data); + } else { FIXME("Unhandled tymed %x\n", fmt->tymed);