Correct error handling in SHELL32_ParseNextElement().

This commit is contained in:
Martin Fuchs 2004-04-15 04:55:54 +00:00 committed by Alexandre Julliard
parent bc2328fcf2
commit 849337b9b6
1 changed files with 6 additions and 4 deletions

View File

@ -118,14 +118,16 @@ HRESULT SHELL32_ParseNextElement (IShellFolder2 * psf, HWND hwndOwner, LPBC pbc,
/* get the shellfolder for the child pidl and let it analyse further */ /* get the shellfolder for the child pidl and let it analyse further */
hr = IShellFolder_BindToObject (psf, *pidlInOut, pbc, &IID_IShellFolder, (LPVOID *) & psfChild); hr = IShellFolder_BindToObject (psf, *pidlInOut, pbc, &IID_IShellFolder, (LPVOID *) & psfChild);
if (SUCCEEDED (hr)) { if (SUCCEEDED(hr)) {
hr = IShellFolder_ParseDisplayName (psfChild, hwndOwner, pbc, szNext, pEaten, &pidlOut, pdwAttributes); hr = IShellFolder_ParseDisplayName (psfChild, hwndOwner, pbc, szNext, pEaten, &pidlOut, pdwAttributes);
IShellFolder_Release (psfChild); IShellFolder_Release (psfChild);
pidlTemp = ILCombine (*pidlInOut, pidlOut); if (SUCCEEDED(hr)) {
pidlTemp = ILCombine (*pidlInOut, pidlOut);
if (!pidlTemp) if (!pidlTemp)
hr = E_OUTOFMEMORY; hr = E_OUTOFMEMORY;
}
if (pidlOut) if (pidlOut)
ILFree (pidlOut); ILFree (pidlOut);