mirror of
https://github.com/reactos/reactos.git
synced 2024-07-19 10:56:09 +00:00
Fix CBT create hook for NULL window name
svn path=/trunk/; revision=7077
This commit is contained in:
parent
2eea196a4a
commit
2836686955
|
@ -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: hook.c,v 1.12 2003/12/12 14:22:37 gvg Exp $
|
||||
/* $Id: hook.c,v 1.13 2003/12/15 19:32:31 gvg Exp $
|
||||
*
|
||||
* PROJECT: ReactOS user32.dll
|
||||
* FILE: lib/user32/windows/input.c
|
||||
|
@ -297,8 +297,11 @@ User32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength)
|
|||
CbtCreatewndExtra = (PHOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS)
|
||||
((PCHAR) Common + Common->lParam);
|
||||
Csw = CbtCreatewndExtra->Cs;
|
||||
Csw.lpszName = (LPCWSTR)((PCHAR) CbtCreatewndExtra
|
||||
+ (ULONG) CbtCreatewndExtra->Cs.lpszName);
|
||||
if (NULL != CbtCreatewndExtra->Cs.lpszName)
|
||||
{
|
||||
Csw.lpszName = (LPCWSTR)((PCHAR) CbtCreatewndExtra
|
||||
+ (ULONG) CbtCreatewndExtra->Cs.lpszName);
|
||||
}
|
||||
if (0 != HIWORD(CbtCreatewndExtra->Cs.lpszClass))
|
||||
{
|
||||
Csw.lpszClass = (LPCWSTR)((PCHAR) CbtCreatewndExtra
|
||||
|
@ -308,9 +311,12 @@ User32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength)
|
|||
if (Common->Ansi)
|
||||
{
|
||||
memcpy(&Csa, &Csw, sizeof(CREATESTRUCTW));
|
||||
RtlInitUnicodeString(&UString, Csw.lpszName);
|
||||
RtlUnicodeStringToAnsiString(&AString, &UString, TRUE);
|
||||
Csa.lpszName = AString.Buffer;
|
||||
if (NULL != Csw.lpszName)
|
||||
{
|
||||
RtlInitUnicodeString(&UString, Csw.lpszName);
|
||||
RtlUnicodeStringToAnsiString(&AString, &UString, TRUE);
|
||||
Csa.lpszName = AString.Buffer;
|
||||
}
|
||||
if (0 != HIWORD(Csw.lpszClass))
|
||||
{
|
||||
RtlInitUnicodeString(&UString, Csw.lpszClass);
|
||||
|
@ -343,7 +349,10 @@ User32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength)
|
|||
{
|
||||
RtlFreeHeap(RtlGetProcessHeap(), 0, (LPSTR) Csa.lpszClass);
|
||||
}
|
||||
RtlFreeHeap(RtlGetProcessHeap(), 0, (LPSTR) Csa.lpszName);
|
||||
if (NULL != Csa.lpszName)
|
||||
{
|
||||
RtlFreeHeap(RtlGetProcessHeap(), 0, (LPSTR) Csa.lpszName);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -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: callback.c,v 1.19 2003/12/12 14:22:37 gvg Exp $
|
||||
/* $Id: callback.c,v 1.20 2003/12/15 19:32:32 gvg Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -448,9 +448,12 @@ IntCallHookProc(INT HookId,
|
|||
{
|
||||
case HCBT_CREATEWND:
|
||||
CbtCreateWnd = (CBT_CREATEWNDW *) lParam;
|
||||
ArgumentLength += sizeof(HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS)
|
||||
+ (wcslen(CbtCreateWnd->lpcs->lpszName)
|
||||
+ 1) * sizeof(WCHAR);
|
||||
ArgumentLength += sizeof(HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS);
|
||||
if (NULL != CbtCreateWnd->lpcs->lpszName)
|
||||
{
|
||||
ArgumentLength += (wcslen(CbtCreateWnd->lpcs->lpszName)
|
||||
+ 1) * sizeof(WCHAR);
|
||||
}
|
||||
if (0 != HIWORD(CbtCreateWnd->lpcs->lpszClass))
|
||||
{
|
||||
ArgumentLength += (wcslen(CbtCreateWnd->lpcs->lpszClass)
|
||||
|
@ -495,10 +498,13 @@ IntCallHookProc(INT HookId,
|
|||
CbtCreatewndExtra->Cs = *(CbtCreateWnd->lpcs);
|
||||
CbtCreatewndExtra->WndInsertAfter = CbtCreateWnd->hwndInsertAfter;
|
||||
Extra = (PCHAR) (CbtCreatewndExtra + 1);
|
||||
memcpy(Extra, CbtCreateWnd->lpcs->lpszName,
|
||||
(wcslen(CbtCreateWnd->lpcs->lpszName) + 1) * sizeof(WCHAR));
|
||||
CbtCreatewndExtra->Cs.lpszName = (LPCWSTR) (Extra - (PCHAR) CbtCreatewndExtra);
|
||||
Extra += (wcslen(CbtCreateWnd->lpcs->lpszName) + 1) * sizeof(WCHAR);
|
||||
if (NULL != CbtCreateWnd->lpcs->lpszName)
|
||||
{
|
||||
memcpy(Extra, CbtCreateWnd->lpcs->lpszName,
|
||||
(wcslen(CbtCreateWnd->lpcs->lpszName) + 1) * sizeof(WCHAR));
|
||||
CbtCreatewndExtra->Cs.lpszName = (LPCWSTR) (Extra - (PCHAR) CbtCreatewndExtra);
|
||||
Extra += (wcslen(CbtCreateWnd->lpcs->lpszName) + 1) * sizeof(WCHAR);
|
||||
}
|
||||
if (0 != HIWORD(CbtCreateWnd->lpcs->lpszClass))
|
||||
{
|
||||
memcpy(Extra, CbtCreateWnd->lpcs->lpszClass,
|
||||
|
|
|
@ -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: msgqueue.c,v 1.48 2003/12/15 15:08:33 weiden Exp $
|
||||
/* $Id: msgqueue.c,v 1.49 2003/12/15 19:32:32 gvg Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -667,11 +667,11 @@ MsqDispatchOneSentMessage(PUSER_MESSAGE_QUEUE MessageQueue)
|
|||
ExReleaseFastMutex(&MessageQueue->Lock);
|
||||
|
||||
/* Call the window procedure. */
|
||||
Result = IntCallWindowProc(NULL,
|
||||
Message->Msg.hwnd,
|
||||
Message->Msg.message,
|
||||
Message->Msg.wParam,
|
||||
Message->Msg.lParam);
|
||||
Result = IntSendMessage(Message->Msg.hwnd,
|
||||
Message->Msg.message,
|
||||
Message->Msg.wParam,
|
||||
Message->Msg.lParam,
|
||||
TRUE);
|
||||
|
||||
/* Let the sender know the result. */
|
||||
if (Message->Result != NULL)
|
||||
|
|
Loading…
Reference in a new issue