-extern char wxMDIFrameClassName[];
-extern char wxMDIChildFrameClassName[];
-extern wxWindow *wxWndHook;
+// insert the window menu (subMenu) into menu just before "Help" submenu or at
+// the very end if not found
+void MDIInsertWindowMenu(wxWindow *win, WXHMENU hMenu, HMENU subMenu);
+
+// Remove the window menu
+void MDIRemoveWindowMenu(wxWindow *win, WXHMENU hMenu);
+
+// unpack the parameters of WM_MDIACTIVATE message
+void UnpackMDIActivate(WXWPARAM wParam, WXLPARAM lParam,
+ WXWORD *activate, WXHWND *hwndAct, WXHWND *hwndDeact);
+
+// return the HMENU of the MDI menu
+//
+// this function works correctly even when we don't have a window menu and just
+// returns 0 then
+inline HMENU GetMDIWindowMenu(wxMDIParentFrame *frame)
+{
+ wxMenu *menu = frame->GetWindowMenu();
+ return menu ? GetHmenuOf(menu) : 0;
+}
+
+} // anonymous namespace
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+// ---------------------------------------------------------------------------
+// wxWin macros
+// ---------------------------------------------------------------------------