shell32: Fix getting parent shell folder when it's the desktop folder.
Vincent Povirk
madewokherd at gmail.com
Fri Aug 14 15:03:05 CDT 2015
-------------- next part --------------
From 2072f43762e3f12aa5855dfbe08f6f61ff8a85f1 Mon Sep 17 00:00:00 2001
From: Vincent Povirk <vincent at codeweavers.com>
Date: Fri, 14 Aug 2015 14:55:20 -0500
Subject: [PATCH] shell32: Fix getting parent shell folder when it's the
desktop folder.
BindToObject fails in this case.
---
dlls/shell32/shellitem.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/dlls/shell32/shellitem.c b/dlls/shell32/shellitem.c
index 853325c..f64c2d0 100644
--- a/dlls/shell32/shellitem.c
+++ b/dlls/shell32/shellitem.c
@@ -143,8 +143,15 @@ static HRESULT ShellItem_get_parent_shellfolder(ShellItem *This, IShellFolder **
ret = SHGetDesktopFolder(&desktop);
if (SUCCEEDED(ret))
{
- ret = IShellFolder_BindToObject(desktop, parent_pidl, NULL, &IID_IShellFolder, (void**)ppsf);
- IShellFolder_Release(desktop);
+ if (_ILIsDesktop(parent_pidl))
+ {
+ *ppsf = desktop;
+ }
+ else
+ {
+ ret = IShellFolder_BindToObject(desktop, parent_pidl, NULL, &IID_IShellFolder, (void**)ppsf);
+ IShellFolder_Release(desktop);
+ }
}
ILFree(parent_pidl);
}
--
2.1.4
More information about the wine-patches
mailing list