Move internal implementation into the exported function
DrawMenuBarTemp.

diff --git a/controls/menu.c b/controls/menu.c
index f90ed2c..f80336b 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -177,6 +177,7 @@
 
 static LRESULT WINAPI PopupMenuWndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
 
+DWORD WINAPI DrawMenuBarTemp(HWND hwnd, HDC hDC, LPRECT lprect, HMENU hMenu, HFONT hFont);
 
 /*********************************************************************
  * menu class descriptor
@@ -1515,63 +1516,29 @@
                          BOOL suppress_draw)
 {
     LPPOPUPMENU lppop;
-    UINT i,retvalue;
     HFONT hfontOld = 0;
     HMENU hMenu = GetMenu(hwnd);
 
     lppop = MENU_GetMenu( hMenu );
     if (lppop == NULL || lprect == NULL)
     {
-        retvalue = GetSystemMetrics(SM_CYMENU);
-        goto END;
+        return GetSystemMetrics(SM_CYMENU);
     }
 
-    TRACE("(%p, %p, %p)\n", hDC, lprect, lppop);
-
-    hfontOld = SelectObject( hDC, hMenuFont);
-
-    if (lppop->Height == 0)
-        MENU_MenuBarCalcSize(hDC, lprect, lppop, hwnd);
-
-    lprect->bottom = lprect->top + lppop->Height;
-
     if (suppress_draw)
     {
-        retvalue = lppop->Height;
-        goto END;
-    }
+	hfontOld = SelectObject( hDC, hMenuFont);
 
-    FillRect(hDC, lprect, GetSysColorBrush(COLOR_MENU) );
+	if (lppop->Height == 0)
+		MENU_MenuBarCalcSize(hDC, lprect, lppop, hwnd);
 
-    if (TWEAK_WineLook == WIN31_LOOK)
-    {
-	SelectObject( hDC, SYSCOLOR_GetPen(COLOR_WINDOWFRAME) );
-	MoveToEx( hDC, lprect->left, lprect->bottom, NULL );
-	LineTo( hDC, lprect->right, lprect->bottom );
+	lprect->bottom = lprect->top + lppop->Height;
+
+        if (hfontOld) SelectObject( hDC, hfontOld);
+	return lppop->Height;
     }
     else
-    {
-	SelectObject( hDC, SYSCOLOR_GetPen(COLOR_3DFACE));
-	MoveToEx( hDC, lprect->left, lprect->bottom, NULL );
-	LineTo( hDC, lprect->right, lprect->bottom );
-    }
-
-    if (lppop->nItems == 0)
-    {
-        retvalue = GetSystemMetrics(SM_CYMENU);
-        goto END;
-    }
-
-    for (i = 0; i < lppop->nItems; i++)
-    {
-        MENU_DrawMenuItem( hwnd, hMenu, hwnd,
-                           hDC, &lppop->items[i], lppop->Height, TRUE, ODA_DRAWENTIRE );
-    }
-    retvalue = lppop->Height;
-
-END:
-    if (hfontOld) SelectObject (hDC, hfontOld);
-    return retvalue;
+        return DrawMenuBarTemp(hwnd, hDC, lprect, hMenu, NULL);
 }
 
 
@@ -3861,10 +3828,65 @@
  *
  * Not 100% sure about the param names, but close.
  */
-DWORD WINAPI DrawMenuBarTemp(HWND someHWND, HDC someHDC, LPRECT someRECT, HMENU someHMENU, HFONT someFONT)
+DWORD WINAPI DrawMenuBarTemp(HWND hwnd, HDC hDC, LPRECT lprect, HMENU hMenu, HFONT hFont)
 {
-    FIXME("(%p, %p, %p, %p, %p): stub\n", someHWND, someHDC, someRECT, someHMENU, someFONT);
-    return 0;
+    LPPOPUPMENU lppop;
+    UINT i,retvalue;
+    HFONT hfontOld = 0;
+
+    if (!hMenu)
+        hMenu = GetMenu(hwnd);
+
+    if (!hFont)
+        hFont = hMenuFont;
+
+    lppop = MENU_GetMenu( hMenu );
+    if (lppop == NULL || lprect == NULL)
+    {
+        retvalue = GetSystemMetrics(SM_CYMENU);
+        goto END;
+    }
+
+    TRACE("(%p, %p, %p, %p, %p)\n", hwnd, hDC, lprect, hMenu, hFont);
+
+    hfontOld = SelectObject( hDC, hFont);
+
+    if (lppop->Height == 0)
+        MENU_MenuBarCalcSize(hDC, lprect, lppop, hwnd);
+
+    lprect->bottom = lprect->top + lppop->Height;
+
+    FillRect(hDC, lprect, GetSysColorBrush(COLOR_MENU) );
+
+    if (TWEAK_WineLook == WIN31_LOOK)
+    {
+	SelectObject( hDC, SYSCOLOR_GetPen(COLOR_WINDOWFRAME) );
+	MoveToEx( hDC, lprect->left, lprect->bottom, NULL );
+	LineTo( hDC, lprect->right, lprect->bottom );
+    }
+    else
+    {
+	SelectObject( hDC, SYSCOLOR_GetPen(COLOR_3DFACE));
+	MoveToEx( hDC, lprect->left, lprect->bottom, NULL );
+	LineTo( hDC, lprect->right, lprect->bottom );
+    }
+
+    if (lppop->nItems == 0)
+    {
+        retvalue = GetSystemMetrics(SM_CYMENU);
+        goto END;
+    }
+
+    for (i = 0; i < lppop->nItems; i++)
+    {
+        MENU_DrawMenuItem( hwnd, hMenu, hwnd,
+                           hDC, &lppop->items[i], lppop->Height, TRUE, ODA_DRAWENTIRE );
+    }
+    retvalue = lppop->Height;
+
+END:
+    if (hfontOld) SelectObject (hDC, hfontOld);
+    return retvalue;
 }
 
 /***********************************************************************