From: James Tabor Date: Mon, 3 Jun 2019 20:49:14 +0000 (-0500) Subject: [GDI32] Meta File Fix Ups X-Git-Tag: 0.4.14-dev~882 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=9f57320175fecbf3ea09f6a068c41642e1fc4d8b;ds=inline [GDI32] Meta File Fix Ups Remove pointer hack. Safer since using wines Enhanced Meta headers with unknown wine magic information. --- diff --git a/win32ss/gdi/gdi32/objects/metafile.c b/win32ss/gdi/gdi32/objects/metafile.c index e1a51fb69f4..42bd22ec93c 100644 --- a/win32ss/gdi/gdi32/objects/metafile.c +++ b/win32ss/gdi/gdi32/objects/metafile.c @@ -139,16 +139,22 @@ GdiCreateLocalMetaFilePict(HANDLE hmo) { static const WCHAR szDisplayW[] = { 'D','I','S','P','L','A','Y','\0' }; HENHMETAFILE hEMF; - PENHMETAHEADER pemh = (PENHMETAHEADER)Buffer; - - pInfo->mm = MM_ANISOTROPIC; - pInfo->xExt = pemh->rclFrame.right - pemh->rclFrame.left; // Width - pInfo->yExt = pemh->rclFrame.bottom - pemh->rclFrame.top; // Height + ENHMETAHEADER emh; hEMF = SetEnhMetaFileBits(nSize, Buffer); if (hEMF == NULL) goto Exit; + if (!GetEnhMetaFileHeader( hEMF, sizeof(emh), &emh )) + { + DeleteEnhMetaFile(hEMF); + goto Exit; + } + + pInfo->mm = MM_ANISOTROPIC; // wine uses MM_ISOTROPIC. + pInfo->xExt = emh.rclFrame.right - emh.rclFrame.left; // Width + pInfo->yExt = emh.rclFrame.bottom - emh.rclFrame.top; // Height + hDC = CreateDCW(szDisplayW, NULL, NULL, NULL); if (hDC) {