Module: wine Branch: master Commit: 6e4e8fb07ffb7f8bd69a8f2f487c4be525ea654c URL: http://source.winehq.org/git/wine.git/?a=commit;h=6e4e8fb07ffb7f8bd69a8f2f48...
Author: Louis Lenders xerox_xerox2000@yahoo.co.uk Date: Tue Sep 28 18:56:40 2010 +0200
user32: UpdateWindow doesn't accept a NULL hwnd.
---
dlls/user32/painting.c | 6 ++++++ dlls/user32/tests/msg.c | 10 ++++++++++ 2 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/dlls/user32/painting.c b/dlls/user32/painting.c index 9f02a03..e7ce2ec 100644 --- a/dlls/user32/painting.c +++ b/dlls/user32/painting.c @@ -1202,6 +1202,12 @@ BOOL WINAPI RedrawWindow( HWND hwnd, const RECT *rect, HRGN hrgn, UINT flags ) */ BOOL WINAPI UpdateWindow( HWND hwnd ) { + if (!hwnd) + { + SetLastError( ERROR_INVALID_WINDOW_HANDLE ); + return FALSE; + } + return RedrawWindow( hwnd, NULL, 0, RDW_UPDATENOW | RDW_ALLCHILDREN ); }
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 6717e2e..76d46d0 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -6161,6 +6161,16 @@ static void test_paint_messages(void) flush_events(); ok_sequence( WmEmptySeq, "WmEmptySeq", FALSE );
+ trace("testing UpdateWindow(NULL)\n"); + SetLastError(0xdeadbeef); + ok(!UpdateWindow(NULL), "UpdateWindow(NULL) should fail\n"); + ok(GetLastError() == ERROR_INVALID_WINDOW_HANDLE || + broken( GetLastError() == 0xdeadbeef ) /* win9x */, + "wrong error code %d\n", GetLastError()); + check_update_rgn( hwnd, 0 ); + flush_events(); + ok_sequence( WmEmptySeq, "WmEmptySeq", FALSE ); + /* now with frame */ SetRectRgn( hrgn, -5, -5, 20, 20 );