Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Yukari316 committed Oct 14, 2023
2 parents 3c89357 + 80f11ae commit 60db9ac
Show file tree
Hide file tree
Showing 7 changed files with 695 additions and 1,216 deletions.
23 changes: 11 additions & 12 deletions ExplorerPatcher/ImmersiveFlyouts.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ void InvokeActionCenter()
}
}

void InvokeFlyout(BOOL bAction, DWORD dwWhich)
HRESULT InvokeFlyoutRect(BOOL bAction, DWORD dwWhich, __x_ABI_CWindows_CFoundation_CRect* pRc)
{
HRESULT hr = S_OK;
IUnknown* pImmersiveShell = NULL;
Expand All @@ -70,13 +70,13 @@ void InvokeFlyout(BOOL bAction, DWORD dwWhich)
if (SUCCEEDED(hr))
{
IShellExperienceManagerFactory* pShellExperienceManagerFactory = NULL;
IUnknown_QueryService(
hr = IUnknown_QueryService(
pImmersiveShell,
&CLSID_ShellExperienceManagerFactory,
&CLSID_ShellExperienceManagerFactory,
&pShellExperienceManagerFactory
);
if (pShellExperienceManagerFactory)
if (SUCCEEDED(hr))
{
HSTRING_HEADER hstringHeader;
HSTRING hstring = NULL;
Expand All @@ -102,36 +102,34 @@ void InvokeFlyout(BOOL bAction, DWORD dwWhich)
&hstringHeader,
&hstring
);
if (hstring)
if (SUCCEEDED(hr))
{
IUnknown* pIntf = NULL;
pShellExperienceManagerFactory->lpVtbl->GetExperienceManager(
hr = pShellExperienceManagerFactory->lpVtbl->GetExperienceManager(
pShellExperienceManagerFactory,
hstring,
&pIntf
);
if (pIntf)
if (SUCCEEDED(hr))
{
IExperienceManager* pExperienceManager = NULL;
pIntf->lpVtbl->QueryInterface(
hr = pIntf->lpVtbl->QueryInterface(
pIntf,
dwWhich == INVOKE_FLYOUT_NETWORK ? &IID_NetworkFlyoutExperienceManager :
(dwWhich == INVOKE_FLYOUT_CLOCK ? &IID_TrayClockFlyoutExperienceManager :
(dwWhich == INVOKE_FLYOUT_BATTERY ? &IID_TrayBatteryFlyoutExperienceManager :
(dwWhich == INVOKE_FLYOUT_SOUND ? &IID_TrayMtcUvcFlyoutExperienceManager : &IID_IUnknown))),
&pExperienceManager
);
if (pExperienceManager)
if (SUCCEEDED(hr))
{
RECT rc;
SetRect(&rc, 0, 0, 0, 0);
if (bAction == INVOKE_FLYOUT_SHOW)
{
pExperienceManager->lpVtbl->ShowFlyout(pExperienceManager, &rc, NULL);
hr = pExperienceManager->lpVtbl->ShowFlyout(pExperienceManager, pRc);
}
else if (bAction == INVOKE_FLYOUT_HIDE)
{
pExperienceManager->lpVtbl->HideFlyout(pExperienceManager);
hr = pExperienceManager->lpVtbl->HideFlyout(pExperienceManager);
}
pExperienceManager->lpVtbl->Release(pExperienceManager);
}
Expand All @@ -143,4 +141,5 @@ void InvokeFlyout(BOOL bAction, DWORD dwWhich)
}
pImmersiveShell->lpVtbl->Release(pImmersiveShell);
}
return hr;
}
14 changes: 11 additions & 3 deletions ExplorerPatcher/ImmersiveFlyouts.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,7 @@ typedef struct IExperienceManagerVtbl // : IInspectable

HRESULT(STDMETHODCALLTYPE* ShowFlyout)(
IExperienceManager* This,
/* [in] */ RECT* rect,
/* [in] */ HWND hWnd);
/* [in] */ __x_ABI_CWindows_CFoundation_CRect* rect);

HRESULT(STDMETHODCALLTYPE* HideFlyout)(
IExperienceManager* This);
Expand Down Expand Up @@ -192,5 +191,14 @@ void InvokeActionCenter();
#define INVOKE_FLYOUT_CLOCK 2
#define INVOKE_FLYOUT_BATTERY 3
#define INVOKE_FLYOUT_SOUND 4
void InvokeFlyout(BOOL bAction, DWORD dwWhich);

HRESULT InvokeFlyoutRect(BOOL bAction, DWORD dwWhich, __x_ABI_CWindows_CFoundation_CRect* pRc);

inline HRESULT InvokeFlyout(BOOL bAction, DWORD dwWhich)
{
__x_ABI_CWindows_CFoundation_CRect rc;
ZeroMemory(&rc, sizeof(rc));
return InvokeFlyoutRect(bAction, dwWhich, &rc);
}

#endif
4 changes: 2 additions & 2 deletions ExplorerPatcher/StartMenu.c
Original file line number Diff line number Diff line change
Expand Up @@ -765,7 +765,7 @@ BOOL NeedsRo_PositionStartMenuForMonitor(
return TRUE;
}

DWORD GetStartMenuPosition(FARPROC SHRegGetValueFromHKCUHKLMFunc)
DWORD GetStartMenuPosition(t_SHRegGetValueFromHKCUHKLM SHRegGetValueFromHKCUHKLMFunc)
{
DWORD dwSize = sizeof(DWORD);

Expand All @@ -776,7 +776,7 @@ DWORD GetStartMenuPosition(FARPROC SHRegGetValueFromHKCUHKLMFunc)
SRRF_RT_REG_DWORD,
NULL,
&dwTaskbarAl,
(LPDWORD)(&dwSize)
&dwSize
) != ERROR_SUCCESS)
{
dwTaskbarAl = 1;
Expand Down
Loading

0 comments on commit 60db9ac

Please sign in to comment.