UINT uTimeout,
PDWORD_PTR lpdwResult)
{
- MSG AnsiMsg, UcMsg;
+ MSG AnsiMsg, UcMsg, KMMsg;
LRESULT Result;
DOSENDMESSAGE dsm;
return FALSE;
}
+ if (!MsgiUMToKMMessage(&UcMsg, &KMMsg, FALSE))
+ {
+ MsgiAnsiToUnicodeCleanup(&UcMsg, &AnsiMsg);
+ return FALSE;
+ }
+
Result = NtUserMessageCall( hWnd,
- UcMsg.message,
- UcMsg.wParam,
- UcMsg.lParam,
+ KMMsg.message,
+ KMMsg.wParam,
+ KMMsg.lParam,
(ULONG_PTR)&dsm,
FNID_SENDMESSAGEWTOOPTION,
TRUE);
+ MsgiUMToKMCleanup(&UcMsg, &KMMsg);
MsgiAnsiToUnicodeReply(&UcMsg, &AnsiMsg, &Result);
if (lpdwResult) *lpdwResult = dsm.Result;
{
LRESULT Result;
DOSENDMESSAGE dsm;
+ MSG UMMsg, KMMsg;
if ( Msg & ~WM_MAXIMUM || fuFlags & ~(SMTO_NOTIMEOUTIFNOTHUNG|SMTO_ABORTIFHUNG|SMTO_BLOCK))
{
dsm.uTimeout = uTimeout;
dsm.Result = 0;
+ UMMsg.hwnd = hWnd;
+ UMMsg.message = Msg;
+ UMMsg.wParam = wParam;
+ UMMsg.lParam = lParam;
+ UMMsg.time = 0;
+ UMMsg.pt.x = 0;
+ UMMsg.pt.y = 0;
+ if (! MsgiUMToKMMessage(&UMMsg, &KMMsg, TRUE))
+ {
+ return FALSE;
+ }
+
Result = NtUserMessageCall( hWnd,
- Msg,
- wParam,
- lParam,
+ KMMsg.message,
+ KMMsg.wParam,
+ KMMsg.lParam,
(ULONG_PTR)&dsm,
FNID_SENDMESSAGEWTOOPTION,
FALSE);
+ MsgiUMToKMCleanup(&UMMsg, &KMMsg);
+
if (lpdwResult) *lpdwResult = dsm.Result;
SPY_ExitMessage(SPY_RESULT_OK, hWnd, Msg, Result, wParam, lParam);
WPARAM wParam,
LPARAM lParam)
{
- MSG UMMsg, KMMsg;
LRESULT Result;
if (is_pointer_message(Msg))
return FALSE;
}
- UMMsg.hwnd = hWnd;
- UMMsg.message = Msg;
- UMMsg.wParam = wParam;
- UMMsg.lParam = lParam;
- UMMsg.time = 0;
- UMMsg.pt.x = 0;
- UMMsg.pt.y = 0;
- if (! MsgiUMToKMMessage(&UMMsg, &KMMsg, TRUE))
- {
- return FALSE;
- }
Result = NtUserMessageCall( hWnd,
- KMMsg.message,
- KMMsg.wParam,
- KMMsg.lParam,
+ Msg,
+ wParam,
+ lParam,
0,
FNID_SENDNOTIFYMESSAGE,
FALSE);
- MsgiUMToKMCleanup(&UMMsg, &KMMsg);
-
return Result;
}