From 126475c13fd4133f232b1dbf04d19ce5a43ea2ff Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Sat, 19 May 2012 02:06:06 +0400 Subject: [PATCH] urlmon: Implement TYMED_HGLOBAL case for CopyStgMedium. (cherry picked from commit 6c4bdf3bdf95718db25ccf67d16ee0e7bdf1a55d) --- dlls/urlmon/urlmon_main.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c index a3d1c10668c..f91ce3dcad0 100644 --- a/dlls/urlmon/urlmon_main.c +++ b/dlls/urlmon/urlmon_main.c @@ -544,6 +544,21 @@ HRESULT WINAPI CopyStgMedium(const STGMEDIUM *src, STGMEDIUM *dst) if(dst->u.pstg) IStorage_AddRef(dst->u.pstg); break; + case TYMED_HGLOBAL: + if(dst->u.hGlobal) { + SIZE_T size = GlobalSize(src->u.hGlobal); + char *src_ptr, *dst_ptr; + + dst->u.hGlobal = GlobalAlloc(GMEM_FIXED, size); + if(!dst->u.hGlobal) + return E_OUTOFMEMORY; + dst_ptr = GlobalLock(dst->u.hGlobal); + src_ptr = GlobalLock(src->u.hGlobal); + memcpy(dst_ptr, src_ptr, size); + GlobalUnlock(src_ptr); + GlobalUnlock(dst_ptr); + } + break; default: FIXME("Unimplemented tymed %d\n", src->tymed); } -- 2.11.4.GIT