Vincent Povirk : ole32: Add support for rendering HENHMETAFILE clipboard objects.
Alexandre Julliard
julliard at winehq.org
Mon Jun 22 09:04:09 CDT 2009
Module: wine
Branch: master
Commit: 51385a98ccaaf0fa0d98ceeb9e0d0b422ef5be9d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=51385a98ccaaf0fa0d98ceeb9e0d0b422ef5be9d
Author: Vincent Povirk <vincent at 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);
More information about the wine-cvs
mailing list