From: jimtabor Date: Sat, 1 Jun 2019 03:59:29 +0000 (-0500) Subject: [User32] Fix Clipboard Meta Test Results X-Git-Tag: 0.4.14-dev~917 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=73558e94df8e76bb50fe9b9b45d48d5cabf8e243 [User32] Fix Clipboard Meta Test Results Fix meta data handle returns. --- diff --git a/win32ss/user/user32/windows/clipboard.c b/win32ss/user/user32/windows/clipboard.c index 95fb87811be..bb51ce76ab1 100644 --- a/win32ss/user/user32/windows/clipboard.c +++ b/win32ss/user/user32/windows/clipboard.c @@ -303,7 +303,7 @@ SetClipboardData(UINT uFormat, HANDLE hMem) DWORD dwSize; HANDLE hGlobal; LPVOID pMem; - HANDLE hRet = NULL; + HANDLE hRet = NULL, hTemp; SETCLIPBDATA scd = {FALSE, FALSE}; /* Check if this is a delayed rendering */ @@ -318,13 +318,15 @@ SetClipboardData(UINT uFormat, HANDLE hMem) /* Meta files are probably checked for validity */ else if (uFormat == CF_DSPMETAFILEPICT || uFormat == CF_METAFILEPICT ) { - hMem = GdiConvertMetaFilePict( hMem ); - hRet = NtUserSetClipboardData(uFormat, hMem, &scd); + hTemp = GdiConvertMetaFilePict( hMem ); + hRet = NtUserSetClipboardData(uFormat, hTemp, &scd); // Note : LOL, it returns a BOOL not a HANDLE!!!! + if (hRet == hTemp) hRet = hMem; // If successful "TRUE", return the original handle. } else if (uFormat == CF_DSPENHMETAFILE || uFormat == CF_ENHMETAFILE) { - hMem = GdiConvertEnhMetaFile( hMem ); - hRet = NtUserSetClipboardData(uFormat, hMem, &scd); + hTemp = GdiConvertEnhMetaFile( hMem ); + hRet = NtUserSetClipboardData(uFormat, hTemp, &scd); + if (hRet == hTemp) hRet = hMem; } else {