[2/4] windowscodecs: Test whether CreateBitmapFromMemory stride is stored.

Vincent Povirk madewokherd at gmail.com
Wed Jan 2 14:31:26 CST 2013


-------------- next part --------------
From ab5be193bbfbac54ea8efe46c7b71e39ce5ecc17 Mon Sep 17 00:00:00 2001
From: Vincent Povirk <vincent at codeweavers.com>
Date: Wed, 2 Jan 2013 13:39:48 -0600
Subject: [PATCH 2/4] windowscodecs: Test whether CreateBitmapFromMemory
 stride is stored.

---
 dlls/windowscodecs/tests/bitmap.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/dlls/windowscodecs/tests/bitmap.c b/dlls/windowscodecs/tests/bitmap.c
index af0446c..daf0f02 100644
--- a/dlls/windowscodecs/tests/bitmap.c
+++ b/dlls/windowscodecs/tests/bitmap.c
@@ -433,7 +433,9 @@ static void test_CreateBitmapFromMemory(void)
     BYTE data[27];
     HRESULT hr;
     IWICBitmap *bitmap;
+    IWICBitmapLock *lock;
     UINT width, height, i;
+    WICRect rc;
 
     memcpy(data3x3, orig_data3x3, sizeof(data3x3));
 
@@ -499,6 +501,32 @@ todo_wine
     for (i = 0; i < sizeof(data); i++)
         ok(data[i] == data3x2[i], "%u: expected %u, got %u\n", i, data3x2[i], data[i]);
 
+    rc.X = rc.Y = 0;
+    rc.Width = 3;
+    rc.Height = 2;
+    hr = IWICBitmap_Lock(bitmap, &rc, WICBitmapLockWrite, &lock);
+    ok(hr == S_OK, "IWICBitmap_Lock failed hr=%x\n", hr);
+    if (SUCCEEDED(hr))
+    {
+        UINT stride, buffer_size;
+        BYTE* buffer;
+
+        hr = IWICBitmapLock_GetStride(lock, &stride);
+        ok(hr == S_OK, "IWICBitmapLock_GetStride failed hr=%x\n", hr);
+        ok(stride == 13, "got %i, expected 13\n", stride);
+
+        hr = IWICBitmapLock_GetDataPointer(lock, &buffer_size, &buffer);
+        ok(hr == S_OK, "IWICBitmapLock_GetDataPointer failed hr=%x\n", hr);
+        ok(buffer_size == 22, "got %i, expected 22\n", buffer_size);
+        ok(buffer != NULL, "got NULL data pointer\n");
+        ok(buffer != orig_data3x3, "got user data pointer\n");
+
+        for (i=0; i<27; i++)
+            ok(buffer[i] == orig_data3x3[i], "%u: expected %u, got %u\n", i, orig_data3x3[i], buffer[i]);
+
+        IWICBitmapLock_Release(lock);
+    }
+
     IWICBitmap_Release(bitmap);
 }
 
-- 
1.8.0


More information about the wine-patches mailing list