Module: wine Branch: master Commit: 89fe0a3f26d6e2ce6eb3d3d42f560c6c6c9b3e23 URL: http://source.winehq.org/git/wine.git/?a=commit;h=89fe0a3f26d6e2ce6eb3d3d42f...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Thu Feb 9 01:42:38 2017 +0300
uxtheme: Implement GetBufferedPaintTargetRect().
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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);