{
return this->QueryInterface(riid, ppvObject);
}
+
+ if (IsEqualGUID(guidService, SID_SMenuBandBottom) ||
+ IsEqualGUID(guidService, SID_SMenuBandBottomSelected) ||
+ IsEqualGUID(guidService, SID_SMenuBandChild))
+ {
+ if (m_Client == NULL)
+ return E_NOINTERFACE;
+
+ return IUnknown_QueryService(m_Client, guidService, riid, ppvObject);
+ }
+
if (m_Site == NULL)
return E_NOINTERFACE;
y = rcWorkArea.bottom - cy;
}
-
-
- this->SetWindowPos(HWND_TOPMOST, x, y, cx, cy, SWP_SHOWWINDOW);
+ this->SetWindowPos(HWND_TOPMOST, x, y, cx, cy, SWP_SHOWWINDOW | SWP_NOACTIVATE);
m_ShowFlags = dwFlags;
m_Shown = true;
if (FAILED_UNEXPECTEDLY(hr))
return hr;
- SetWindowPos(m_hWnd, 0, 0, 0, 0, SWP_HIDEWINDOW | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER);
+ SetWindowPos(NULL, 0, 0, 0, 0, SWP_HIDEWINDOW | SWP_NOACTIVATE | SWP_NOMOVE);
return UIActivateIO(FALSE, NULL);
}
LRESULT CMenuDeskBar::_OnActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
{
- if (wParam != 0)
+ // BUG in ReactOS: WM_ACTIVATE/WA_INACTIVE makes no sense with lParam==hWnd
+ if (LOWORD(wParam) != 0 || reinterpret_cast<HWND>(lParam) == m_hWnd)
+ {
return 0;
+ }
// HACK! I just want it to work !!!
CComPtr<IDeskBar> db;
return 0;
}
+LRESULT CMenuDeskBar::_OnMouseActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
+{
+ return MA_NOACTIVATE;
+}
+
LRESULT CMenuDeskBar::_OnAppActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
{
- if (wParam == 0)
+ if (wParam == 0 && m_Shown)
{
OnSelect(MPOS_FULLCANCEL);
}