Module: wine Branch: refs/heads/master Commit: b52146d95fcf3d761632814955d0967d0ec3790e URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=b52146d95fcf3d7616328149...
Author: Michael Jung mjung@iss.tu-darmstadt.de Date: Sat Jan 14 17:10:53 2006 +0100
unixfs: Fix ParseDisplayName. Build an absolute pidl to query attributes in UnixFolder::ParseDisplayName.
---
dlls/shell32/shfldr_unixfs.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/dlls/shell32/shfldr_unixfs.c b/dlls/shell32/shfldr_unixfs.c index e5aee56..7ffdb9a 100644 --- a/dlls/shell32/shfldr_unixfs.c +++ b/dlls/shell32/shfldr_unixfs.c @@ -905,12 +905,18 @@ static HRESULT WINAPI UnixFolder_IShellF { IShellFolder *pParentSF; LPCITEMIDLIST pidlLast; + LPITEMIDLIST pidlComplete = ILCombine(This->m_pidlLocation, *ppidl); HRESULT hr;
- hr = SHBindToParent(*ppidl, &IID_IShellFolder, (LPVOID*)&pParentSF, &pidlLast); - if (FAILED(hr)) return E_FAIL; + hr = SHBindToParent(pidlComplete, &IID_IShellFolder, (LPVOID*)&pParentSF, &pidlLast); + if (FAILED(hr)) { + FIXME("SHBindToParent failed! hr = %08lx\n", hr); + ILFree(pidlComplete); + return E_FAIL; + } IShellFolder_GetAttributesOf(pParentSF, 1, &pidlLast, pdwAttributes); IShellFolder_Release(pParentSF); + ILFree(pidlComplete); }
if (!result) TRACE("FAILED!\n"); @@ -1272,7 +1278,7 @@ static HRESULT WINAPI UnixFolder_IShellF } else { - int len = MultiByteToWideChar(CP_UNIXCP, 0, szDest, -1, NULL, 0); + int len = MultiByteToWideChar(CP_UNIXCP, 0, szDest, -1, NULL, 0);
pwszDosDest = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); MultiByteToWideChar(CP_UNIXCP, 0, szDest, -1, pwszDosDest, len);