From 4c8d47cc6bfad27eb7e801e1628100f5f312f39b Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Sat, 22 May 2004 08:27:15 +0000 Subject: [PATCH] fixed SendMessageTimeout() to return the correct result even when it timed out svn path=/trunk/; revision=9462 --- reactos/subsys/win32k/ntuser/message.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/reactos/subsys/win32k/ntuser/message.c b/reactos/subsys/win32k/ntuser/message.c index b8e62dbf91d..5d70c50f7ba 100644 --- a/reactos/subsys/win32k/ntuser/message.c +++ b/reactos/subsys/win32k/ntuser/message.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: message.c,v 1.66 2004/05/16 18:33:40 weiden Exp $ +/* $Id: message.c,v 1.67 2004/05/22 08:27:15 weiden Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -38,7 +38,6 @@ typedef struct { UINT uFlags; UINT uTimeout; - ULONG_PTR uResult; } DOSENDMESSAGE, *PDOSENDMESSAGE; /* FUNCTIONS *****************************************************************/ @@ -1216,6 +1215,8 @@ IntSendMessageTimeoutSingle(HWND hWnd, if(Status == STATUS_TIMEOUT) { IntReleaseWindowObject(Window); + if(uResult) + *uResult = Result; SetLastWin32Error(ERROR_TIMEOUT); return FALSE; } @@ -1406,7 +1407,7 @@ IntDoSendMessage(HWND Wnd, { Result = IntSendMessageTimeout(KernelModeMsg.hwnd, KernelModeMsg.message, KernelModeMsg.wParam, KernelModeMsg.lParam, - dsm->uFlags, dsm->uTimeout, &dsm->uResult); + dsm->uFlags, dsm->uTimeout, &Result); } Status = CopyMsgToUserMem(&UserModeMsg, &KernelModeMsg); if (! NT_SUCCESS(Status)) @@ -1446,7 +1447,7 @@ NtUserSendMessageTimeout(HWND hWnd, { NTSTATUS Status; - Status = MmCopyToCaller(uResult, &dsm.uResult, sizeof(ULONG_PTR)); + Status = MmCopyToCaller(uResult, &Result, sizeof(ULONG_PTR)); if(!NT_SUCCESS(Status)) { SetLastWin32Error(ERROR_INVALID_PARAMETER);