PATCH: controls/menu.c case ranges

Marcus Meissner marcus at jet.franken.de
Thu Jul 22 16:03:29 CDT 2004


Hi,

Another try on fixing the case range problems (WORD is unsigned, 
HBMMENU_CALLBACK is -1, so out of range of the switch).

Ciao, Marcus

Changelog:
	Cast all cases to WORD, as that is what LOWORD() returns.

Index: controls/menu.c
===================================================================
RCS file: /home/wine/wine/controls/menu.c,v
retrieving revision 1.184
diff -u -r1.184 menu.c
--- controls/menu.c	19 Jul 2004 21:21:40 -0000	1.184
+++ controls/menu.c	22 Jul 2004 21:02:29 -0000
@@ -720,26 +720,26 @@
     {
         switch(LOWORD(id))
         {
-        case (INT_PTR)HBMMENU_SYSTEM:
+        case (WORD)HBMMENU_SYSTEM:
             if (data)
             {
                 bmp = (HBITMAP)data;
                 break;
             }
             /* fall through */
-        case (INT_PTR)HBMMENU_MBAR_RESTORE:
-        case (INT_PTR)HBMMENU_MBAR_MINIMIZE:
-        case (INT_PTR)HBMMENU_MBAR_MINIMIZE_D:
-        case (INT_PTR)HBMMENU_MBAR_CLOSE:
-        case (INT_PTR)HBMMENU_MBAR_CLOSE_D:
+        case (WORD)HBMMENU_MBAR_RESTORE:
+        case (WORD)HBMMENU_MBAR_MINIMIZE:
+        case (WORD)HBMMENU_MBAR_MINIMIZE_D:
+        case (WORD)HBMMENU_MBAR_CLOSE:
+        case (WORD)HBMMENU_MBAR_CLOSE_D:
             size->cx = GetSystemMetrics( SM_CYMENU ) - 4;
             size->cy = size->cx;
             return;
-        case (INT_PTR)HBMMENU_CALLBACK:
-        case (INT_PTR)HBMMENU_POPUP_CLOSE:
-        case (INT_PTR)HBMMENU_POPUP_RESTORE:
-        case (INT_PTR)HBMMENU_POPUP_MAXIMIZE:
-        case (INT_PTR)HBMMENU_POPUP_MINIMIZE:
+        case (WORD)HBMMENU_CALLBACK:
+        case (WORD)HBMMENU_POPUP_CLOSE:
+        case (WORD)HBMMENU_POPUP_RESTORE:
+        case (WORD)HBMMENU_POPUP_MAXIMIZE:
+        case (WORD)HBMMENU_POPUP_MINIMIZE:
         default:
             FIXME("Magic 0x%08x not implemented\n", id);
             return;
@@ -776,7 +776,7 @@
 
         switch(LOWORD(lpitem->text))
         {
-        case (INT_PTR)HBMMENU_SYSTEM:
+        case (WORD)HBMMENU_SYSTEM:
             if (lpitem->dwItemData)
             {
                 bmp = (HBITMAP)lpitem->dwItemData;
@@ -791,26 +791,26 @@
                 bm.bmWidth -= bmp_xoffset;
             }
             goto got_bitmap;
-        case (INT_PTR)HBMMENU_MBAR_RESTORE:
+        case (WORD)HBMMENU_MBAR_RESTORE:
             flags = DFCS_CAPTIONRESTORE;
             break;
-        case (INT_PTR)HBMMENU_MBAR_MINIMIZE:
+        case (WORD)HBMMENU_MBAR_MINIMIZE:
             flags = DFCS_CAPTIONMIN;
             break;
-        case (INT_PTR)HBMMENU_MBAR_MINIMIZE_D:
+        case (WORD)HBMMENU_MBAR_MINIMIZE_D:
             flags = DFCS_CAPTIONMIN | DFCS_INACTIVE;
             break;
-        case (INT_PTR)HBMMENU_MBAR_CLOSE:
+        case (WORD)HBMMENU_MBAR_CLOSE:
             flags = DFCS_CAPTIONCLOSE;
             break;
-        case (INT_PTR)HBMMENU_MBAR_CLOSE_D:
+        case (WORD)HBMMENU_MBAR_CLOSE_D:
             flags = DFCS_CAPTIONCLOSE | DFCS_INACTIVE;
             break;
-        case (INT_PTR)HBMMENU_CALLBACK:
-        case (INT_PTR)HBMMENU_POPUP_CLOSE:
-        case (INT_PTR)HBMMENU_POPUP_RESTORE:
-        case (INT_PTR)HBMMENU_POPUP_MAXIMIZE:
-        case (INT_PTR)HBMMENU_POPUP_MINIMIZE:
+        case (WORD)HBMMENU_CALLBACK:
+        case (WORD)HBMMENU_POPUP_CLOSE:
+        case (WORD)HBMMENU_POPUP_RESTORE:
+        case (WORD)HBMMENU_POPUP_MAXIMIZE:
+        case (WORD)HBMMENU_POPUP_MINIMIZE:
         default:
             FIXME("Magic 0x%08x not implemented\n", LOWORD(lpitem->text));
             return;
-- 



More information about the wine-patches mailing list