!WideCharToMultiByte(CP_ACP, 0, Buffer, -1, AnsiBuffer, Size, NULL, NULL))
{
AnsiBuffer[Size - 1] = 0;
- }
+ }
break;
}
case CB_GETLBTEXT:
!WideCharToMultiByte(CP_ACP, 0, Buffer, -1, AnsiBuffer, Size, NULL, NULL))
{
AnsiBuffer[Size - 1] = 0;
- }
+ }
break;
}
}
case WM_CREATE:
case WM_NCCREATE:
{
- MDICREATESTRUCTA mdi_cs;
+ MDICREATESTRUCTA *pmdi_cs;
CREATESTRUCTA* CsA;
CREATESTRUCTW* CsW;
NTSTATUS Status;
CsW = (CREATESTRUCTW*)(UnicodeMsg->lParam);
- CsA = RtlAllocateHeap(GetProcessHeap(), 0, sizeof(CREATESTRUCTA));
+ CsA = RtlAllocateHeap(GetProcessHeap(), 0, sizeof(CREATESTRUCTA) + sizeof(MDICREATESTRUCTA));
if (NULL == CsA)
{
return FALSE;
}
memcpy(CsA, CsW, sizeof(CREATESTRUCTW));
+ /* pmdi_cs starts right after CsA */
+ pmdi_cs = (MDICREATESTRUCTA*)(CsA + 1);
+
RtlInitUnicodeString(&UnicodeString, CsW->lpszName);
Status = RtlUnicodeStringToAnsiString(&AnsiString, &UnicodeString, TRUE);
if (! NT_SUCCESS(Status))
if (GetWindowLongW(hwnd, GWL_EXSTYLE) & WS_EX_MDICHILD)
{
- mdi_cs = *(MDICREATESTRUCTA *)CsW->lpCreateParams;
- mdi_cs.szTitle = CsA->lpszName;
- mdi_cs.szClass = CsA->lpszClass;
- CsA->lpCreateParams = &mdi_cs;
+ *pmdi_cs = *(MDICREATESTRUCTA *)CsW->lpCreateParams;
+ pmdi_cs->szTitle = CsA->lpszName;
+ pmdi_cs->szClass = CsA->lpszClass;
+ CsA->lpCreateParams = pmdi_cs;
}
AnsiMsg->lParam = (LPARAM)CsA;
! MultiByteToWideChar(CP_ACP, 0, Buffer, -1, UBuffer, Size))
{
UBuffer[Size - 1] = L'\0';
- }
+ }
break;
}
case CB_GETLBTEXT:
! MultiByteToWideChar(CP_ACP, 0, Buffer, -1, UBuffer, Size))
{
UBuffer[Size - 1] = L'\0';
- }
+ }
break;
}
}
}
Result = DesktopWndProcW(hwnd, message, UcMsg.wParam, UcMsg.lParam);
-
+
MsgiAnsiToUnicodeCleanup(&UcMsg, &AnsiMsg);
return Result;
}
-
+
/*
* @implemented
*/
else
MsgOverride = IsMsgOverride( Msg, &guah.DlgProcArray);
}
-
+
if (IsAnsiProc)
{
UnicodeMsg.hwnd = hWnd;
WNDPROC WndProc;
BOOL IsAnsi;
PCLS Class;
-
- Class = DesktopPtrToUser(Wnd->pcls);
+
+ Class = DesktopPtrToUser(Wnd->pcls);
WndProc = NULL;
if ( Wnd->head.pti != GetW32ThreadInfo())
/* No drop files or current Process, just post message. */
if ( (Msg != WM_DROPFILES) ||
- ( NtUserQueryWindow( hWnd, QUERY_WINDOW_UNIQUE_PROCESS_ID) ==
+ ( NtUserQueryWindow( hWnd, QUERY_WINDOW_UNIQUE_PROCESS_ID) ==
PtrToUint(NtCurrentTeb()->ClientId.UniqueProcess) ) )
{
return NtUserPostMessage(hWnd, Msg, wParam, lParam);
/* No drop files or current Process, just post message. */
if ( (Msg != WM_DROPFILES) ||
- ( NtUserQueryWindow( hWnd, QUERY_WINDOW_UNIQUE_PROCESS_ID) ==
+ ( NtUserQueryWindow( hWnd, QUERY_WINDOW_UNIQUE_PROCESS_ID) ==
PtrToUint(NtCurrentTeb()->ClientId.UniqueProcess) ) )
{
return NtUserPostMessage(hWnd, Msg, wParam, lParam);
}
Result = NtUserMessageCall( Wnd,
- KMMsg.message,
+ KMMsg.message,
KMMsg.wParam,
KMMsg.lParam,
(ULONG_PTR)&Result,
FNID_SENDMESSAGE,
FALSE);
-
+
MsgiUMToKMCleanup(&UMMsg, &KMMsg);
return Result;
* Window belongs to calling thread
* The calling thread is not being hooked for CallWndProc
- * Not calling a server side proc:
+ * Not calling a server side proc:
Desktop, Switch, ScrollBar, Menu, IconTitle, or hWndMessage
*/
}
Result = NtUserMessageCall( Wnd,
- KMMsg.message,
+ KMMsg.message,
KMMsg.wParam,
KMMsg.lParam,
(ULONG_PTR)&Result,
CallBackInfo.Context = dwData;
return NtUserMessageCall(hWnd,
- Msg,
+ Msg,
wParam,
lParam,
(ULONG_PTR)&CallBackInfo,
SetLastError( ERROR_INVALID_PARAMETER );
return 0;
}
-
+
if (lpdwResult) *lpdwResult = 0;
//// This is due to message system bug.
SetLastError( ERROR_INVALID_PARAMETER );
return 0;
}
-
+
if (lpdwResult) *lpdwResult = 0;
//// This is due to message system bug.
dsm.uTimeout = uTimeout;
Result = NtUserMessageCall( hWnd,
- Msg,
+ Msg,
wParam,
lParam,
(ULONG_PTR)&dsm,
TranslateMessage(CONST MSG *lpMsg)
{
BOOL Ret = FALSE;
-
+
// Ref: msdn ImmGetVirtualKey:
// http://msdn.microsoft.com/en-us/library/aa912145.aspx
/*
if ((!pcti) || (pcti->fsChangeBits & (QS_KEY|QS_MOUSEBUTTON)))
return (BOOL)NtUserGetThreadState(THREADSTATE_GETINPUTSTATE);
-
+
return FALSE;
}
| BSF_POSTMESSAGE | BSF_FORCEIFHUNG | BSF_NOTIMEOUTIFNOTHUNG
| BSF_ALLOWSFW | BSF_SENDNOTIFYMESSAGE | BSF_RETURNHDESK | BSF_LUID );
- if ((dwflags & ~all_flags) ||
+ if ((dwflags & ~all_flags) ||
(!pBSMInfo && (dwflags & (BSF_RETURNHDESK|BSF_LUID))) )
{
SetLastError(ERROR_INVALID_PARAMETER);
}
if (dwflags & BSF_FORCEIFHUNG) dwflags |= BSF_NOHANG;
-
+
if (dwflags & BSF_QUERY) dwflags &= ~BSF_SENDNOTIFYMESSAGE|BSF_POSTMESSAGE;
if (!lpdwRecipients)