diff --git a/dlls/gdi/enhmfdrv/bitblt.c b/dlls/gdi/enhmfdrv/bitblt.c
index 18a58c58477fe4931e1d6417777cb9c7b065e42b..ad1d09171c8ade63fa7d80ffc3aa5af6e8fba0fb 100644
--- a/dlls/gdi/enhmfdrv/bitblt.c
+++ b/dlls/gdi/enhmfdrv/bitblt.c
@@ -94,7 +94,8 @@ static BOOL EMFDRV_BitBlockTransfer(
     else
         return FALSE;
 
-    GetObjectW(hBitmap, sizeof(BITMAP), &BM);
+    if(sizeof(BITMAP) != GetObjectW(hBitmap, sizeof(BITMAP), &BM))
+        return FALSE;
 
     nBPP = BM.bmPlanes * BM.bmBitsPixel;
     if(nBPP > 8) nBPP = 24; /* FIXME Can't get 16bpp to work for some reason */