Kevin Koltzau : user32: Generate WM_APPCOMMAND messages for browser and multimedia keys.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Nov 27 07:09:53 CST 2006


Module: wine
Branch: master
Commit: 80db3ad8bb0e7bd6cffa20a59e121ac337b8300e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=80db3ad8bb0e7bd6cffa20a59e121ac337b8300e

Author: Kevin Koltzau <kevin at plop.org>
Date:   Sun Nov 26 01:31:27 2006 -0500

user32: Generate WM_APPCOMMAND messages for browser and multimedia keys.

---

 dlls/user32/defwnd.c  |   10 ++++++++++
 dlls/user32/message.c |   34 +++++++++++++++++++++-------------
 2 files changed, 31 insertions(+), 13 deletions(-)

diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c
index c07398f..9278ddd 100644
--- a/dlls/user32/defwnd.c
+++ b/dlls/user32/defwnd.c
@@ -711,6 +711,16 @@ static LRESULT DEFWND_DefWinProc( HWND h
     case WM_HELP:
         SendMessageW( GetParent(hwnd), msg, wParam, lParam );
         break;
+
+    case WM_APPCOMMAND:
+        {
+            HWND parent = GetParent(hwnd);
+            if(!parent)
+                HOOK_CallHooks(WH_SHELL, HSHELL_APPCOMMAND, wParam, lParam, TRUE);
+            else
+                SendMessageW( parent, msg, wParam, lParam );
+            break;
+        }
     }
 
     return 0;
diff --git a/dlls/user32/message.c b/dlls/user32/message.c
index df3dcd4..e6dacd3 100644
--- a/dlls/user32/message.c
+++ b/dlls/user32/message.c
@@ -1637,20 +1637,28 @@ static BOOL process_keyboard_message( MS
 
     if (remove)
     {
-        /* Handle F1 key by sending out WM_HELP message */
-        if ((msg->message == WM_KEYUP) &&
-            (msg->wParam == VK_F1) &&
-            (msg->hwnd != GetDesktopWindow()) &&
-            !MENU_IsMenuActive())
+        if((msg->message == WM_KEYDOWN) &&
+           (msg->hwnd != GetDesktopWindow()))
         {
-            HELPINFO hi;
-            hi.cbSize = sizeof(HELPINFO);
-            hi.iContextType = HELPINFO_WINDOW;
-            hi.iCtrlId = GetWindowLongPtrA( msg->hwnd, GWLP_ID );
-            hi.hItemHandle = msg->hwnd;
-            hi.dwContextId = GetWindowContextHelpId( msg->hwnd );
-            hi.MousePos = msg->pt;
-            SendMessageW( msg->hwnd, WM_HELP, 0, (LPARAM)&hi );
+            /* Handle F1 key by sending out WM_HELP message */
+            if(msg->wParam == VK_F1 &&
+               !MENU_IsMenuActive())
+            {
+                HELPINFO hi;
+                hi.cbSize = sizeof(HELPINFO);
+                hi.iContextType = HELPINFO_WINDOW;
+                hi.iCtrlId = GetWindowLongPtrA( msg->hwnd, GWLP_ID );
+                hi.hItemHandle = msg->hwnd;
+                hi.dwContextId = GetWindowContextHelpId( msg->hwnd );
+                hi.MousePos = msg->pt;
+                SendMessageW( msg->hwnd, WM_HELP, 0, (LPARAM)&hi );
+            }
+            else if(msg->wParam >= VK_BROWSER_BACK &&
+                    msg->wParam <= VK_LAUNCH_APP2)
+            {
+                /* FIXME: Process keystate */
+                SendMessageW(msg->hwnd, WM_APPCOMMAND, (WPARAM)msg->hwnd, MAKELPARAM(0, (FAPPCOMMAND_KEY | (msg->wParam - VK_BROWSER_BACK + 1))));
+            }
         }
     }
 




More information about the wine-cvs mailing list