Added proper support for 32-bit WM_NEXTMENU.

diff --git a/controls/menu.c b/controls/menu.c
index 708905c..6092b45 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -2323,16 +2323,20 @@
     if( (vk == VK_LEFT &&  menu->FocusedItem == 0 ) ||
         (vk == VK_RIGHT && menu->FocusedItem == menu->nItems - 1))
     {
+        MDINEXTMENU next_menu;
 	HMENU hNewMenu;
 	HWND  hNewWnd;
 	UINT  id = 0;
-	LRESULT l = SendMessageA( pmt->hOwnerWnd, WM_NEXTMENU, vk, 
-		(IS_SYSTEM_MENU(menu)) ? GetSubMenu(pmt->hTopMenu,0) : pmt->hTopMenu );
+
+        next_menu.hmenuIn = (IS_SYSTEM_MENU(menu)) ? GetSubMenu(pmt->hTopMenu,0) : pmt->hTopMenu;
+        next_menu.hmenuNext = 0;
+        next_menu.hwndNext = 0;
+        SendMessageW( pmt->hOwnerWnd, WM_NEXTMENU, vk, (LPARAM)&next_menu );
 
 	TRACE("%04x [%04x] -> %04x [%04x]\n",
-		     (UINT16)pmt->hCurrentMenu, (UINT16)pmt->hOwnerWnd, LOWORD(l), HIWORD(l) );
+              pmt->hCurrentMenu, pmt->hOwnerWnd, next_menu.hmenuNext, next_menu.hwndNext );
 
-	if( l == 0 )
+	if (!next_menu.hmenuNext || !next_menu.hwndNext)
 	{
             DWORD style = GetWindowLongA( pmt->hOwnerWnd, GWL_STYLE );
 	    hNewWnd = pmt->hOwnerWnd;
@@ -2357,8 +2361,8 @@
 	}
 	else    /* application returned a new menu to switch to */
 	{
-	    hNewMenu = LOWORD(l);
-            hNewWnd = HIWORD(l);
+            hNewMenu = next_menu.hmenuNext;
+            hNewWnd = next_menu.hwndNext;
 
 	    if( IsMenu(hNewMenu) && IsWindow(hNewWnd) )
 	    {