Moved some more 16-bit functions to user16.c.
A few fixes for -DSTRICT.

diff --git a/controls/menu.c b/controls/menu.c
index 1174665..ed17b43 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -189,7 +189,7 @@
     PopupMenuWndProc,              /* procW */
     sizeof(HMENU),                 /* extra */
     IDC_ARROWA,                    /* cursor */
-    COLOR_MENU+1                   /* brush */
+    (HBRUSH)(COLOR_MENU+1)         /* brush */
 };
 
 
@@ -371,7 +371,8 @@
 
 	if (hPopupMenu)
 	{
-	    InsertMenuA( hMenu, -1, MF_SYSMENU | MF_POPUP | MF_BYPOSITION, hPopupMenu, NULL );
+	    InsertMenuA( hMenu, -1, MF_SYSMENU | MF_POPUP | MF_BYPOSITION,
+                         (UINT_PTR)hPopupMenu, NULL );
 
             menu->items[0].fType = MF_SYSMENU | MF_POPUP;
             menu->items[0].fState = 0;
@@ -593,7 +594,7 @@
     POPUPMENU *menu;
     UINT i;
     MENUITEM *item;
-    if (((*hmenu)==0xffff) ||
+    if (((*hmenu)==(HMENU)0xffff) ||
             (!(menu = MENU_GetMenu(*hmenu))))
         return NO_SELECTED_ITEM;
     item = menu->items;
@@ -663,7 +664,7 @@
 static UINT MENU_FindItemByKey( HWND hwndOwner, HMENU hmenu,
 				  UINT key, BOOL forceMenuChar )
 {
-    TRACE("\tlooking for '%c' in [%04x]\n", (char)key, (UINT16)hmenu );
+    TRACE("\tlooking for '%c' in [%x]\n", (char)key, hmenu );
 
     if (!IsMenu( hmenu )) hmenu = GetSubMenu( get_win_sys_menu(hwndOwner), 0);
 
@@ -693,7 +694,7 @@
 	     }
 	}
 	menuchar = SendMessageA( hwndOwner, WM_MENUCHAR,
-                                   MAKEWPARAM( key, menu->wFlags ), hmenu );
+                                 MAKEWPARAM( key, menu->wFlags ), (LPARAM)hmenu );
 	if (HIWORD(menuchar) == 2) return LOWORD(menuchar);
 	if (HIWORD(menuchar) == 1) return (UINT)(-2);
     }
@@ -1633,7 +1634,7 @@
     /* NOTE: In Windows, top menu popup is not owned. */
     menu->hWnd = CreateWindowA( POPUPMENU_CLASS_ATOM, NULL,
                                 WS_POPUP, x, y, width, height,
-                                hwndOwner, 0, GetWindowLongA(hwndOwner,GWL_HINSTANCE),
+                                hwndOwner, 0, (HINSTANCE)GetWindowLongA(hwndOwner,GWL_HINSTANCE),
                                 (LPVOID)hmenu );
     if( !menu->hWnd ) return FALSE;
     if (!top_popup) top_popup = menu->hWnd;
@@ -1693,7 +1694,7 @@
 	    SendMessageA( hwndOwner, WM_MENUSELECT,
                      MAKELONG(ip->fType & MF_POPUP ? wIndex: ip->wID,
                      ip->fType | ip->fState | MF_MOUSESELECT |
-                     (lppop->wFlags & MF_SYSMENU)), hmenu);
+                     (lppop->wFlags & MF_SYSMENU)), (LPARAM)hmenu);
         }
     }
     else if (sendMenuSelect) {
@@ -1704,7 +1705,7 @@
                 MENUITEM *ip = &ptm->items[pos];
                 SendMessageA( hwndOwner, WM_MENUSELECT, MAKELONG(pos,
                          ip->fType | ip->fState | MF_MOUSESELECT |
-                         (ptm->wFlags & MF_SYSMENU)), topmenu);
+                         (ptm->wFlags & MF_SYSMENU)), (LPARAM)topmenu);
             }
         }
     }
@@ -1796,12 +1797,12 @@
     else
         item->dwItemData = 0;
 
-    if ((item->fType & MF_POPUP) && (flags & MF_POPUP) && (item->hSubMenu != id) )
+    if ((item->fType & MF_POPUP) && (flags & MF_POPUP) && (item->hSubMenu != (HMENU)id) )
 	DestroyMenu( item->hSubMenu );   /* ModifyMenu() spec */
 
     if (flags & MF_POPUP)
     {
-	POPUPMENU *menu = MENU_GetMenu((UINT16)id);
+	POPUPMENU *menu = MENU_GetMenu((HMENU)id);
         if (menu) menu->wFlags |= MF_POPUP;
 	else
         {
@@ -1814,8 +1815,7 @@
     }
 
     item->wID = id;
-    if (flags & MF_POPUP)
-      item->hSubMenu = id;
+    if (flags & MF_POPUP) item->hSubMenu = (HMENU)id;
 
     if ((item->fType & MF_POPUP) && !(flags & MF_POPUP) )
       flags |= MF_POPUP; /* keep popup */
@@ -2074,8 +2074,8 @@
 
     /* Send WM_INITMENUPOPUP message only if TPM_NONOTIFY flag is not specified */
     if (!(wFlags & TPM_NONOTIFY))
-       SendMessageA( hwndOwner, WM_INITMENUPOPUP, item->hSubMenu,
-		   MAKELONG( menu->FocusedItem, IS_SYSTEM_MENU(menu) ));
+       SendMessageA( hwndOwner, WM_INITMENUPOPUP, (WPARAM)item->hSubMenu,
+                     MAKELONG( menu->FocusedItem, IS_SYSTEM_MENU(menu) ));
 
     item = &menu->items[menu->FocusedItem];
     rect = item->rect;
@@ -2981,7 +2981,7 @@
     if (!(wFlags & TPM_NONOTIFY))
     {
        POPUPMENU *menu;
-       SendMessageA( hWnd, WM_INITMENU, hMenu, 0 );
+       SendMessageA( hWnd, WM_INITMENU, (WPARAM)hMenu, 0 );
        if ((menu = MENU_GetMenu( hMenu )) && (!menu->Height))
        { /* app changed/recreated menu bar entries in WM_INITMENU
             Recalculate menu sizes else clicks will not work */
@@ -3101,7 +3101,7 @@
 
     /* Send WM_INITMENUPOPUP message only if TPM_NONOTIFY flag is not specified */
     if (!(wFlags & TPM_NONOTIFY))
-        SendMessageA( hWnd, WM_INITMENUPOPUP, hMenu, 0);
+        SendMessageA( hWnd, WM_INITMENUPOPUP, (WPARAM)hMenu, 0);
 
     if (MENU_ShowPopup( hWnd, hMenu, 0, x, y, 0, 0 ))
 	ret = MENU_TrackMenu( hMenu, wFlags | TPM_POPUPMENU, 0, 0, hWnd, lpRect );
@@ -3214,32 +3214,6 @@
 
 
 /*******************************************************************
- *         ChangeMenu    (USER.153)
- */
-BOOL16 WINAPI ChangeMenu16( HMENU16 hMenu, UINT16 pos, SEGPTR data,
-                            UINT16 id, UINT16 flags )
-{
-    TRACE("menu=%04x pos=%d data=%08lx id=%04x flags=%04x\n",
-                  hMenu, pos, (DWORD)data, id, flags );
-    if (flags & MF_APPEND) return AppendMenu16( hMenu, flags & ~MF_APPEND,
-                                                id, data );
-
-    /* FIXME: Word passes the item id in 'pos' and 0 or 0xffff as id */
-    /* for MF_DELETE. We should check the parameters for all others */
-    /* MF_* actions also (anybody got a doc on ChangeMenu?). */
-
-    if (flags & MF_DELETE) return DeleteMenu16(hMenu, pos, flags & ~MF_DELETE);
-    if (flags & MF_CHANGE) return ModifyMenu16(hMenu, pos, flags & ~MF_CHANGE,
-                                               id, data );
-    if (flags & MF_REMOVE) return RemoveMenu16(hMenu,
-                                              flags & MF_BYPOSITION ? pos : id,
-                                              flags & ~MF_REMOVE );
-    /* Default: MF_INSERT */
-    return InsertMenu16( hMenu, pos, flags, id, data );
-}
-
-
-/*******************************************************************
  *         ChangeMenuA    (USER32.@)
  */
 BOOL WINAPI ChangeMenuA( HMENU hMenu, UINT pos, LPCSTR data,
@@ -3282,15 +3256,6 @@
 
 
 /*******************************************************************
- *         CheckMenuItem    (USER.154)
- */
-BOOL16 WINAPI CheckMenuItem16( HMENU16 hMenu, UINT16 id, UINT16 flags )
-{
-    return (BOOL16)CheckMenuItem( hMenu, id, flags );
-}
-
-
-/*******************************************************************
  *         CheckMenuItem    (USER32.@)
  */
 DWORD WINAPI CheckMenuItem( HMENU hMenu, UINT id, UINT flags )
@@ -3308,15 +3273,6 @@
 
 
 /**********************************************************************
- *         EnableMenuItem    (USER.155)
- */
-UINT16 WINAPI EnableMenuItem16( HMENU16 hMenu, UINT16 wItemID, UINT16 wFlags )
-{
-    return EnableMenuItem( hMenu, wItemID, wFlags );
-}
-
-
-/**********************************************************************
  *         EnableMenuItem    (USER32.@)
  */
 UINT WINAPI EnableMenuItem( HMENU hMenu, UINT wItemID, UINT wFlags )
@@ -3361,16 +3317,6 @@
 
 
 /*******************************************************************
- *         GetMenuString    (USER.161)
- */
-INT16 WINAPI GetMenuString16( HMENU16 hMenu, UINT16 wItemID,
-                              LPSTR str, INT16 nMaxSiz, UINT16 wFlags )
-{
-    return GetMenuStringA( hMenu, wItemID, str, nMaxSiz, wFlags );
-}
-
-
-/*******************************************************************
  *         GetMenuStringA    (USER32.@)
  */
 INT WINAPI GetMenuStringA(
@@ -3433,15 +3379,6 @@
 
 
 /**********************************************************************
- *         GetMenuState    (USER.250)
- */
-UINT16 WINAPI GetMenuState16( HMENU16 hMenu, UINT16 wItemID, UINT16 wFlags )
-{
-    return GetMenuState( hMenu, wItemID, wFlags );
-}
-
-
-/**********************************************************************
  *         GetMenuState    (USER32.@)
  */
 UINT WINAPI GetMenuState( HMENU hMenu, UINT wItemID, UINT wFlags )
@@ -3468,19 +3405,6 @@
 
 
 /**********************************************************************
- *         GetMenuItemCount    (USER.263)
- */
-INT16 WINAPI GetMenuItemCount16( HMENU16 hMenu )
-{
-    LPPOPUPMENU	menu = MENU_GetMenu(hMenu);
-    if (!menu) return -1;
-    TRACE("(%04x) returning %d\n",
-                  hMenu, menu->nItems );
-    return menu->nItems;
-}
-
-
-/**********************************************************************
  *         GetMenuItemCount    (USER32.@)
  */
 INT WINAPI GetMenuItemCount( HMENU hMenu )
@@ -3492,13 +3416,6 @@
     return menu->nItems;
 }
 
-/**********************************************************************
- *         GetMenuItemID    (USER.264)
- */
-UINT16 WINAPI GetMenuItemID16( HMENU16 hMenu, INT16 nPos )
-{
-    return (UINT16) GetMenuItemID (hMenu, nPos);
-}
 
 /**********************************************************************
  *         GetMenuItemID    (USER32.@)
@@ -3513,19 +3430,6 @@
 
 }
 
-/*******************************************************************
- *         InsertMenu    (USER.410)
- */
-BOOL16 WINAPI InsertMenu16( HMENU16 hMenu, UINT16 pos, UINT16 flags,
-                            UINT16 id, SEGPTR data )
-{
-    UINT pos32 = (UINT)pos;
-    if ((pos == (UINT16)-1) && (flags & MF_BYPOSITION)) pos32 = (UINT)-1;
-    if (IS_STRING_ITEM(flags) && data)
-        return InsertMenuA( hMenu, pos32, flags, id, MapSL(data) );
-    return InsertMenuA( hMenu, pos32, flags, id, (LPSTR)data );
-}
-
 
 /*******************************************************************
  *         InsertMenuW    (USER32.@)
@@ -3552,7 +3456,7 @@
     }
 
     if (flags & MF_POPUP)  /* Set the MF_POPUP flag on the popup-menu */
-	(MENU_GetMenu((HMENU16)id))->wFlags |= MF_POPUP;
+	(MENU_GetMenu((HMENU)id))->wFlags |= MF_POPUP;
 
     item->hCheckBit = item->hUnCheckBit = 0;
     return TRUE;
@@ -3584,15 +3488,6 @@
 
 
 /*******************************************************************
- *         AppendMenu    (USER.411)
- */
-BOOL16 WINAPI AppendMenu16(HMENU16 hMenu, UINT16 flags, UINT16 id, SEGPTR data)
-{
-    return InsertMenu16( hMenu, -1, flags | MF_BYPOSITION, id, data );
-}
-
-
-/*******************************************************************
  *         AppendMenuA    (USER32.@)
  */
 BOOL WINAPI AppendMenuA( HMENU hMenu, UINT flags,
@@ -3613,15 +3508,6 @@
 
 
 /**********************************************************************
- *         RemoveMenu   (USER.412)
- */
-BOOL16 WINAPI RemoveMenu16( HMENU16 hMenu, UINT16 nPos, UINT16 wFlags )
-{
-    return RemoveMenu( hMenu, nPos, wFlags );
-}
-
-
-/**********************************************************************
  *         RemoveMenu    (USER32.@)
  */
 BOOL WINAPI RemoveMenu( HMENU hMenu, UINT nPos, UINT wFlags )
@@ -3658,15 +3544,6 @@
 
 
 /**********************************************************************
- *         DeleteMenu    (USER.413)
- */
-BOOL16 WINAPI DeleteMenu16( HMENU16 hMenu, UINT16 nPos, UINT16 wFlags )
-{
-    return DeleteMenu( hMenu, nPos, wFlags );
-}
-
-
-/**********************************************************************
  *         DeleteMenu    (USER32.@)
  */
 BOOL WINAPI DeleteMenu( HMENU hMenu, UINT nPos, UINT wFlags )
@@ -3681,18 +3558,6 @@
 
 
 /*******************************************************************
- *         ModifyMenu    (USER.414)
- */
-BOOL16 WINAPI ModifyMenu16( HMENU16 hMenu, UINT16 pos, UINT16 flags,
-                            UINT16 id, SEGPTR data )
-{
-    if (IS_STRING_ITEM(flags))
-        return ModifyMenuA( hMenu, pos, flags, id, MapSL(data) );
-    return ModifyMenuA( hMenu, pos, flags, id, (LPSTR)data );
-}
-
-
-/*******************************************************************
  *         ModifyMenuW    (USER32.@)
  */
 BOOL WINAPI ModifyMenuW( HMENU hMenu, UINT pos, UINT flags,
@@ -3742,15 +3607,6 @@
 
 
 /**********************************************************************
- *         CreatePopupMenu    (USER.415)
- */
-HMENU16 WINAPI CreatePopupMenu16(void)
-{
-    return CreatePopupMenu();
-}
-
-
-/**********************************************************************
  *         CreatePopupMenu    (USER32.@)
  */
 HMENU WINAPI CreatePopupMenu(void)
@@ -3777,16 +3633,6 @@
 
 
 /**********************************************************************
- *         SetMenuItemBitmaps    (USER.418)
- */
-BOOL16 WINAPI SetMenuItemBitmaps16( HMENU16 hMenu, UINT16 nPos, UINT16 wFlags,
-                                    HBITMAP16 hNewUnCheck, HBITMAP16 hNewCheck)
-{
-    return SetMenuItemBitmaps( hMenu, nPos, wFlags, hNewUnCheck, hNewCheck );
-}
-
-
-/**********************************************************************
  *         SetMenuItemBitmaps    (USER32.@)
  */
 BOOL WINAPI SetMenuItemBitmaps( HMENU hMenu, UINT nPos, UINT wFlags,
@@ -3812,15 +3658,6 @@
 
 
 /**********************************************************************
- *         CreateMenu    (USER.151)
- */
-HMENU16 WINAPI CreateMenu16(void)
-{
-    return CreateMenu();
-}
-
-
-/**********************************************************************
  *         CreateMenu    (USER32.@)
  */
 HMENU WINAPI CreateMenu(void)
@@ -3842,15 +3679,6 @@
 
 
 /**********************************************************************
- *         DestroyMenu    (USER.152)
- */
-BOOL16 WINAPI DestroyMenu16( HMENU16 hMenu )
-{
-    return DestroyMenu( hMenu );
-}
-
-
-/**********************************************************************
  *         DestroyMenu    (USER32.@)
  */
 BOOL WINAPI DestroyMenu( HMENU hMenu )
@@ -4010,15 +3838,6 @@
 
 
 /**********************************************************************
- *         GetSubMenu    (USER.159)
- */
-HMENU16 WINAPI GetSubMenu16( HMENU16 hMenu, INT16 nPos )
-{
-    return GetSubMenu( hMenu, nPos );
-}
-
-
-/**********************************************************************
  *         GetSubMenu    (USER32.@)
  */
 HMENU WINAPI GetSubMenu( HMENU hMenu, INT nPos )
@@ -4106,19 +3925,10 @@
     HGLOBAL16 handle;
     HMENU16 hMenu;
 
-    TRACE("(%04x,%s)\n", instance, debugstr_a(name) );
-
-    if (HIWORD(name))
-    {
-        if (name[0] == '#') name = (LPCSTR)atoi( name + 1 );
-    }
-
+    if (HIWORD(name) && name[0] == '#') name = (LPCSTR)atoi( name + 1 );
     if (!name) return 0;
 
-    /* check for Win32 module */
-    if (HIWORD(instance)) return LoadMenuA( instance, name );
     instance = GetExePtr( instance );
-
     if (!(hRsrc = FindResource16( instance, name, RT_MENUA ))) return 0;
     if (!(handle = LoadResource16( instance, hRsrc ))) return 0;
     hMenu = LoadMenuIndirect16(LockResource16(handle));
@@ -4230,15 +4040,6 @@
 
 
 /**********************************************************************
- *		IsMenu    (USER.358)
- */
-BOOL16 WINAPI IsMenu16( HMENU16 hmenu )
-{
-    return IsMenu( hmenu );
-}
-
-
-/**********************************************************************
  *		IsMenu    (USER32.@)
  */
 BOOL WINAPI IsMenu(HMENU hmenu)
@@ -4580,32 +4381,6 @@
 
 }
 
-/*******************************************************************
- *              InsertMenuItem   (USER.441)
- *
- * FIXME: untested
- */
-BOOL16 WINAPI InsertMenuItem16( HMENU16 hmenu, UINT16 pos, BOOL16 byposition,
-                                const MENUITEMINFO16 *mii )
-{
-    MENUITEMINFOA miia;
-
-    miia.cbSize        = sizeof(miia);
-    miia.fMask         = mii->fMask;
-    miia.dwTypeData    = (LPSTR)mii->dwTypeData;
-    miia.fType         = mii->fType;
-    miia.fState        = mii->fState;
-    miia.wID           = mii->wID;
-    miia.hSubMenu      = mii->hSubMenu;
-    miia.hbmpChecked   = mii->hbmpChecked;
-    miia.hbmpUnchecked = mii->hbmpUnchecked;
-    miia.dwItemData    = mii->dwItemData;
-    miia.cch           = mii->cch;
-    if (IS_STRING_ITEM(miia.fType))
-        miia.dwTypeData = MapSL(mii->dwTypeData);
-    return InsertMenuItemA( hmenu, pos, byposition, &miia );
-}
-
 
 /**********************************************************************
  *		InsertMenuItemA    (USER32.@)
@@ -4667,15 +4442,6 @@
      return TRUE;
 }
 
-/**********************************************************************
- *		CheckMenuRadioItem (USER.666)
- */
-BOOL16 WINAPI CheckMenuRadioItem16(HMENU16 hMenu,
-				   UINT16 first, UINT16 last, UINT16 check,
-				   BOOL16 bypos)
-{
-     return CheckMenuRadioItem (hMenu, first, last, check, bypos);
-}
 
 /**********************************************************************
  *		GetMenuItemRect    (USER32.@)
@@ -4790,14 +4556,6 @@
     return FALSE;
 }
 
-/**********************************************************************
- *         SetMenuContextHelpId    (USER.384)
- */
-BOOL16 WINAPI SetMenuContextHelpId16( HMENU16 hMenu, DWORD dwContextHelpID)
-{
-	return SetMenuContextHelpId( hMenu, dwContextHelpID );
-}
-
 
 /**********************************************************************
  *         SetMenuContextHelpId    (USER32.@)
@@ -4816,13 +4574,6 @@
     return FALSE;
 }
 
-/**********************************************************************
- *         GetMenuContextHelpId    (USER.385)
- */
-DWORD WINAPI GetMenuContextHelpId16( HMENU16 hMenu )
-{
-	return GetMenuContextHelpId( hMenu );
-}
 
 /**********************************************************************
  *         GetMenuContextHelpId    (USER32.@)