mirror of
https://github.com/reactos/reactos.git
synced 2024-06-30 09:50:07 +00:00
[RSHELL]
* Improve logging in case of unexpected failures, and trace the creation of toolbar (menu) items. CORE-7586 svn path=/branches/shell-experiments/; revision=62414
This commit is contained in:
parent
612d72cb58
commit
7fe9315c7e
|
@ -40,7 +40,7 @@ HRESULT WINAPI CMenuBand_Constructor(REFIID riid, LPVOID *ppv)
|
|||
|
||||
HRESULT hr = site->QueryInterface(riid, ppv);
|
||||
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
site->Release();
|
||||
|
||||
return hr;
|
||||
|
@ -126,7 +126,7 @@ HRESULT STDMETHODCALLTYPE CMenuBand::SetMenu(
|
|||
m_menuOwner;
|
||||
|
||||
HRESULT hr = m_staticToolbar->SetMenu(hmenu, hwnd, dwFlags);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
if (m_site)
|
||||
|
@ -134,11 +134,11 @@ HRESULT STDMETHODCALLTYPE CMenuBand::SetMenu(
|
|||
HWND hwndParent;
|
||||
|
||||
hr = m_site->GetWindow(&hwndParent);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = m_staticToolbar->CreateToolbar(hwndParent, m_dwFlags);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = m_staticToolbar->FillToolbar();
|
||||
|
@ -170,11 +170,11 @@ HRESULT STDMETHODCALLTYPE CMenuBand::SetSite(IUnknown *pUnkSite)
|
|||
|
||||
hwndParent = NULL;
|
||||
hr = pUnkSite->QueryInterface(IID_PPV_ARG(IOleWindow, &m_site));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = m_site->GetWindow(&hwndParent);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
if (!::IsWindow(hwndParent))
|
||||
|
@ -183,32 +183,32 @@ HRESULT STDMETHODCALLTYPE CMenuBand::SetSite(IUnknown *pUnkSite)
|
|||
if (m_staticToolbar != NULL)
|
||||
{
|
||||
hr = m_staticToolbar->CreateToolbar(hwndParent, m_dwFlags);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = m_staticToolbar->FillToolbar();
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
}
|
||||
|
||||
if (m_SFToolbar != NULL)
|
||||
{
|
||||
hr = m_SFToolbar->CreateToolbar(hwndParent, m_dwFlags);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = m_SFToolbar->FillToolbar();
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
}
|
||||
|
||||
hr = IUnknown_QueryService(m_site, SID_SMenuPopup, IID_PPV_ARG(IMenuPopup, &m_subMenuParent));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
CComPtr<IOleWindow> pTopLevelWindow;
|
||||
hr = IUnknown_QueryService(m_site, SID_STopLevelBrowser, IID_PPV_ARG(IOleWindow, &pTopLevelWindow));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
return pTopLevelWindow->GetWindow(&m_topLevelWindow);
|
||||
|
@ -242,12 +242,12 @@ HRESULT STDMETHODCALLTYPE CMenuBand::OnPosRectChangeDB(RECT *prc)
|
|||
|
||||
if (m_staticToolbar != NULL)
|
||||
hr = m_staticToolbar->GetIdealSize(sizeStatic);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
if (m_SFToolbar != NULL)
|
||||
hr = m_SFToolbar->GetIdealSize(sizeShlFld);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
if (m_staticToolbar == NULL && m_SFToolbar == NULL)
|
||||
|
@ -289,12 +289,12 @@ HRESULT STDMETHODCALLTYPE CMenuBand::GetBandInfo(
|
|||
|
||||
if (m_staticToolbar != NULL)
|
||||
hr = m_staticToolbar->GetIdealSize(sizeStatic);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
if (m_SFToolbar != NULL)
|
||||
hr = m_SFToolbar->GetIdealSize(sizeShlFld);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
if (m_staticToolbar == NULL && m_SFToolbar == NULL)
|
||||
|
@ -312,17 +312,17 @@ HRESULT STDMETHODCALLTYPE CMenuBand::ShowDW(BOOL fShow)
|
|||
|
||||
if (m_staticToolbar != NULL)
|
||||
hr = m_staticToolbar->ShowWindow(fShow);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
if (m_SFToolbar != NULL)
|
||||
hr = m_SFToolbar->ShowWindow(fShow);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
if (fShow)
|
||||
{
|
||||
hr = _CallCB(SMC_INITMENU, 0, 0);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
@ -363,18 +363,18 @@ HRESULT STDMETHODCALLTYPE CMenuBand::UIActivateIO(BOOL fActivate, LPMSG lpMsg)
|
|||
HRESULT hr;
|
||||
|
||||
hr = m_subMenuParent->SetSubMenu(this, fActivate);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
if (fActivate)
|
||||
{
|
||||
CComPtr<IOleWindow> pTopLevelWindow;
|
||||
hr = IUnknown_QueryService(m_site, SID_SMenuPopup, IID_PPV_ARG(IOleWindow, &pTopLevelWindow));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = pTopLevelWindow->GetWindow(&m_topLevelWindow);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
}
|
||||
else
|
||||
|
@ -497,7 +497,7 @@ HRESULT STDMETHODCALLTYPE CMenuBand::SetShellFolder(IShellFolder *psf, LPCITEMID
|
|||
}
|
||||
|
||||
HRESULT hr = m_SFToolbar->SetShellFolder(psf, pidlFolder, hKey, dwFlags);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
if (m_site)
|
||||
|
@ -505,11 +505,11 @@ HRESULT STDMETHODCALLTYPE CMenuBand::SetShellFolder(IShellFolder *psf, LPCITEMID
|
|||
HWND hwndParent;
|
||||
|
||||
hr = m_site->GetWindow(&hwndParent);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = m_SFToolbar->CreateToolbar(hwndParent, m_dwFlags);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = m_SFToolbar->FillToolbar();
|
||||
|
@ -719,7 +719,7 @@ HRESULT CMenuBand::_OnPopupSubMenu(IMenuPopup * popup, POINTL * pAt, RECTL * pEx
|
|||
if (m_subMenuChild)
|
||||
{
|
||||
HRESULT hr = m_subMenuChild->OnSelect(MPOS_CANCELLEVEL);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
}
|
||||
if (m_staticToolbar) m_staticToolbar->OnPopupItemChanged(toolbar, item);
|
||||
|
|
|
@ -39,7 +39,7 @@ HRESULT WINAPI CMenuDeskBar_Constructor(REFIID riid, LPVOID *ppv)
|
|||
|
||||
HRESULT hr = deskbar->QueryInterface(riid, ppv);
|
||||
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
deskbar->Release();
|
||||
|
||||
return hr;
|
||||
|
@ -79,7 +79,7 @@ HRESULT STDMETHODCALLTYPE CMenuDeskBar::OnFocusChangeIS(IUnknown *punkObj, BOOL
|
|||
CComPtr<IInputObjectSite> ios;
|
||||
|
||||
HRESULT hr = m_Client->QueryInterface(IID_PPV_ARG(IInputObjectSite, &ios));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
return ios->OnFocusChangeIS(punkObj, fSetFocus);
|
||||
|
@ -150,7 +150,7 @@ HRESULT STDMETHODCALLTYPE CMenuDeskBar::HasFocusIO()
|
|||
CComPtr<IInputObject> io;
|
||||
|
||||
HRESULT hr = m_Client->QueryInterface(IID_PPV_ARG(IInputObject, &io));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
return io->HasFocusIO();
|
||||
|
@ -161,7 +161,7 @@ HRESULT STDMETHODCALLTYPE CMenuDeskBar::TranslateAcceleratorIO(LPMSG lpMsg)
|
|||
CComPtr<IInputObject> io;
|
||||
|
||||
HRESULT hr = m_Client->QueryInterface(IID_PPV_ARG(IInputObject, &io));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
return io->TranslateAcceleratorIO(lpMsg);
|
||||
|
@ -183,15 +183,15 @@ HRESULT STDMETHODCALLTYPE CMenuDeskBar::SetClient(IUnknown *punkClient)
|
|||
}
|
||||
|
||||
hr = punkClient->QueryInterface(IID_PPV_ARG(IUnknown, &m_Client));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = m_Client->QueryInterface(IID_PPV_ARG(IDeskBarClient, &pDeskBandClient));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = pDeskBandClient->SetDeskBarSite(static_cast<IDeskBar*>(this));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
return IUnknown_GetWindow(m_Client, &m_ClientWindow);
|
||||
|
@ -250,11 +250,11 @@ HRESULT STDMETHODCALLTYPE CMenuDeskBar::Popup(POINTL *ppt, RECTL *prcExclude, MP
|
|||
return E_FAIL;
|
||||
|
||||
hr = IUnknown_QueryService(m_Client, SID_SMenuBandChild, IID_PPV_ARG(IOleCommandTarget, &oct));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = m_Client->QueryInterface(IID_PPV_ARG(IDeskBarClient, &dbc));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
// Windows calls this, but it appears to be unimplemented?
|
||||
|
@ -263,12 +263,12 @@ HRESULT STDMETHODCALLTYPE CMenuDeskBar::Popup(POINTL *ppt, RECTL *prcExclude, MP
|
|||
|
||||
// No clue about the arg, using anything != 0
|
||||
hr = dbc->UIActivateDBC(TRUE);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
RECT rc = { 0 };
|
||||
hr = dbc->GetSize(0, &rc);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
// Unknown meaning
|
||||
|
@ -276,7 +276,7 @@ HRESULT STDMETHODCALLTYPE CMenuDeskBar::Popup(POINTL *ppt, RECTL *prcExclude, MP
|
|||
const int CMD_EXEC_OPT = 0;
|
||||
|
||||
hr = IUnknown_QueryServiceExec(m_Client, SID_SMenuBandChild, &CLSID_MenuBand, CMD, CMD_EXEC_OPT, NULL, NULL);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
::AdjustWindowRect(&rc, ::GetWindowLong(m_hWnd, GWL_STYLE), FALSE);
|
||||
|
@ -372,7 +372,7 @@ HRESULT STDMETHODCALLTYPE CMenuDeskBar::SetIconSize(THIS_ DWORD iIcon)
|
|||
const int CMD_EXEC_OPT = iIcon ? 0 : 2; // seems to work
|
||||
|
||||
hr = IUnknown_QueryServiceExec(m_Client, SID_SMenuBandChild, &CLSID_MenuBand, CMD, CMD_EXEC_OPT, NULL, NULL);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
BOOL bHandled;
|
||||
|
@ -479,16 +479,16 @@ HRESULT CMenuDeskBar::_CloseBar()
|
|||
if (m_SubMenuChild)
|
||||
{
|
||||
hr = m_SubMenuChild->OnSelect(MPOS_CANCELLEVEL);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
}
|
||||
|
||||
hr = m_Client->QueryInterface(IID_PPV_ARG(IDeskBarClient, &dbc));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = dbc->UIActivateDBC(FALSE);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
SetWindowPos(m_hWnd, 0, 0, 0, 0, SWP_HIDEWINDOW | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER);
|
||||
|
@ -506,7 +506,7 @@ BOOL CMenuDeskBar::_IsSubMenuParent(HWND hwnd)
|
|||
CComPtr<IOleWindow> window;
|
||||
|
||||
hr = popup->QueryInterface(IID_PPV_ARG(IOleWindow, &window));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return FALSE;
|
||||
|
||||
HWND parent;
|
||||
|
@ -517,7 +517,7 @@ BOOL CMenuDeskBar::_IsSubMenuParent(HWND hwnd)
|
|||
|
||||
popup = NULL;
|
||||
hr = IUnknown_GetSite(window, IID_PPV_ARG(IMenuPopup, &popup));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -552,14 +552,14 @@ LRESULT CMenuDeskBar::_OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
|
|||
|
||||
CComPtr<IWinEventHandler> winEventHandler;
|
||||
HRESULT hr = m_Client->QueryInterface(IID_PPV_ARG(IWinEventHandler, &winEventHandler));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return 0;
|
||||
|
||||
if (winEventHandler)
|
||||
{
|
||||
LRESULT result;
|
||||
hr = winEventHandler->OnWinEvent(NULL, uMsg, wParam, lParam, &result);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return 0;
|
||||
return result;
|
||||
}
|
||||
|
@ -615,13 +615,13 @@ LRESULT CMenuDeskBar::_OnActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL
|
|||
// HACK! I just want it to work !!!
|
||||
CComPtr<IDeskBar> db;
|
||||
HRESULT hr = IUnknown_QueryService(m_Client, SID_SMenuBandChild, IID_PPV_ARG(IDeskBar, &db));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return 0;
|
||||
|
||||
CComPtr<IUnknown> punk;
|
||||
|
||||
hr = db->GetClient(&punk);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return 0;
|
||||
|
||||
if (!punk && m_Shown)
|
||||
|
|
|
@ -207,13 +207,13 @@ HRESULT CMenuFocusManager::UpdateFocus(CMenuBand * newBand)
|
|||
}
|
||||
|
||||
hr = newBand->_GetTopLevelWindow(&newFocus);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
if (!m_currentBand)
|
||||
{
|
||||
hr = PlaceHooks(newFocus);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
@ -228,7 +228,7 @@ HRESULT CMenuFocusManager::PushMenu(CMenuBand * mb)
|
|||
HRESULT hr;
|
||||
|
||||
hr = PushToArray(mb);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
return UpdateFocus(mb);
|
||||
|
@ -240,7 +240,7 @@ HRESULT CMenuFocusManager::PopMenu(CMenuBand * mb)
|
|||
HRESULT hr;
|
||||
|
||||
hr = PopFromArray(&mbc);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
if (mb != mbc)
|
||||
|
|
|
@ -37,7 +37,7 @@ HRESULT WINAPI CMenuSite_Constructor(REFIID riid, LPVOID *ppv)
|
|||
|
||||
HRESULT hr = site->QueryInterface(riid, ppv);
|
||||
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
site->Release();
|
||||
|
||||
return hr;
|
||||
|
@ -109,7 +109,7 @@ HRESULT STDMETHODCALLTYPE CMenuSite::AddBand(IUnknown * punk)
|
|||
if (m_BandObject)
|
||||
{
|
||||
hr = IUnknown_SetSite(m_BandObject, NULL);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
@ -122,19 +122,19 @@ HRESULT STDMETHODCALLTYPE CMenuSite::AddBand(IUnknown * punk)
|
|||
return TO_HRESULT(0);
|
||||
|
||||
hr = punk->QueryInterface(IID_PPV_ARG(IDeskBand, &m_DeskBand));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = punk->QueryInterface(IID_PPV_ARG(IWinEventHandler, &m_WinEventHandler));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = IUnknown_SetSite(punk, this->ToIUnknown());
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = IUnknown_GetWindow(punk, &m_hWndBand);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
m_BandObject = punk;
|
||||
|
|
|
@ -457,11 +457,11 @@ HRESULT CMenuToolbarBase::PopupSubMenu(UINT uItem, UINT index, IShellMenu* child
|
|||
#else
|
||||
hr = CMenuSite_Constructor(IID_PPV_ARG(IBandSite, &pBandSite));
|
||||
#endif
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#if WRAP_MENUSITE
|
||||
hr = CMenuSite_Wrapper(pBandSite, IID_PPV_ARG(IBandSite, &pBandSite));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#endif
|
||||
|
||||
|
@ -473,25 +473,25 @@ HRESULT CMenuToolbarBase::PopupSubMenu(UINT uItem, UINT index, IShellMenu* child
|
|||
#else
|
||||
hr = CMenuDeskBar_Constructor(IID_PPV_ARG(IDeskBar, &pDeskBar));
|
||||
#endif
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#if WRAP_MENUDESKBAR
|
||||
hr = CMenuDeskBar_Wrapper(pDeskBar, IID_PPV_ARG(IDeskBar, &pDeskBar));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#endif
|
||||
|
||||
hr = pDeskBar->SetClient(pBandSite);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = pBandSite->AddBand(childShellMenu);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
CComPtr<IMenuPopup> popup;
|
||||
hr = pDeskBar->QueryInterface(IID_PPV_ARG(IMenuPopup, &popup));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
m_menuBand->_OnPopupSubMenu(popup, &pt, &rcl, this, m_popupItem);
|
||||
|
@ -526,7 +526,7 @@ HRESULT CMenuToolbarBase::DoContextMenu(IContextMenu* contextMenu)
|
|||
return E_FAIL;
|
||||
|
||||
hr = contextMenu->QueryContextMenu(hPopup, 0, 0, UINT_MAX, CMF_NORMAL);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
{
|
||||
DestroyMenu(hPopup);
|
||||
return hr;
|
||||
|
@ -667,7 +667,10 @@ HRESULT CMenuToolbarBase::AddButton(DWORD commandId, LPCWSTR caption, BOOL hasSu
|
|||
tbb.iBitmap = iconId;
|
||||
tbb.dwData = buttonData;
|
||||
|
||||
SendMessageW(m_hwndToolbar, TB_ADDBUTTONS, 1, reinterpret_cast<LPARAM>(&tbb));
|
||||
DbgPrint("Trying to add a new button with id %d and caption '%S'...\n", commandId, caption);
|
||||
|
||||
if (!SendMessageW(m_hwndToolbar, TB_ADDBUTTONS, 1, reinterpret_cast<LPARAM>(&tbb)))
|
||||
return HRESULT_FROM_WIN32(GetLastError());
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -684,7 +687,10 @@ HRESULT CMenuToolbarBase::AddSeparator(BOOL last)
|
|||
tbb.fsStyle = BTNS_SEP;
|
||||
tbb.iBitmap = 0;
|
||||
|
||||
SendMessageW(m_hwndToolbar, TB_ADDBUTTONS, 1, reinterpret_cast<LPARAM>(&tbb));
|
||||
DbgPrint("Trying to add a new separator...\n");
|
||||
|
||||
if (!SendMessageW(m_hwndToolbar, TB_ADDBUTTONS, 1, reinterpret_cast<LPARAM>(&tbb)))
|
||||
return HRESULT_FROM_WIN32(GetLastError());
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -699,7 +705,10 @@ HRESULT CMenuToolbarBase::AddPlaceholder()
|
|||
tbb.iString = (INT_PTR) MenuString;
|
||||
tbb.iBitmap = -1;
|
||||
|
||||
SendMessageW(m_hwndToolbar, TB_ADDBUTTONS, 1, reinterpret_cast<LPARAM>(&tbb));
|
||||
DbgPrint("Trying to add a new placeholder...\n");
|
||||
|
||||
if (!SendMessageW(m_hwndToolbar, TB_ADDBUTTONS, 1, reinterpret_cast<LPARAM>(&tbb)))
|
||||
return HRESULT_FROM_WIN32(GetLastError());
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -790,12 +799,23 @@ HRESULT CMenuStaticToolbar::FillToolbar()
|
|||
|
||||
info.cbSize = sizeof(info);
|
||||
info.dwTypeData = NULL;
|
||||
info.fMask = MIIM_FTYPE | MIIM_STRING;
|
||||
info.fMask = MIIM_FTYPE | MIIM_STRING | MIIM_ID;
|
||||
|
||||
GetMenuItemInfoW(m_hmenu, i, TRUE, &info);
|
||||
|
||||
if (info.fType == MFT_STRING)
|
||||
if (!GetMenuItemInfoW(m_hmenu, i, TRUE, &info))
|
||||
{
|
||||
DbgPrint("Error obtaining info for menu item at pos=%d\n", i);
|
||||
continue;
|
||||
}
|
||||
|
||||
DbgPrint("Found item with fType=%x, cmdId=%d\n", info.fType, info.wID);
|
||||
|
||||
if (info.fType & MFT_SEPARATOR)
|
||||
{
|
||||
AddSeparator(last);
|
||||
}
|
||||
else // if (info.fType == MFT_STRING)
|
||||
{
|
||||
|
||||
info.cch++;
|
||||
info.dwTypeData = (PWSTR) HeapAlloc(GetProcessHeap(), 0, (info.cch + 1) * sizeof(WCHAR));
|
||||
|
||||
|
@ -807,17 +827,13 @@ HRESULT CMenuStaticToolbar::FillToolbar()
|
|||
// FIXME: remove before deleting the toolbar or it will leak
|
||||
|
||||
HRESULT hr = m_menuBand->_CallCBWithItemId(info.wID, SMC_GETINFO, 0, reinterpret_cast<LPARAM>(sminfo));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
AddButton(info.wID, info.dwTypeData, info.hSubMenu != NULL, sminfo->iIcon, reinterpret_cast<DWORD_PTR>(sminfo), last);
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, info.dwTypeData);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddSeparator(last);
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
@ -837,7 +853,7 @@ HRESULT CMenuStaticToolbar::OnCommand(WPARAM wParam, LPARAM lParam, LRESULT *the
|
|||
{
|
||||
HRESULT hr;
|
||||
hr = CMenuToolbarBase::OnCommand(wParam, lParam, theResult);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
// in case the clicked item has a submenu, we do not need to execute the item
|
||||
|
@ -861,7 +877,7 @@ HRESULT CMenuStaticToolbar::InternalPopupItem(INT uItem, INT index, DWORD_PTR dw
|
|||
{
|
||||
CComPtr<IShellMenu> shellMenu;
|
||||
HRESULT hr = m_menuBand->_CallCBWithItemId(uItem, SMC_GETOBJECT, reinterpret_cast<WPARAM>(&IID_IShellMenu), reinterpret_cast<LPARAM>(&shellMenu));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
return PopupSubMenu(uItem, index, shellMenu);
|
||||
|
@ -903,7 +919,7 @@ HRESULT CMenuSFToolbar::FillToolbar()
|
|||
STRRET sr = { STRRET_CSTR, { 0 } };
|
||||
|
||||
hr = m_shellFolder->GetDisplayNameOf(item, SIGDN_NORMALDISPLAY, &sr);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
StrRetToStr(&sr, NULL, &MenuString);
|
||||
|
@ -950,7 +966,7 @@ HRESULT CMenuSFToolbar::GetShellFolder(DWORD *pdwFlags, LPITEMIDLIST *ppidl, REF
|
|||
HRESULT hr;
|
||||
|
||||
hr = m_shellFolder->QueryInterface(riid, ppv);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
if (pdwFlags)
|
||||
|
@ -993,7 +1009,7 @@ HRESULT CMenuSFToolbar::OnCommand(WPARAM wParam, LPARAM lParam, LRESULT *theResu
|
|||
{
|
||||
HRESULT hr;
|
||||
hr = CMenuToolbarBase::OnCommand(wParam, lParam, theResult);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
// in case the clicked item has a submenu, we do not need to execute the item
|
||||
|
@ -1028,11 +1044,11 @@ HRESULT CMenuSFToolbar::InternalPopupItem(INT uItem, INT index, DWORD_PTR dwData
|
|||
#else
|
||||
hr = CMenuBand_Constructor(IID_PPV_ARG(IShellMenu, &shellMenu));
|
||||
#endif
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#if WRAP_MENUBAND
|
||||
hr = CMenuBand_Wrapper(shellMenu, IID_PPV_ARG(IShellMenu, &shellMenu));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#endif
|
||||
|
||||
|
@ -1040,16 +1056,16 @@ HRESULT CMenuSFToolbar::InternalPopupItem(INT uItem, INT index, DWORD_PTR dwData
|
|||
|
||||
// FIXME: not sure what to use as uId/uIdAncestor here
|
||||
hr = shellMenu->Initialize(psmc, 0, uId, SMINIT_VERTICAL);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
CComPtr<IShellFolder> childFolder;
|
||||
hr = m_shellFolder->BindToObject(pidl, NULL, IID_PPV_ARG(IShellFolder, &childFolder));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = shellMenu->SetShellFolder(childFolder, NULL, NULL, 0);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
return PopupSubMenu(uItem, index, shellMenu);
|
||||
|
@ -1062,7 +1078,7 @@ HRESULT CMenuSFToolbar::InternalHasSubMenu(INT uItem, INT index, DWORD_PTR dwDat
|
|||
|
||||
SFGAOF attrs = SFGAO_FOLDER;
|
||||
hr = m_shellFolder->GetAttributesOf(1, &pidl, &attrs);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
return (attrs & SFGAO_FOLDER) ? S_OK : S_FALSE;
|
||||
|
|
|
@ -49,10 +49,10 @@ public:
|
|||
{
|
||||
HRESULT hr;
|
||||
hr = userLocal->EnumObjects(hwndOwner, flags, &m_UserLocal);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
hr = userLocal->EnumObjects(hwndOwner, flags, &m_AllUSers);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
{
|
||||
m_UserLocal = NULL;
|
||||
return hr;
|
||||
|
@ -73,7 +73,7 @@ public:
|
|||
if (!m_FirstDone)
|
||||
{
|
||||
hr = m_UserLocal->Next(celt, rgelt, pceltFetched);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
if (hr == S_FALSE)
|
||||
m_FirstDone = true;
|
||||
|
@ -89,7 +89,7 @@ public:
|
|||
*pceltFetched = 0;
|
||||
|
||||
hr = m_AllUSers->Next(celt, rgelt, pceltFetched);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
*pceltFetched += offset;
|
||||
|
@ -138,7 +138,7 @@ HRESULT WINAPI CMergedFolder_Constructor(IShellFolder* userLocal, IShellFolder*
|
|||
hr = fld->_SetSources(userLocal, allUsers);
|
||||
|
||||
hr = fld->QueryInterface(riid, ppv);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
fld->Release();
|
||||
|
||||
return hr;
|
||||
|
|
|
@ -156,11 +156,11 @@ private:
|
|||
#else
|
||||
hr = CMenuBand_Constructor(IID_PPV_ARG(IShellMenu, &pShellMenu));
|
||||
#endif
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#if WRAP_MENUBAND
|
||||
hr = CMenuBand_Wrapper(pShellMenu, IID_PPV_ARG(IShellMenu, &pShellMenu));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#endif
|
||||
|
||||
|
@ -304,11 +304,11 @@ CStartMenu_Constructor(REFIID riid, void **ppv)
|
|||
#else
|
||||
hr = CMenuBand_Constructor(IID_PPV_ARG(IShellMenu, &pShellMenu));
|
||||
#endif
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#if WRAP_MENUBAND
|
||||
hr = CMenuBand_Wrapper(pShellMenu, IID_PPV_ARG(IShellMenu, &pShellMenu));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#endif
|
||||
|
||||
|
@ -320,11 +320,11 @@ CStartMenu_Constructor(REFIID riid, void **ppv)
|
|||
#else
|
||||
hr = CMenuSite_Constructor(IID_PPV_ARG(IBandSite, &pBandSite));
|
||||
#endif
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#if WRAP_MENUSITE
|
||||
hr = CMenuSite_Wrapper(pBandSite, IID_PPV_ARG(IBandSite, &pBandSite));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#endif
|
||||
|
||||
|
@ -336,23 +336,23 @@ CStartMenu_Constructor(REFIID riid, void **ppv)
|
|||
#else
|
||||
hr = CMenuDeskBar_Constructor(IID_PPV_ARG(IDeskBar, &pDeskBar));
|
||||
#endif
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#if WRAP_MENUDESKBAR
|
||||
hr = CMenuDeskBar_Wrapper(pDeskBar, IID_PPV_ARG(IDeskBar, &pDeskBar));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#endif
|
||||
|
||||
CComObject<CShellMenuCallback> *pCallback;
|
||||
hr = CComObject<CShellMenuCallback>::CreateInstance(&pCallback);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
pCallback->AddRef(); // CreateInstance returns object with 0 ref count */
|
||||
pCallback->Initialize(pShellMenu, pBandSite, pDeskBar);
|
||||
|
||||
pShellMenu->Initialize(pCallback, (UINT)-1, 0, SMINIT_TOPLEVEL | SMINIT_VERTICAL);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = SHGetDesktopFolder(&shellFolder);
|
||||
|
@ -369,24 +369,24 @@ CStartMenu_Constructor(REFIID riid, void **ppv)
|
|||
|
||||
IShellFolder * psfMerged;
|
||||
hr = CMergedFolder_Constructor(psfStartMenuUser, psfStartMenuAll, IID_PPV_ARG(IShellFolder, &psfMerged));
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = pShellMenu->SetShellFolder(psfMerged, NULL, NULL, 0);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#else
|
||||
hr = pShellMenu->SetShellFolder(psfStartMenuUser, NULL, NULL, 0);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
#endif
|
||||
|
||||
hr = pDeskBar->SetClient(pBandSite);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = pBandSite->AddBand(pShellMenu);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
return pDeskBar->QueryInterface(riid, ppv);
|
||||
|
|
|
@ -182,7 +182,7 @@ HRESULT WINAPI CMenuBand_Wrapper(IShellMenu * shellMenu, REFIID riid, LPVOID *pp
|
|||
return E_OUTOFMEMORY;
|
||||
|
||||
hr = site->InitWrap(shellMenu);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
{
|
||||
site->Release();
|
||||
return hr;
|
||||
|
@ -190,7 +190,7 @@ HRESULT WINAPI CMenuBand_Wrapper(IShellMenu * shellMenu, REFIID riid, LPVOID *pp
|
|||
|
||||
hr = site->QueryInterface(riid, ppv);
|
||||
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
site->Release();
|
||||
|
||||
return hr;
|
||||
|
@ -205,33 +205,33 @@ HRESULT CMenuBandWrap::InitWrap(IShellMenu * shellMenu)
|
|||
m_IShellMenu = shellMenu;
|
||||
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IDeskBand, &m_IDeskBand));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IDockingWindow, &m_IDockingWindow));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IOleWindow, &m_IOleWindow));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IObjectWithSite, &m_IObjectWithSite));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IInputObject, &m_IInputObject));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IPersistStream, &m_IPersistStream));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IPersist, &m_IPersist));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &m_IOleCommandTarget));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IServiceProvider, &m_IServiceProvider));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IMenuPopup, &m_IMenuPopup));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IDeskBar, &m_IDeskBar));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IMenuBand, &m_IMenuBand));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IShellMenu2, &m_IShellMenu2));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = shellMenu->QueryInterface(IID_PPV_ARG(IWinEventHandler, &m_IWinEventHandler));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
//hr = shellMenu->QueryInterface(IID_PPV_ARG(IShellMenuAcc, &m_IShellMenuAcc));
|
||||
m_IShellMenuAcc = NULL;
|
||||
return hr;
|
||||
|
|
|
@ -121,7 +121,7 @@ HRESULT WINAPI CMenuDeskBar_Wrapper(IDeskBar * deskBar, REFIID riid, LPVOID *ppv
|
|||
return E_OUTOFMEMORY;
|
||||
|
||||
hr = bar->InitWrap(deskBar);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
{
|
||||
bar->Release();
|
||||
return hr;
|
||||
|
@ -129,7 +129,7 @@ HRESULT WINAPI CMenuDeskBar_Wrapper(IDeskBar * deskBar, REFIID riid, LPVOID *ppv
|
|||
|
||||
hr = bar->QueryInterface(riid, ppv);
|
||||
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
bar->Release();
|
||||
|
||||
return hr;
|
||||
|
@ -144,21 +144,21 @@ HRESULT CMenuDeskBarWrap::InitWrap(IDeskBar * deskBar)
|
|||
m_IDeskBar = deskBar;
|
||||
|
||||
hr = deskBar->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &m_IOleCommandTarget));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = deskBar->QueryInterface(IID_PPV_ARG(IServiceProvider, &m_IServiceProvider));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = deskBar->QueryInterface(IID_PPV_ARG(IMenuPopup, &m_IMenuPopup));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = deskBar->QueryInterface(IID_PPV_ARG(IOleWindow, &m_IOleWindow));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = deskBar->QueryInterface(IID_PPV_ARG(IInputObjectSite, &m_IInputObjectSite));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = deskBar->QueryInterface(IID_PPV_ARG(IInputObject, &m_IInputObject));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = deskBar->QueryInterface(IID_PPV_ARG(IObjectWithSite, &m_IObjectWithSite));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = deskBar->QueryInterface(IID_PPV_ARG(IBanneredBar, &m_IBanneredBar));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = deskBar->QueryInterface(IID_PPV_ARG(IInitializeObject, &m_IInitializeObject));
|
||||
return hr;
|
||||
}
|
||||
|
|
|
@ -116,7 +116,7 @@ HRESULT WINAPI CMenuSite_Wrapper(IBandSite * bandSite, REFIID riid, LPVOID *ppv)
|
|||
return E_OUTOFMEMORY;
|
||||
|
||||
hr = site->InitWrap(bandSite);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
{
|
||||
site->Release();
|
||||
return hr;
|
||||
|
@ -124,7 +124,7 @@ HRESULT WINAPI CMenuSite_Wrapper(IBandSite * bandSite, REFIID riid, LPVOID *ppv)
|
|||
|
||||
hr = site->QueryInterface(riid, ppv);
|
||||
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
site->Release();
|
||||
|
||||
return hr;
|
||||
|
@ -139,17 +139,17 @@ HRESULT CMenuSiteWrap::InitWrap(IBandSite * bandSite)
|
|||
m_IBandSite = bandSite;
|
||||
|
||||
hr = bandSite->QueryInterface(IID_PPV_ARG(IDeskBarClient, &m_IDeskBarClient));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = bandSite->QueryInterface(IID_PPV_ARG(IOleWindow, &m_IOleWindow));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = bandSite->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &m_IOleCommandTarget));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = bandSite->QueryInterface(IID_PPV_ARG(IInputObject, &m_IInputObject));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = bandSite->QueryInterface(IID_PPV_ARG(IInputObjectSite, &m_IInputObjectSite));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = bandSite->QueryInterface(IID_PPV_ARG(IWinEventHandler, &m_IWinEventHandler));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = bandSite->QueryInterface(IID_PPV_ARG(IServiceProvider, &m_IServiceProvider));
|
||||
return hr;
|
||||
}
|
||||
|
|
|
@ -82,7 +82,7 @@ HRESULT WINAPI CStartMenuSite_Wrapper(ITrayPriv * trayPriv, REFIID riid, LPVOID
|
|||
return E_OUTOFMEMORY;
|
||||
|
||||
hr = site->InitWrap(trayPriv);
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
{
|
||||
site->Release();
|
||||
return hr;
|
||||
|
@ -90,7 +90,7 @@ HRESULT WINAPI CStartMenuSite_Wrapper(ITrayPriv * trayPriv, REFIID riid, LPVOID
|
|||
|
||||
hr = site->QueryInterface(riid, ppv);
|
||||
|
||||
if (FAILED(hr))
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
site->Release();
|
||||
|
||||
return hr;
|
||||
|
@ -105,9 +105,9 @@ HRESULT CStartMenuSiteWrap::InitWrap(ITrayPriv * bandSite)
|
|||
m_ITrayPriv = bandSite;
|
||||
|
||||
hr = bandSite->QueryInterface(IID_PPV_ARG(IServiceProvider, &m_IServiceProvider));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = bandSite->QueryInterface(IID_PPV_ARG(IOleWindow, &m_IOleWindow));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
hr = bandSite->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &m_IOleCommandTarget));
|
||||
return hr;
|
||||
}
|
||||
|
|
|
@ -87,3 +87,9 @@ Win32DbgPrint(const char *filename, int line, const char *lpFormat, ...)
|
|||
|
||||
#define DbgPrint(fmt, ...) \
|
||||
Win32DbgPrint(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
|
||||
|
||||
#if 1
|
||||
#define FAILED_UNEXPECTEDLY(hr) (FAILED(hr) && (DbgPrint("Unexpected failure %08x.\n", hr), TRUE))
|
||||
#else
|
||||
#define FAILED_UNEXPECTEDLY(hr) FAILED(hr)
|
||||
#endif
|
||||
|
|
|
@ -13,7 +13,7 @@ void WrapLogOpen()
|
|||
{
|
||||
if (openCount == 0)
|
||||
{
|
||||
log = fopen("G:\\RShellWrap.log", "w");
|
||||
log = fopen("C:\\RShellWrap.log", "w");
|
||||
nTemps = 0;
|
||||
callLevel = 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue