Better implementation of EMF record EMR_EXTSELECTCLIPRGN

Dmitry Timoshkov dmitry at sloboda.ru
Mon Feb 19 09:01:25 CST 2001


Hello.

Changelog:
    Dmitry Timoshkov <dmitry at codeweavers.com>
    Better implementation of EMF record EMR_EXTSELECTCLIPRGN.

--- cvs/wine/objects/enhmetafile.c	Thu Feb 15 19:20:04 2001
+++ wine/objects/enhmetafile.c	Sun Feb 18 18:51:04 2001
@@ -704,17 +704,10 @@
     case EMR_EXTSELECTCLIPRGN:
       {
 	PEMREXTSELECTCLIPRGN lpRgn = (PEMREXTSELECTCLIPRGN)mr;
-
-	if ((lpRgn->cbRgnData == 0) && (lpRgn->iMode == RGN_COPY)) {
-	  ExtSelectClipRgn( hdc, 0, RGN_COPY );
-	} else {
-	  FIXME("EMR_EXTSELECTCLIPRGN cbRgnData %lu\n", lpRgn->cbRgnData);
-
-	/* Need to make a region out of the RGNDATA we have */
-/*	  ExtCreateRegion(....); */
-/*	  ExtSelectClipRgn( hdc, ..., (INT)(lpRgn->iMode) ); */
-	}
-
+	HRGN hRgn = ExtCreateRegion(NULL, lpRgn->cbRgnData, (RGNDATA *)lpRgn->RgnData);
+	ExtSelectClipRgn(hdc, hRgn, (INT)(lpRgn->iMode));
+	/* ExtSelectClipRgn created a copy of the region */
+	DeleteObject(hRgn);
         break;
       }
 






More information about the wine-patches mailing list