From 378a335468a6e27fc0e4d7fc4b3fda2957bc4c74 Mon Sep 17 00:00:00 2001 From: Whindmar Saksit Date: Mon, 28 Apr 2025 00:24:15 +0200 Subject: [PATCH] [SHELL32] Don't pass menu band hwnd to InvokeCommand (#7945) The menu band window is about to go away, don't pass it to InvokeCommand because it's invalid as an owner window for any dialogs the callee might display. --- dll/win32/shell32/shellmenu/CMenuBand.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dll/win32/shell32/shellmenu/CMenuBand.cpp b/dll/win32/shell32/shellmenu/CMenuBand.cpp index c46a7326345..48407ab1d59 100644 --- a/dll/win32/shell32/shellmenu/CMenuBand.cpp +++ b/dll/win32/shell32/shellmenu/CMenuBand.cpp @@ -861,7 +861,8 @@ HRESULT CMenuBand::_TrackContextMenu(IContextMenu * contextMenu, INT x, INT y) _MenuItemSelect(MPOS_FULLCANCEL); TRACE("Before InvokeCommand\n"); - CMINVOKECOMMANDINFO cmi = { sizeof(cmi), 0, hwnd }; + // Note: Not passing hwnd to InvokeCommand because it can be a BaseBar window that is about to die + CMINVOKECOMMANDINFO cmi = { sizeof(cmi), 0, NULL }; cmi.lpVerb = MAKEINTRESOURCEA(uCommand - idCmdFirst); if (GetKeyState(VK_SHIFT) < 0) cmi.fMask |= CMIC_MASK_SHIFT_DOWN;