[PATCH 5/7] uxtheme: Implement GetBufferedPaintTargetRect()
Nikolay Sivov
nsivov at codeweavers.com
Wed Feb 8 16:42:38 CST 2017
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
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 e2c5756f83..853fe82a47 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 44aebb8693..6c08635741 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);
--
2.11.0
More information about the wine-patches
mailing list