ole32: Add support for retrieving the data from CF_EMBEDDEDOBJECT.

This commit is contained in:
Huw Davies 2009-05-19 12:08:18 +01:00 committed by Alexandre Julliard
parent 63eb810428
commit d2837d91d0
1 changed files with 12 additions and 1 deletions

View File

@ -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;