[NtUser]
authorJames Tabor <james.tabor@reactos.org>
Thu, 30 Jun 2016 15:48:20 +0000 (15:48 +0000)
committerJames Tabor <james.tabor@reactos.org>
Thu, 30 Jun 2016 15:48:20 +0000 (15:48 +0000)
- Use internal function to validate menu handle. See CORE-11479 for more information.

svn path=/trunk/; revision=71704

reactos/win32ss/user/ntuser/menu.c
reactos/win32ss/user/ntuser/menu.h
reactos/win32ss/user/ntuser/window.h

index b687b32..2cb3f07 100644 (file)
@@ -242,6 +242,15 @@ PMENU FASTCALL VerifyMenu(PMENU pMenu)
    return pMenu;
 }
 
+BOOL
+FASTCALL
+IntIsMenu(HMENU Menu)
+{
+  if (UserGetMenuObject(Menu)) return TRUE;
+  return FALSE;
+}
+
+
 PMENU WINAPI
 IntGetMenu(HWND hWnd)
 {
index 77eff65..c9a990a 100644 (file)
@@ -122,6 +122,8 @@ typedef struct tagROSMENUITEMINFO
 //
 //
 
+BOOL FASTCALL IntIsMenu(HMENU);
+
 PMENU FASTCALL
 IntGetMenuObject(HMENU hMenu);
 
index d377206..79c5988 100644 (file)
@@ -16,7 +16,7 @@ extern ATOM AtomFlashWndState;
 #define HAS_THINFRAME(Style, ExStyle) \
             (((Style) & WS_BORDER) || (!((Style) & (WS_CHILD | WS_POPUP))))
 
-#define HAS_MENU(pWnd,style)  ((((style) & (WS_CHILD | WS_POPUP)) != WS_CHILD) && pWnd->IDMenu)
+#define HAS_MENU(pWnd,style)  ((((style) & (WS_CHILD | WS_POPUP)) != WS_CHILD) && IntIsMenu(UlongToHandle(pWnd->IDMenu)))
 
 #define IntIsDesktopWindow(WndObj) \
   (WndObj->spwndParent == NULL)