diff --git a/reactos/dll/win32/shell32/shellmenu/CMenuBand.cpp b/reactos/dll/win32/shell32/shellmenu/CMenuBand.cpp index 78b10e3ef03..ca0f0d4dcc3 100644 --- a/reactos/dll/win32/shell32/shellmenu/CMenuBand.cpp +++ b/reactos/dll/win32/shell32/shellmenu/CMenuBand.cpp @@ -240,10 +240,18 @@ HRESULT STDMETHODCALLTYPE CMenuBand::SetSite(IUnknown *pUnkSite) CComPtr pTopLevelWindow; hr = IUnknown_QueryService(m_site, SID_STopLevelBrowser, IID_PPV_ARG(IOleWindow, &pTopLevelWindow)); - if (FAILED_UNEXPECTEDLY(hr)) - return hr; + if (SUCCEEDED(hr)) + { + hr = pTopLevelWindow->GetWindow(&m_topLevelWindow); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + } + else + { + m_topLevelWindow = hwndParent; + } - return pTopLevelWindow->GetWindow(&m_topLevelWindow); + return S_OK; } HRESULT STDMETHODCALLTYPE CMenuBand::GetSite(REFIID riid, PVOID *ppvSite)