diff --git a/dlls/user/user32.spec b/dlls/user/user32.spec index f78e03d3fc7..6b3242fff66 100644 --- a/dlls/user/user32.spec +++ b/dlls/user/user32.spec @@ -12,7 +12,7 @@ @ stdcall BringWindowToTop(long) @ stdcall BroadcastSystemMessage(long ptr long long long) @ stdcall BroadcastSystemMessageA(long ptr long long long) BroadcastSystemMessage -@ stub BroadcastSystemMessageW +@ stdcall BroadcastSystemMessageW(long ptr long long long) @ stdcall CalcChildScroll(long long) @ stdcall CallMsgFilter(ptr long) CallMsgFilterA @ stdcall CallMsgFilterA(ptr long) diff --git a/windows/message.c b/windows/message.c index 1b2d780278b..1a003b19119 100644 --- a/windows/message.c +++ b/windows/message.c @@ -723,13 +723,15 @@ BOOL WINAPI TranslateMessage( const MSG *msg ) { case 1: message = (msg->message == WM_KEYDOWN) ? WM_CHAR : WM_SYSCHAR; - TRACE_(key)("1 -> PostMessage(%s)\n", SPY_GetMsgName(message, msg->hwnd)); + TRACE_(key)("1 -> PostMessageW(%p,%s,%04x,%08lx)\n", + msg->hwnd, SPY_GetMsgName(message, msg->hwnd), wp[0], msg->lParam); PostMessageW( msg->hwnd, message, wp[0], msg->lParam ); break; case -1: message = (msg->message == WM_KEYDOWN) ? WM_DEADCHAR : WM_SYSDEADCHAR; - TRACE_(key)("-1 -> PostMessage(%s)\n", SPY_GetMsgName(message, msg->hwnd)); + TRACE_(key)("-1 -> PostMessageW(%p,%s,%04x,%08lx)\n", + msg->hwnd, SPY_GetMsgName(message, msg->hwnd), wp[0], msg->lParam); PostMessageW( msg->hwnd, message, wp[0], msg->lParam ); return TRUE; } @@ -947,3 +949,26 @@ LONG WINAPI BroadcastSystemMessage( return -1; } } + +/*********************************************************************** + * BroadcastSystemMessageW (USER32.@) + */ +LONG WINAPI BroadcastSystemMessageW( + DWORD dwFlags,LPDWORD recipients,UINT uMessage,WPARAM wParam, + LPARAM lParam ) +{ + if ((*recipients & BSM_APPLICATIONS)|| + (*recipients == BSM_ALLCOMPONENTS)) + { + FIXME("(%08lx,%08lx,%08x,%08x,%08lx): semi-stub!\n", + dwFlags,*recipients,uMessage,wParam,lParam); + PostMessageW(HWND_BROADCAST,uMessage,wParam,lParam); + return 1; + } + else + { + FIXME("(%08lx,%08lx,%08x,%08x,%08lx): stub!\n", + dwFlags,*recipients,uMessage,wParam,lParam); + return -1; + } +}