Vincent Povirk : gdiplus: Implement GdipGetImagePalette.

Alexandre Julliard julliard at winehq.org
Mon Dec 14 09:51:11 CST 2009


Module: wine
Branch: master
Commit: 9615dd8fdba958150dd7d3ea05eb8ae97c55bed4
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9615dd8fdba958150dd7d3ea05eb8ae97c55bed4

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Fri Dec 11 17:00:19 2009 -0600

gdiplus: Implement GdipGetImagePalette.

---

 dlls/gdiplus/image.c |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
index 74c3f11..982956c 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -2242,15 +2242,22 @@ GpStatus WINGDIPAPI GdipSaveImageToStream(GpImage *image, IStream* stream,
  */
 GpStatus WINGDIPAPI GdipGetImagePalette(GpImage *image, ColorPalette *palette, INT size)
 {
-    static int calls = 0;
+    TRACE("(%p,%p,%i)\n", image, palette, size);
 
-    if(!image)
+    if (!image || !palette)
         return InvalidParameter;
 
-    if(!(calls++))
-        FIXME("not implemented\n");
+    if (size < (sizeof(UINT)*2+sizeof(ARGB)*image->palette_count))
+    {
+        TRACE("<-- InsufficientBuffer\n");
+        return InsufficientBuffer;
+    }
 
-    return NotImplemented;
+    palette->Flags = image->palette_flags;
+    palette->Count = image->palette_count;
+    memcpy(palette->Entries, image->palette_entries, sizeof(ARGB)*image->palette_count);
+
+    return Ok;
 }
 
 /*****************************************************************************




More information about the wine-cvs mailing list