Implement SetMenuItemBitmaps and fix bool flags.
Modified: trunk/reactos/lib/user32/windows/menu.c

Modified: trunk/reactos/lib/user32/windows/menu.c
--- trunk/reactos/lib/user32/windows/menu.c	2005-07-29 23:37:11 UTC (rev 16890)
+++ trunk/reactos/lib/user32/windows/menu.c	2005-07-30 00:52:22 UTC (rev 16891)
@@ -4327,7 +4327,7 @@
 
   if(!GetMenuItemInfoA( hMnu,
                         uPosition,
-                       (BOOL)!(MF_BYPOSITION & uFlags),
+                       (BOOL)(MF_BYPOSITION & uFlags),
                         &mii)) return FALSE;
 
   if(uFlags & MF_BITMAP)
@@ -4397,7 +4397,7 @@
 
   return SetMenuItemInfoA( hMnu,
                            uPosition,
-                          (BOOL)!(MF_BYPOSITION & uFlags),
+                          (BOOL)(MF_BYPOSITION & uFlags),
                            &mii);
 }
 
@@ -4424,7 +4424,7 @@
 
   if(!NtUserMenuItemInfo( hMnu,
                           uPosition,
-                         (BOOL)!(MF_BYPOSITION & uFlags),
+                         (BOOL)(MF_BYPOSITION & uFlags),
                          (PROSMENUITEMINFO) &mii,
                           FALSE)) return FALSE;
 
@@ -4494,7 +4494,7 @@
 
   return SetMenuItemInfoW( hMnu,
                            uPosition,
-                           (BOOL)!(MF_BYPOSITION & uFlags),
+                           (BOOL)(MF_BYPOSITION & uFlags),
                            &mii);
 }
 
@@ -4558,7 +4558,7 @@
 
 
 /*
- * @unimplemented
+ * @implemented
  */
 BOOL
 STDCALL
@@ -4569,8 +4569,23 @@
   HBITMAP hBitmapUnchecked,
   HBITMAP hBitmapChecked)
 {
-  UNIMPLEMENTED;
-  return FALSE;
+  ROSMENUITEMINFO uItem;
+
+  if(!(NtUserMenuItemInfo(hMenu, uPosition, 
+                 (BOOL)(MF_BYPOSITION & uFlags), &uItem, FALSE))) return FALSE;
+
+  if (!hBitmapChecked && !hBitmapUnchecked)
+  {
+    uItem.fState &= ~MF_USECHECKBITMAPS;
+  }
+  else  /* Install new bitmaps */
+  {
+    uItem.hbmpChecked = hBitmapChecked;
+    uItem.hbmpUnchecked = hBitmapUnchecked;
+    uItem.fState |= MF_USECHECKBITMAPS;
+  }
+ return NtUserMenuItemInfo(hMenu, uPosition,
+                                 (BOOL)(MF_BYPOSITION & uFlags), &uItem, TRUE);
 }