Rein Klazes : user32: Handle MN_GETHMENU in PopupMenuWndProc.
Alexandre Julliard
julliard at winehq.org
Fri Oct 16 11:26:11 CDT 2009
Module: wine
Branch: master
Commit: b94f63ef3837f2ea2d7903c1621a0ab7c9ee68cd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b94f63ef3837f2ea2d7903c1621a0ab7c9ee68cd
Author: Rein Klazes <wijn at online.nl>
Date: Fri Oct 16 13:12:33 2009 +0200
user32: Handle MN_GETHMENU in PopupMenuWndProc.
---
dlls/user32/menu.c | 1 +
dlls/user32/tests/menu.c | 7 +++++++
2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/dlls/user32/menu.c b/dlls/user32/menu.c
index eb96ab4..230e412 100644
--- a/dlls/user32/menu.c
+++ b/dlls/user32/menu.c
@@ -3509,6 +3509,7 @@ static LRESULT WINAPI PopupMenuWndProc( HWND hwnd, UINT message, WPARAM wParam,
break;
case MM_GETMENUHANDLE:
+ case MN_GETHMENU:
return GetWindowLongPtrW( hwnd, 0 );
default:
diff --git a/dlls/user32/tests/menu.c b/dlls/user32/tests/menu.c
index a388103..56535ae 100644
--- a/dlls/user32/tests/menu.c
+++ b/dlls/user32/tests/menu.c
@@ -150,10 +150,12 @@ static int gflag_initmenupopup,
static LRESULT WINAPI menu_ownerdraw_wnd_proc(HWND hwnd, UINT msg,
WPARAM wparam, LPARAM lparam)
{
+ static HMENU hmenupopup;
switch (msg)
{
case WM_INITMENUPOPUP:
gflag_initmenupopup++;
+ hmenupopup = (HMENU) wparam;
break;
case WM_ENTERMENULOOP:
gflag_entermenuloop++;
@@ -229,6 +231,11 @@ static LRESULT WINAPI menu_ownerdraw_wnd_proc(HWND hwnd, UINT msg,
{
ok( lparam || broken(!lparam), /* win9x, nt4 */
"Menu window handle is NULL!\n");
+ if( lparam) {
+ HMENU hmenu = (HMENU)SendMessageA( (HWND)lparam, MN_GETHMENU, 0, 0);
+ ok( hmenupopup == hmenu, "MN_GETHMENU returns %p expected %p\n",
+ hmenu, hmenupopup);
+ }
PostMessage(hwnd, WM_CANCELMODE, 0, 0);
return TRUE;
}
More information about the wine-cvs
mailing list