From d2837d91d0670e3d79e10620911e7f661d0d3d8a Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Tue, 19 May 2009 12:08:18 +0100 Subject: [PATCH] ole32: Add support for retrieving the data from CF_EMBEDDEDOBJECT. --- dlls/ole32/ole2impl.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/dlls/ole32/ole2impl.c b/dlls/ole32/ole2impl.c index b37ced64449..e226687b6ff 100644 --- a/dlls/ole32/ole2impl.c +++ b/dlls/ole32/ole2impl.c @@ -98,7 +98,7 @@ static inline void init_fmtetc(FORMATETC *fmt, CLIPFORMAT cf, TYMED tymed) * * Retrieve an object's storage from a variety of sources. * - * FIXME: CF_EMBEDDEDOBJECT, CF_FILENAME. + * FIXME: CF_FILENAME. */ static HRESULT get_storage(IDataObject *data, IStorage *stg, UINT *src_cf) { @@ -110,6 +110,17 @@ static HRESULT get_storage(IDataObject *data, IStorage *stg, UINT *src_cf) *src_cf = 0; + /* CF_EMBEDEDOBJECT */ + init_fmtetc(&fmt, embedded_object_clipboard_format, TYMED_ISTORAGE); + med.tymed = TYMED_ISTORAGE; + med.u.pstg = stg; + hr = IDataObject_GetDataHere(data, &fmt, &med); + if(SUCCEEDED(hr)) + { + *src_cf = embedded_object_clipboard_format; + return hr; + } + /* CF_EMBEDSOURCE */ init_fmtetc(&fmt, embed_source_clipboard_format, TYMED_ISTORAGE); med.tymed = TYMED_ISTORAGE;