diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index 4a09aac3a4a..fb14d56a442 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -80,7 +80,7 @@ @ stub GdipCreateBitmapFromResource @ stdcall GdipCreateBitmapFromScan0(long long long long ptr ptr) @ stub GdipCreateBitmapFromStream -@ stub GdipCreateBitmapFromStreamICM +@ stdcall GdipCreateBitmapFromStreamICM(ptr ptr) @ stub GdipCreateCachedBitmap @ stdcall GdipCreateCustomLineCap(ptr ptr long long ptr) @ stub GdipCreateEffect diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c index 28d4862fea6..1b986aee7b6 100644 --- a/dlls/gdiplus/image.c +++ b/dlls/gdiplus/image.c @@ -97,6 +97,19 @@ GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT width, INT height, INT stride, return Ok; } +GpStatus WINGDIPAPI GdipCreateBitmapFromStreamICM(IStream* stream, + GpBitmap **bitmap) +{ + GpStatus stat; + + stat = GdipLoadImageFromStreamICM(stream, (GpImage**) bitmap); + + if(stat == Ok) + (*bitmap)->image.type = ImageTypeBitmap; + + return stat; +} + GpStatus WINGDIPAPI GdipDisposeImage(GpImage *image) { if(!image) diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index 809868b131a..29ff401f2b5 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -140,6 +140,7 @@ GpStatus WINGDIPAPI GdipDeleteCustomLineCap(GpCustomLineCap*); GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT,INT,INT,PixelFormat,BYTE*, GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromStreamICM(IStream*,GpBitmap**); GpStatus WINGDIPAPI GdipDisposeImage(GpImage*); GpStatus WINGDIPAPI GdipGetImageBounds(GpImage*,GpRectF*,GpUnit*); GpStatus WINGDIPAPI GdipGetImageHeight(GpImage*,UINT*);