[SHELL32]

- Make some checks for failure in CDefView and CDefaultContextMenu noisy.

svn path=/trunk/; revision=73187
This commit is contained in:
Giannis Adamopoulos 2016-11-10 08:05:13 +00:00
parent f6c36fb82e
commit d2812c3e70
3 changed files with 44 additions and 26 deletions

View file

@ -1212,7 +1212,11 @@ HRESULT CDefView::InvokeContextMenuCommand(UINT uCommand)
if (GetKeyState(VK_CONTROL) & 0x8000) if (GetKeyState(VK_CONTROL) & 0x8000)
cmi.fMask |= CMIC_MASK_CONTROL_DOWN; cmi.fMask |= CMIC_MASK_CONTROL_DOWN;
return m_pCM->InvokeCommand(&cmi); HRESULT hr = m_pCM->InvokeCommand(&cmi);
if (FAILED_UNEXPECTEDLY(hr))
return hr;
return S_OK;
} }
/********************************************************** /**********************************************************
@ -1237,13 +1241,13 @@ HRESULT CDefView::OpenSelectedItems()
return E_FAIL; return E_FAIL;
hResult = GetItemObject(SVGIO_SELECTION, IID_PPV_ARG(IContextMenu, &m_pCM)); hResult = GetItemObject(SVGIO_SELECTION, IID_PPV_ARG(IContextMenu, &m_pCM));
if (FAILED(hResult)) if (FAILED_UNEXPECTEDLY(hResult))
goto cleanup; goto cleanup;
IUnknown_SetSite(m_pCM, (IShellView *)this); IUnknown_SetSite(m_pCM, (IShellView *)this);
hResult = m_pCM->QueryContextMenu(hMenu, 0, 0x20, 0x7fff, CMF_DEFAULTONLY); hResult = m_pCM->QueryContextMenu(hMenu, 0, 0x20, 0x7fff, CMF_DEFAULTONLY);
if (FAILED(hResult)) if (FAILED_UNEXPECTEDLY(hResult))
goto cleanup; goto cleanup;
uCommand = GetMenuDefaultItem(hMenu, FALSE, 0); uCommand = GetMenuDefaultItem(hMenu, FALSE, 0);
@ -1290,13 +1294,13 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
m_cidl = m_ListView.GetSelectedCount(); m_cidl = m_ListView.GetSelectedCount();
hResult = GetItemObject( m_cidl ? SVGIO_SELECTION : SVGIO_BACKGROUND, IID_PPV_ARG(IContextMenu, &m_pCM)); hResult = GetItemObject( m_cidl ? SVGIO_SELECTION : SVGIO_BACKGROUND, IID_PPV_ARG(IContextMenu, &m_pCM));
if (FAILED( hResult)) if (FAILED_UNEXPECTEDLY(hResult))
goto cleanup; goto cleanup;
IUnknown_SetSite(m_pCM, (IShellView *)this); IUnknown_SetSite(m_pCM, (IShellView *)this);
hResult = m_pCM->QueryContextMenu(m_hContextMenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, CMF_NORMAL); hResult = m_pCM->QueryContextMenu(m_hContextMenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, CMF_NORMAL);
if (FAILED( hResult)) if (FAILED_UNEXPECTEDLY(hResult))
goto cleanup; goto cleanup;
uCommand = TrackPopupMenu(m_hContextMenu, uCommand = TrackPopupMenu(m_hContextMenu,
@ -1336,13 +1340,13 @@ LRESULT CDefView::OnExplorerCommand(UINT uCommand, BOOL bUseSelection)
return 0; return 0;
hResult = GetItemObject( bUseSelection ? SVGIO_SELECTION : SVGIO_BACKGROUND, IID_PPV_ARG(IContextMenu, &m_pCM)); hResult = GetItemObject( bUseSelection ? SVGIO_SELECTION : SVGIO_BACKGROUND, IID_PPV_ARG(IContextMenu, &m_pCM));
if (FAILED( hResult)) if (FAILED_UNEXPECTEDLY( hResult))
goto cleanup; goto cleanup;
IUnknown_SetSite(m_pCM, (IShellView *)this); IUnknown_SetSite(m_pCM, (IShellView *)this);
hResult = m_pCM->QueryContextMenu(hMenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, CMF_NORMAL); hResult = m_pCM->QueryContextMenu(hMenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, CMF_NORMAL);
if (FAILED( hResult)) if (FAILED_UNEXPECTEDLY( hResult))
goto cleanup; goto cleanup;
InvokeContextMenuCommand(uCommand); InvokeContextMenuCommand(uCommand);
@ -1688,11 +1692,8 @@ LRESULT CDefView::OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandl
if (m_pSF2Parent) if (m_pSF2Parent)
{ {
SHELLDETAILS sd; SHELLDETAILS sd;
if (FAILED(m_pSF2Parent->GetDetailsOf(pidl, lpdi->item.iSubItem, &sd))) if (FAILED_UNEXPECTEDLY(m_pSF2Parent->GetDetailsOf(pidl, lpdi->item.iSubItem, &sd)))
{
FIXME("failed to get details\n");
break; break;
}
if (lpnmh->code == LVN_GETDISPINFOA) if (lpnmh->code == LVN_GETDISPINFOA)
{ {
@ -2228,7 +2229,7 @@ HRESULT WINAPI CDefView::GetItemObject(UINT uItem, REFIID riid, LPVOID *ppvOut)
IContextMenu* pcm; IContextMenu* pcm;
hr = CDefFolderMenu_Create2(NULL, NULL, 0, NULL, m_pSFParent, NULL, 0, NULL, &pcm); hr = CDefFolderMenu_Create2(NULL, NULL, 0, NULL, m_pSFParent, NULL, 0, NULL, &pcm);
if (FAILED(hr)) if (FAILED_UNEXPECTEDLY(hr))
return hr; return hr;
*ppvOut = pcm; *ppvOut = pcm;
} }
@ -2238,9 +2239,7 @@ HRESULT WINAPI CDefView::GetItemObject(UINT uItem, REFIID riid, LPVOID *ppvOut)
{ {
hr = CDefViewDual_Constructor(riid, (LPVOID*)&m_pShellFolderViewDual); hr = CDefViewDual_Constructor(riid, (LPVOID*)&m_pShellFolderViewDual);
if (FAILED_UNEXPECTEDLY(hr)) if (FAILED_UNEXPECTEDLY(hr))
{
return hr; return hr;
}
} }
hr = m_pShellFolderViewDual->QueryInterface(riid, ppvOut); hr = m_pShellFolderViewDual->QueryInterface(riid, ppvOut);
} }
@ -2249,6 +2248,8 @@ HRESULT WINAPI CDefView::GetItemObject(UINT uItem, REFIID riid, LPVOID *ppvOut)
case SVGIO_SELECTION: case SVGIO_SELECTION:
GetSelections(); GetSelections();
hr = m_pSFParent->GetUIObjectOf(m_hWnd, m_cidl, m_apidl, riid, 0, ppvOut); hr = m_pSFParent->GetUIObjectOf(m_hWnd, m_cidl, m_apidl, riid, 0, ppvOut);
if (FAILED_UNEXPECTEDLY(hr))
return hr;
break; break;
} }

View file

@ -360,9 +360,7 @@ CDefaultContextMenu::LoadDynamicContextMenuHandler(HKEY hKey, const CLSID *pclsi
PDynamicShellEntry pEntry = (DynamicShellEntry *)HeapAlloc(GetProcessHeap(), 0, sizeof(DynamicShellEntry)); PDynamicShellEntry pEntry = (DynamicShellEntry *)HeapAlloc(GetProcessHeap(), 0, sizeof(DynamicShellEntry));
if (!pEntry) if (!pEntry)
{
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
}
pEntry->iIdCmdFirst = 0; pEntry->iIdCmdFirst = 0;
pEntry->pNext = NULL; pEntry->pNext = NULL;
@ -829,7 +827,11 @@ HRESULT CDefaultContextMenu::DoRefresh(LPCMINVOKECOMMANDINFO lpcmi)
if (FAILED_UNEXPECTEDLY(hr)) if (FAILED_UNEXPECTEDLY(hr))
return hr; return hr;
return psv->Refresh(); hr = psv->Refresh();
if (FAILED_UNEXPECTEDLY(hr))
return hr;
return S_OK;
} }
HRESULT CDefaultContextMenu::DoPaste(LPCMINVOKECOMMANDINFO lpcmi, BOOL bLink) HRESULT CDefaultContextMenu::DoPaste(LPCMINVOKECOMMANDINFO lpcmi, BOOL bLink)
@ -932,7 +934,11 @@ HRESULT CDefaultContextMenu::DoCopyOrCut(LPCMINVOKECOMMANDINFO lpcmi, BOOL bCopy
m_pDataObj->SetData(&formatetc, &medium, TRUE); m_pDataObj->SetData(&formatetc, &medium, TRUE);
} }
return OleSetClipboard(m_pDataObj); HRESULT hr = OleSetClipboard(m_pDataObj);
if (FAILED_UNEXPECTEDLY(hr))
return hr;
return S_OK;
} }
HRESULT CDefaultContextMenu::DoRename(LPCMINVOKECOMMANDINFO lpcmi) HRESULT CDefaultContextMenu::DoRename(LPCMINVOKECOMMANDINFO lpcmi)
@ -954,7 +960,10 @@ HRESULT CDefaultContextMenu::DoRename(LPCMINVOKECOMMANDINFO lpcmi)
return hr; return hr;
SVSIF selFlags = SVSI_DESELECTOTHERS | SVSI_EDIT | SVSI_ENSUREVISIBLE | SVSI_FOCUSED | SVSI_SELECT; SVSIF selFlags = SVSI_DESELECTOTHERS | SVSI_EDIT | SVSI_ENSUREVISIBLE | SVSI_FOCUSED | SVSI_SELECT;
lpSV->SelectItem(m_apidl[0], selFlags); hr = lpSV->SelectItem(m_apidl[0], selFlags);
if (FAILED_UNEXPECTEDLY(hr))
return hr;
return S_OK; return S_OK;
} }
@ -1115,10 +1124,12 @@ CDefaultContextMenu::DoCreateNewFolder(
hr = psv->SelectItem(pidlNewItem, SVSI_DESELECTOTHERS | SVSI_EDIT | SVSI_ENSUREVISIBLE | hr = psv->SelectItem(pidlNewItem, SVSI_DESELECTOTHERS | SVSI_EDIT | SVSI_ENSUREVISIBLE |
SVSI_FOCUSED | SVSI_SELECT); SVSI_FOCUSED | SVSI_SELECT);
if (FAILED_UNEXPECTEDLY(hr))
return hr;
SHFree(pidl); SHFree(pidl);
return hr; return S_OK;
} }
PDynamicShellEntry CDefaultContextMenu::GetDynamicEntry(UINT idCmd) PDynamicShellEntry CDefaultContextMenu::GetDynamicEntry(UINT idCmd)
@ -1216,7 +1227,7 @@ CDefaultContextMenu::BrowserFlagsFromVerb(LPCMINVOKECOMMANDINFO lpcmi, PStaticSh
/* Try to get the flag from the verb */ /* Try to get the flag from the verb */
hr = StringCbPrintfW(wszKey, sizeof(wszKey), L"shell\\%s", pEntry->szVerb); hr = StringCbPrintfW(wszKey, sizeof(wszKey), L"shell\\%s", pEntry->szVerb);
if (!SUCCEEDED(hr)) if (FAILED_UNEXPECTEDLY(hr))
return 0; return 0;
cbVerb = sizeof(wFlags); cbVerb = sizeof(wFlags);
@ -1650,7 +1661,11 @@ SHCreateDefaultContextMenu(const DEFCONTEXTMENU *pdcm, REFIID riid, void **ppv)
if (!pdcm->aKeys && pdcm->cidl) if (!pdcm->aKeys && pdcm->cidl)
HackFillKeys((DEFCONTEXTMENU *)pdcm, hkeyHack); HackFillKeys((DEFCONTEXTMENU *)pdcm, hkeyHack);
return CDefaultContextMenu_CreateInstance(pdcm, riid, ppv); HRESULT hr = CDefaultContextMenu_CreateInstance(pdcm, riid, ppv);
if (FAILED_UNEXPECTEDLY(hr))
return hr;
return S_OK;
} }
/************************************************************************* /*************************************************************************
@ -1683,6 +1698,8 @@ CDefFolderMenu_Create2(
pdcm.aKeys = ahkeyClsKeys; pdcm.aKeys = ahkeyClsKeys;
HRESULT hr = SHCreateDefaultContextMenu(&pdcm, IID_PPV_ARG(IContextMenu, ppcm)); HRESULT hr = SHCreateDefaultContextMenu(&pdcm, IID_PPV_ARG(IContextMenu, ppcm));
return hr; if (FAILED_UNEXPECTEDLY(hr))
} return hr;
return S_OK;
}

View file

@ -54,8 +54,8 @@ HRESULT WINAPI CPrintersExtractIconW_CreateInstane(LPCITEMIDLIST pidl, REFIID ri
{ {
CComPtr<IDefaultExtractIconInit> initIcon; CComPtr<IDefaultExtractIconInit> initIcon;
HRESULT hr = SHCreateDefaultExtractIcon(IID_PPV_ARG(IDefaultExtractIconInit,&initIcon)); HRESULT hr = SHCreateDefaultExtractIcon(IID_PPV_ARG(IDefaultExtractIconInit,&initIcon));
if (FAILED(hr)) if (FAILED_UNEXPECTEDLY(hr))
return NULL; return hr;
/* FIXME: other icons for default, network, print to file */ /* FIXME: other icons for default, network, print to file */
initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_PRINTER); initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_PRINTER);