From 0a42d5559fec32061a1390a7f75be4948f462c0a Mon Sep 17 00:00:00 2001 From: Valentin Radu Date: Sun, 7 Aug 2022 00:07:04 +0300 Subject: [PATCH] Taskbar11: Fix right click menu and double click to auto-hide on OS builds 22621+ --- ExplorerPatcher/dllmain.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/ExplorerPatcher/dllmain.c b/ExplorerPatcher/dllmain.c index ba38f57..d1c6792 100644 --- a/ExplorerPatcher/dllmain.c +++ b/ExplorerPatcher/dllmain.c @@ -2210,6 +2210,9 @@ BOOL IsPointOnEmptyAreaOfNewTaskbar(POINT pt) IUIAutomationElement* pIUIAutomationElement = NULL; HWND hWnd = NULL; BOOL bRet = FALSE; + BSTR elemName = NULL; + BSTR elemType = NULL; + BOOL bIsWindows11Version22H2OrHigher = IsWindows11Version22H2OrHigher(); if (SUCCEEDED(hr)) { @@ -2219,11 +2222,23 @@ BOOL IsPointOnEmptyAreaOfNewTaskbar(POINT pt) { hr = pIUIAutomation2->lpVtbl->ElementFromPoint(pIUIAutomation2, pt, &pIUIAutomationElement); } - if (SUCCEEDED(hr)) + if (SUCCEEDED(hr) && bIsWindows11Version22H2OrHigher) + { + hr = pIUIAutomationElement->lpVtbl->get_CurrentName(pIUIAutomationElement, &elemName); + } + if (SUCCEEDED(hr) && bIsWindows11Version22H2OrHigher) + { + hr = pIUIAutomationElement->lpVtbl->get_CurrentClassName(pIUIAutomationElement, &elemType); + } + if (SUCCEEDED(hr) && bIsWindows11Version22H2OrHigher) + { + bRet = (!wcscmp(elemName, L"") && !wcscmp(elemType, L"Taskbar.TaskbarFrameAutomationPeer")); + } + if (SUCCEEDED(hr) && !bIsWindows11Version22H2OrHigher) { hr = pIUIAutomationElement->lpVtbl->get_CurrentNativeWindowHandle(pIUIAutomationElement, &hWnd); } - if (SUCCEEDED(hr)) + if (SUCCEEDED(hr) && !bIsWindows11Version22H2OrHigher) { WCHAR wszClassName[200]; GetClassNameW(hWnd, wszClassName, 200); @@ -2304,6 +2319,14 @@ BOOL IsPointOnEmptyAreaOfNewTaskbar(POINT pt) } } } + if (elemName) + { + SysFreeString(elemName); + } + if (elemType) + { + SysFreeString(elemType); + } if (pIUIAutomationElement) { pIUIAutomationElement->lpVtbl->Release(pIUIAutomationElement);