[PATCH] user32: handle undocumented WM_POPUPSYSTEMMENU message
Vincent Povirk
vincent at codeweavers.com
Thu Aug 28 14:32:41 CDT 2008
---
dlls/user32/defwnd.c | 8 ++++++++
dlls/user32/spy.c | 3 ++-
dlls/user32/user_private.h | 1 +
3 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c
index ba07ebb..d48ba0f 100644
--- a/dlls/user32/defwnd.c
+++ b/dlls/user32/defwnd.c
@@ -385,6 +385,14 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa
}
break;
+ case WM_POPUPSYSTEMMENU:
+ /* This is an undocumented message used by the windows taskbar to
+ display the system menu of windows that belong to other processes. */
+ TrackPopupMenu(GetSystemMenu(hwnd, FALSE),
+ TPM_LEFTBUTTON|TPM_RIGHTBUTTON,
+ LOWORD(lParam), HIWORD(lParam), 0, hwnd, NULL);
+ return 0;
+
case WM_NCACTIVATE:
return NC_HandleNCActivate( hwnd, wParam, lParam );
diff --git a/dlls/user32/spy.c b/dlls/user32/spy.c
index 41caf1d..9fbd74b 100644
--- a/dlls/user32/spy.c
+++ b/dlls/user32/spy.c
@@ -592,7 +592,8 @@ static const char * const MessageTypeNames[SPY_MAX_MSGNUM + 1] =
"WM_PALETTEISCHANGING",
"WM_PALETTECHANGED",
"WM_HOTKEY", /* 0x0312 */
- NULL, NULL, NULL, NULL,
+ "WM_POPUPSYSTEMMENU", /* 0x0313 */
+ NULL, NULL, NULL,
"WM_PRINT", /* 0x0317 */
"WM_PRINTCLIENT", /* 0x0318 */
"WM_APPCOMMAND", /* 0x0319 */
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
index 909686d..8a5989a 100644
--- a/dlls/user32/user_private.h
+++ b/dlls/user32/user_private.h
@@ -82,6 +82,7 @@ static inline HLOCAL16 LOCAL_Free( HANDLE16 ds, HLOCAL16 handle )
#define GET_DWORD(ptr) (*(const DWORD *)(ptr))
#define WM_SYSTIMER 0x0118
+#define WM_POPUPSYSTEMMENU 0x0313
/* internal messages codes */
enum wine_internal_message
--
1.5.4.3
--=-gc0OrqZGgyiedExMyTTV--
More information about the wine-patches
mailing list