22// @id taskbar-button-scroll
33// @name Taskbar minimize/restore on scroll
44// @description Minimize/restore by scrolling the mouse wheel over taskbar buttons and thumbnail previews
5- // @version 1.1.3
5+ // @version 1.1.4
66// @author m417z
77// @github https://github.com/m417z
88// @twitter https://twitter.com/m417z
@@ -30,9 +30,6 @@ previews.
3030Only Windows 10 64-bit and Windows 11 are supported. For older Windows versions
3131check out [7+ Taskbar Tweaker](https://tweaker.ramensoftware.com/).
3232
33- **Note:** To customize the old taskbar on Windows 11 (if using ExplorerPatcher
34- or a similar tool), enable the relevant option in the mod's settings.
35-
3633
3734*/
3835// ==/WindhawkModReadme==
@@ -1085,13 +1082,13 @@ bool HookTaskbarViewDllSymbols(HMODULE module) {
10851082 FlyoutFrame_OnPointerWheelChanged_Original !=
10861083 TaskListButton_OnPointerWheelChanged_Original;
10871084
1088- WindhawkUtils::Wh_SetFunctionHookT (
1085+ WindhawkUtils::SetFunctionHook (
10891086 TaskListButton_OnPointerWheelChanged_Original,
10901087 TaskListButton_OnPointerWheelChanged_Hook,
10911088 &TaskListButton_OnPointerWheelChanged_Original);
10921089
10931090 if (hookFlyoutFrame_OnPointerWheelChanged_Original) {
1094- WindhawkUtils::Wh_SetFunctionHookT (
1091+ WindhawkUtils::SetFunctionHook (
10951092 FlyoutFrame_OnPointerWheelChanged_Original,
10961093 FlyoutFrame_OnPointerWheelChanged_Hook,
10971094 &FlyoutFrame_OnPointerWheelChanged_Original);
@@ -1217,11 +1214,13 @@ bool HookTaskbarSymbols() {
12171214 {LR"( public: virtual long __cdecl CTaskListWnd::DismissHoverUI(int))" },
12181215 &CTaskListWnd_DismissHoverUI_Original,
12191216 CTaskListWnd_DismissHoverUI_Hook,
1217+ true , // Classic thumbs, removed in or near 10.0.26100.8544.
12201218 },
12211219 {
12221220 {LR"( public: virtual int __cdecl CTaskListThumbnailWnd::ThumbIndexFromPoint(struct tagPOINT const &)const )" },
12231221 &CTaskListThumbnailWnd_ThumbIndexFromPoint_Original,
12241222 CTaskListThumbnailWnd_ThumbIndexFromPoint_Hook,
1223+ true , // Classic thumbs, removed in or near 10.0.26100.8544.
12251224 },
12261225 {
12271226 {LR"( protected: virtual __int64 __cdecl CTaskListWnd::v_WndProc(struct HWND__ *,unsigned int,unsigned __int64,__int64))" },
@@ -1231,15 +1230,20 @@ bool HookTaskbarSymbols() {
12311230 {
12321231 {LR"( private: void __cdecl CTaskListThumbnailWnd::_HandleContextMenu(struct tagPOINT,int))" },
12331232 &CTaskListThumbnailWnd__HandleContextMenu_Original,
1233+ nullptr ,
1234+ true , // Classic thumbs, removed in or near 10.0.26100.8544.
12341235 },
12351236 {
12361237 {LR"( private: void __cdecl CTaskListThumbnailWnd::_RefreshThumbnail(int))" },
12371238 &CTaskListThumbnailWnd__RefreshThumbnail_Original,
1239+ nullptr ,
1240+ true , // Classic thumbs, removed in or near 10.0.26100.8544.
12381241 },
12391242 {
12401243 {LR"( private: virtual __int64 __cdecl CTaskListThumbnailWnd::v_WndProc(struct HWND__ *,unsigned int,unsigned __int64,__int64))" },
12411244 &CTaskListThumbnailWnd_v_WndProc_Original,
12421245 CTaskListThumbnailWnd_v_WndProc_Hook,
1246+ true , // Classic thumbs, removed in or near 10.0.26100.8544.
12431247 },
12441248 // For offsets:
12451249 {
@@ -1272,6 +1276,30 @@ bool HookTaskbarSymbols() {
12721276 return false ;
12731277 }
12741278
1279+ bool hasAllClassicThumbnailsHooks =
1280+ CTaskListWnd_DismissHoverUI_Original &&
1281+ CTaskListThumbnailWnd_ThumbIndexFromPoint_Original &&
1282+ CTaskListThumbnailWnd__HandleContextMenu_Original &&
1283+ CTaskListThumbnailWnd__RefreshThumbnail_Original &&
1284+ CTaskListThumbnailWnd_v_WndProc_Original;
1285+
1286+ bool hasNoClassicThumbnailsHooks =
1287+ !CTaskListWnd_DismissHoverUI_Original &&
1288+ !CTaskListThumbnailWnd_ThumbIndexFromPoint_Original &&
1289+ !CTaskListThumbnailWnd__HandleContextMenu_Original &&
1290+ !CTaskListThumbnailWnd__RefreshThumbnail_Original &&
1291+ !CTaskListThumbnailWnd_v_WndProc_Original;
1292+
1293+ if (!hasAllClassicThumbnailsHooks && !hasNoClassicThumbnailsHooks) {
1294+ Wh_Log (L" Some classic thumbnail hooks are missing (%p, %p, %p, %p, %p)" ,
1295+ CTaskListWnd_DismissHoverUI_Original,
1296+ CTaskListThumbnailWnd_ThumbIndexFromPoint_Original,
1297+ CTaskListThumbnailWnd__HandleContextMenu_Original,
1298+ CTaskListThumbnailWnd__RefreshThumbnail_Original,
1299+ CTaskListThumbnailWnd_v_WndProc_Original);
1300+ return false ;
1301+ }
1302+
12751303 return true ;
12761304}
12771305
@@ -1553,9 +1581,9 @@ BOOL Wh_ModInit() {
15531581 HMODULE kernelBaseModule = GetModuleHandle (L" kernelbase.dll" );
15541582 auto pKernelBaseLoadLibraryExW = (decltype (&LoadLibraryExW))GetProcAddress (
15551583 kernelBaseModule, " LoadLibraryExW" );
1556- WindhawkUtils::Wh_SetFunctionHookT (pKernelBaseLoadLibraryExW,
1557- LoadLibraryExW_Hook,
1558- &LoadLibraryExW_Original);
1584+ WindhawkUtils::SetFunctionHook (pKernelBaseLoadLibraryExW,
1585+ LoadLibraryExW_Hook,
1586+ &LoadLibraryExW_Original);
15591587
15601588 HMODULE dwmapiModule =
15611589 LoadLibraryEx (L" dwmapi.dll" , nullptr , LOAD_LIBRARY_SEARCH_SYSTEM32 );
0 commit comments