diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 834d0e228b5..50d2f6b090d 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -74,7 +74,7 @@ @ stdcall GdipCreateBitmapFromFile(wstr ptr) @ stub GdipCreateBitmapFromFileICM @ stub GdipCreateBitmapFromGdiDib -@ stub GdipCreateBitmapFromGraphics +@ stdcall GdipCreateBitmapFromGraphics(long long ptr ptr) @ stub GdipCreateBitmapFromHBITMAP @ stub GdipCreateBitmapFromHICON @ stub GdipCreateBitmapFromResource diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c index d34e76dd892..d8136780a53 100644 --- a/dlls/gdiplus/image.c +++ b/dlls/gdiplus/image.c @@ -251,6 +251,26 @@ GpStatus WINGDIPAPI GdipCreateBitmapFromFile(GDIPCONST WCHAR* filename, return stat; } +/* FIXME: this should create a bitmap in the given size with the attributes + * (resolution etc.) of the graphics object */ +GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(INT width, INT height, + GpGraphics* target, GpBitmap** bitmap) +{ + static int calls; + GpStatus ret; + + if(!target || !bitmap) + return InvalidParameter; + + if(!(calls++)) + FIXME("hacked stub\n"); + + ret = GdipCreateBitmapFromScan0(width, height, 0, PixelFormat24bppRGB, + NULL, bitmap); + + return ret; +} + GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT width, INT height, INT stride, PixelFormat format, BYTE* scan0, GpBitmap** bitmap) { diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 57b14ab036c..33d0e33ca15 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -185,6 +185,7 @@ GpStatus WINGDIPAPI GdipBitmapGetPixel(GpBitmap*,INT,INT,ARGB*); GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap*,GDIPCONST GpRect*,UINT, PixelFormat,BitmapData*); GpStatus WINGDIPAPI GdipCreateBitmapFromFile(GDIPCONST WCHAR*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(INT,INT,GpGraphics*,GpBitmap**); GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT,INT,INT,PixelFormat,BYTE*, GpBitmap**); GpStatus WINGDIPAPI GdipCreateBitmapFromStream(IStream*,GpBitmap**);