Return correct attributes in ParseDisplayName.
This commit is contained in:
parent
a2479eca44
commit
8130a6eb44
@ -771,15 +771,14 @@ static HRESULT WINAPI UnixFolder_IShellFolder2_ParseDisplayName(IShellFolder2* i
|
|||||||
result = UNIXFS_path_to_pidl(This, lpszDisplayName, ppidl);
|
result = UNIXFS_path_to_pidl(This, lpszDisplayName, ppidl);
|
||||||
if (result && pdwAttributes && *pdwAttributes)
|
if (result && pdwAttributes && *pdwAttributes)
|
||||||
{
|
{
|
||||||
/* need to traverse to the last element for the attribute */
|
IShellFolder *pParentSF;
|
||||||
LPCITEMIDLIST pidl, last_pidl;
|
LPCITEMIDLIST pidlLast;
|
||||||
pidl = last_pidl = *ppidl;
|
HRESULT hr;
|
||||||
while(pidl && pidl->mkid.cb)
|
|
||||||
{
|
hr = SHBindToParent(This->m_pidlLocation, &IID_IShellFolder, (LPVOID*)&pParentSF, &pidlLast);
|
||||||
last_pidl = pidl;
|
if (FAILED(hr)) return E_FAIL;
|
||||||
pidl = ILGetNext(pidl);
|
IShellFolder_GetAttributesOf(pParentSF, 1, &pidlLast, pdwAttributes);
|
||||||
}
|
IShellFolder_Release(pParentSF);
|
||||||
SHELL32_GetItemAttributes((IShellFolder*)iface, last_pidl, pdwAttributes);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!result) TRACE("FAILED!\n");
|
if (!result) TRACE("FAILED!\n");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user