From: Bartosz Kosiorek <gang65@poczta.onet.pl> In case HEMF (Handle to an Enhanced Metafile) is missing, we should return InvalidParameter --- dlls/gdiplus/image.c | 4 ++++ dlls/gdiplus/tests/metafile.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c index d70d2a5be25..f5f334f2605 100644 --- a/dlls/gdiplus/image.c +++ b/dlls/gdiplus/image.c @@ -2339,8 +2339,12 @@ GpStatus WINGDIPAPI GdipGetImageWidth(GpImage *image, UINT *width) return InvalidParameter; if(image->type == ImageTypeMetafile) + { + if(!((GpMetafile*)image)->hemf) + return InvalidParameter; *width = units_to_pixels(((GpMetafile*)image)->bounds.Width, ((GpMetafile*)image)->unit, image->xres, ((GpMetafile*)image)->printer_display); + } else if(image->type == ImageTypeBitmap) *width = ((GpBitmap*)image)->width; else diff --git a/dlls/gdiplus/tests/metafile.c b/dlls/gdiplus/tests/metafile.c index 04b6eb02aad..11eac354dc7 100644 --- a/dlls/gdiplus/tests/metafile.c +++ b/dlls/gdiplus/tests/metafile.c @@ -1483,7 +1483,7 @@ static void test_pagetransform(void) expect(InvalidParameter, stat); stat = GdipGetImageWidth((GpImage*)metafile, &width); - todo_wine expect(InvalidParameter, stat); + expect(InvalidParameter, stat); stat = GdipGetImageHeight((GpImage*)metafile, &height); todo_wine expect(InvalidParameter, stat); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10480