From a720dd537c25d076b4395756a097309b50a04bc6 Mon Sep 17 00:00:00 2001 From: Jaime Bernardo Date: Fri, 27 Dec 2024 12:59:52 +0000 Subject: [PATCH] [New+]Don't override New actions from Explorer on Windows 10 (#36467) * [New+]Don't override New actions from Explorer * Update src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp * Update src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp * Add pattern for learn.microsoft links * Also only Query for context menu --- .github/actions/spell-check/patterns.txt | 2 +- .../shell_context_menu_win10.cpp | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/actions/spell-check/patterns.txt b/.github/actions/spell-check/patterns.txt index b38f6b37579f..12c1ef6b08d2 100644 --- a/.github/actions/spell-check/patterns.txt +++ b/.github/actions/spell-check/patterns.txt @@ -131,7 +131,7 @@ _mm_(?!dd)\w+ # hit-count: 4 file-count: 4 # microsoft -\b(?:https?://|)(?:(?:(?:blogs|download\.visualstudio|developer|docs|msdn2?|research)\.|)microsoft|blogs\.msdn)\.co(?:m|\.\w\w)/[-_a-zA-Z0-9()=./%]* +\b(?:https?://|)(?:(?:(?:blogs|download\.visualstudio|developer|docs|learn|msdn2?|research)\.|)microsoft|blogs\.msdn)\.co(?:m|\.\w\w)/[-_a-zA-Z0-9()=./%#]* aka\.ms/[a-zA-Z0-9]+ diff --git a/src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp b/src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp index c54631df0925..09e948d9b2f4 100644 --- a/src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp +++ b/src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp @@ -38,9 +38,9 @@ IFACEMETHODIMP shell_context_menu_win10::QueryContextMenu(HMENU menu_handle, UIN return E_FAIL; } - if (menu_flags & CMF_DEFAULTONLY) + if (menu_flags & (CMF_DEFAULTONLY | CMF_VERBSONLY | CMF_OPTIMIZEFORINVOKE)) { - return MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, 0); + return E_UNEXPECTED; } try @@ -217,6 +217,13 @@ IFACEMETHODIMP shell_context_menu_win10::InvokeCommand(CMINVOKECOMMANDINFO* para return E_FAIL; } + if (HIWORD(params->lpVerb)!=0) + { + // Not a menu command. It's likely a string verb command from another menu. + // The logic to interpret lpVerb is explained here: https://learn.microsoft.com/en-us/previous-versions//bb776881(v=vs.85)#invokecommand-method + return E_FAIL; + } + // Get selected menu item (a template or the "Open templates" item) const auto selected_menu_item_index = LOWORD(params->lpVerb) - 1; if (selected_menu_item_index < 0)