mirror of
https://github.com/valinet/ExplorerPatcher.git
synced 2024-11-14 19:17:35 +01:00
Taskbar10: Fixed a bug that crashed explorer
on OS build 22621.1344
It seems Microsoft updated some stuff in `windowsudk.shellcommon.dll` and has introduced a new interface (`ITaskbarSettings6`), from which they call the `GetEffectiveSearchMode` method. This is not relevant for the Windows 10 taskbar, but the code gets called there anyway as well, so it had to be patched to support this new interface. This fix should address the issue and have ExplorerPatcher still work on newer 22621-based OS builds, like 1344 ("Moment 2" update).
This commit is contained in:
parent
cc0af464c3
commit
f9d702ebbf
@ -477,6 +477,73 @@ static ULONG STDMETHODCALLTYPE WindowsUdk_UI_Shell_ITaskbarSettings_AddRefReleas
|
||||
return 1;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE WindowsUdk_UI_Shell_ITaskbarSettings6_GetEffectiveSearchMode(
|
||||
void* instanceof_WindowsUdk_UI_Shell_ITaskbarSettings6,
|
||||
DWORD* pEffectiveSearchMode
|
||||
)
|
||||
{
|
||||
*pEffectiveSearchMode = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void* instanceof_WindowsUdk_UI_Shell_ITaskbarSettings6Vtbl[41] = { // : IInspectableVtbl
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_AddRefRelease,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_AddRefRelease,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings6_GetEffectiveSearchMode,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented
|
||||
};
|
||||
typedef struct instanceof_WindowsUdk_UI_Shell_ITaskbarSettings6 // : IInspectable
|
||||
{
|
||||
void* lpVtbl;
|
||||
} WindowsUdk_UI_Shell_ITaskbarSettings6;
|
||||
static const WindowsUdk_UI_Shell_ITaskbarSettings6 instanceof_WindowsUdk_UI_Shell_ITaskbarSettings6 = { instanceof_WindowsUdk_UI_Shell_ITaskbarSettings6Vtbl };
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE WindowsUdk_UI_Shell_ITaskbarSettings_QueryInterface(void* instanceof_WindowsUdk_UI_Shell_ITaskbarSettings, REFIID riid, void** ppv)
|
||||
{
|
||||
if (IsEqualIID(riid, &IID_WindowsUdk_UI_Shell_ITaskbarSettings6)) {
|
||||
*ppv = &instanceof_WindowsUdk_UI_Shell_ITaskbarSettings6;
|
||||
return S_OK;
|
||||
}
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE WindowsUdk_UI_Shell_ITaskbarSettings_GetAlignment_Left(
|
||||
void* instanceof_WindowsUdk_UI_Shell_ITaskbarSettings,
|
||||
DWORD* pAlignment
|
||||
@ -523,7 +590,7 @@ static HRESULT STDMETHODCALLTYPE WindowsUdk_UI_Shell_ITaskbarSettings_GetSearchM
|
||||
}
|
||||
|
||||
static void* instanceof_WindowsUdk_UI_Shell_ITaskbarSettingsVtbl[41] = { // : IInspectableVtbl
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_QueryInterface,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_AddRefRelease,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_AddRefRelease,
|
||||
WindowsUdk_UI_Shell_ITaskbarSettings_NotImplemented,
|
||||
|
@ -42,6 +42,12 @@ DEFINE_GUID(IID_IImmersiveLauncher10RS,
|
||||
0x32, 0x1f, 0xd1, 0xb4, 0x98, 0x64
|
||||
);
|
||||
|
||||
DEFINE_GUID(IID_WindowsUdk_UI_Shell_ITaskbarSettings6,
|
||||
0x5CBF9899,
|
||||
0x3E66, 0x5556, 0xA1, 0x31,
|
||||
0x1E, 0x3E, 0xE8, 0x14, 0x85, 0x90
|
||||
);
|
||||
|
||||
typedef interface IImmersiveMonitorService IImmersiveMonitorService;
|
||||
|
||||
typedef struct IImmersiveMonitorServiceVtbl
|
||||
|
Loading…
Reference in New Issue
Block a user