[PATCH v2 3/3] shell32: Reimplement SHBindToParent.
Mohamad Al-Jaf
mohamadaljaf at gmail.com
Sat Jun 11 23:13:37 CDT 2022
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf at gmail.com>
---
dlls/shell32/pidl.c | 38 +-------------------------------------
1 file changed, 1 insertion(+), 37 deletions(-)
diff --git a/dlls/shell32/pidl.c b/dlls/shell32/pidl.c
index e659427f9cd..59968b066e4 100644
--- a/dlls/shell32/pidl.c
+++ b/dlls/shell32/pidl.c
@@ -1339,43 +1339,7 @@ HRESULT WINAPI SHBindToFolderIDListParent(IShellFolder *psf, LPCITEMIDLIST pidl,
*/
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
{
- IShellFolder * psfDesktop;
- HRESULT hr=E_FAIL;
-
- TRACE_(shell)("pidl=%p\n", pidl);
- pdump(pidl);
-
- if (!pidl || !ppv)
- return E_INVALIDARG;
-
- *ppv = NULL;
- if (ppidlLast)
- *ppidlLast = NULL;
-
- hr = SHGetDesktopFolder(&psfDesktop);
- if (FAILED(hr))
- return hr;
-
- if (_ILIsPidlSimple(pidl))
- {
- /* we are on desktop level */
- hr = IShellFolder_QueryInterface(psfDesktop, riid, ppv);
- }
- else
- {
- LPITEMIDLIST pidlParent = ILClone(pidl);
- ILRemoveLastID(pidlParent);
- hr = IShellFolder_BindToObject(psfDesktop, pidlParent, NULL, riid, ppv);
- SHFree (pidlParent);
- }
-
- IShellFolder_Release(psfDesktop);
-
- if (SUCCEEDED(hr) && ppidlLast)
- *ppidlLast = ILFindLastID(pidl);
-
- TRACE_(shell)("-- psf=%p pidl=%p ret=0x%08lx\n", *ppv, (ppidlLast)?*ppidlLast:NULL, hr);
- return hr;
+ return SHBindToFolderIDListParent(NULL, pidl, riid, ppv, ppidlLast);
}
HRESULT WINAPI SHBindToObject(IShellFolder *psf, LPCITEMIDLIST pidl, IBindCtx *pbc, REFIID riid, void **ppv)
--
2.36.1
More information about the wine-devel
mailing list