fix(drag_out): return E_OUTOFMEMORY on GlobalLock failure in HDropDataObject::GetData

This commit is contained in:
2026-07-26 20:06:55 -04:00
parent 34df2563e4
commit 4f51758ad6
+5 -3
View File
@@ -138,10 +138,12 @@ public:
HGLOBAL copy = GlobalAlloc(GMEM_MOVEABLE, sz);
if (!copy) return E_OUTOFMEMORY;
void* src = GlobalLock(hdrop_);
if (!src) { GlobalFree(copy); return E_OUTOFMEMORY; }
void* dst = GlobalLock(copy);
if (src && dst) std::memcpy(dst, src, sz);
if (src) GlobalUnlock(hdrop_);
if (dst) GlobalUnlock(copy);
if (!dst) { GlobalUnlock(hdrop_); GlobalFree(copy); return E_OUTOFMEMORY; }
std::memcpy(dst, src, sz);
GlobalUnlock(hdrop_);
GlobalUnlock(copy);
med->tymed = TYMED_HGLOBAL;
med->hGlobal = copy;