Nikolay Sivov : uxtheme: Implement GetBufferedPaintTargetRect().

Alexandre Julliard julliard at winehq.org
Thu Feb 9 15:54:25 CST 2017


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Thu Feb  9 01:42:38 2017 +0300

uxtheme: Implement GetBufferedPaintTargetRect().

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/uxtheme/buffer.c       | 16 +++++++++++++---
 dlls/uxtheme/tests/system.c | 10 +++++++---
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/dlls/uxtheme/buffer.c b/dlls/uxtheme/buffer.c
index e2c5756..853fe82 100644
--- a/dlls/uxtheme/buffer.c
+++ b/dlls/uxtheme/buffer.c
@@ -223,10 +223,20 @@ HDC WINAPI GetBufferedPaintTargetDC(HPAINTBUFFER bufferhandle)
 /***********************************************************************
  *      GetBufferedPaintTargetRect                         (UXTHEME.@)
  */
-HRESULT WINAPI GetBufferedPaintTargetRect(HPAINTBUFFER hBufferedPaint, RECT *prc)
+HRESULT WINAPI GetBufferedPaintTargetRect(HPAINTBUFFER bufferhandle, RECT *rect)
 {
-    FIXME("Stub (%p %p)\n", hBufferedPaint, prc);
-    return E_NOTIMPL;
+    struct paintbuffer *buffer = get_buffer_obj(bufferhandle);
+
+    TRACE("(%p %p)\n", buffer, rect);
+
+    if (!rect)
+        return E_POINTER;
+
+    if (!buffer)
+        return E_FAIL;
+
+    *rect = buffer->rect;
+    return S_OK;
 }
 
 /***********************************************************************
diff --git a/dlls/uxtheme/tests/system.c b/dlls/uxtheme/tests/system.c
index 44aebb8..6c08635 100644
--- a/dlls/uxtheme/tests/system.c
+++ b/dlls/uxtheme/tests/system.c
@@ -619,16 +619,20 @@ todo_wine
     hdc = pGetBufferedPaintTargetDC(buffer);
     ok(hdc == target, "Unexpected target hdc %p, original %p\n", hdc, target);
 
+    hr = pGetBufferedPaintTargetRect(NULL, NULL);
+    ok(hr == E_POINTER, "Unexpected return code %#x\n", hr);
+
     hr = pGetBufferedPaintTargetRect(buffer, NULL);
-todo_wine
     ok(hr == E_POINTER, "Unexpected return code %#x\n", hr);
 
+    hr = pGetBufferedPaintTargetRect(NULL, &rect2);
+    ok(hr == E_FAIL, "Unexpected return code %#x\n", hr);
+
     SetRectEmpty(&rect2);
     hr = pGetBufferedPaintTargetRect(buffer, &rect2);
-todo_wine {
     ok(hr == S_OK, "Unexpected return code %#x\n", hr);
     ok(EqualRect(&rect, &rect2), "Wrong target rect\n");
-}
+
     hr = pEndBufferedPaint(buffer, FALSE);
     ok(hr == S_OK, "Unexpected return code %#x\n", hr);
 




More information about the wine-cvs mailing list