diff --git a/dlls/commdlg/filedlg95.c b/dlls/commdlg/filedlg95.c index 26c79150adbf82936de40a4ef9c4cbf012a962d5..e84147ab1fbedbbe987754d5f427f05d35cade9c 100644 --- a/dlls/commdlg/filedlg95.c +++ b/dlls/commdlg/filedlg95.c @@ -2693,7 +2693,7 @@ LPITEMIDLIST GetParentPidl(LPITEMIDLIST pidl) * GetPidlFromName * * returns the pidl of the file name relative to folder - * NULL if an error occured + * NULL if an error occurred */ LPITEMIDLIST GetPidlFromName(IShellFolder *lpsf,LPCSTR lpcstrFileName) { @@ -2704,7 +2704,8 @@ LPITEMIDLIST GetPidlFromName(IShellFolder *lpsf,LPCSTR lpcstrFileName) TRACE("sf=%p file=%s\n", lpsf, lpcstrFileName); if(!lpcstrFileName) return NULL; - + if(!*lpcstrFileName) return NULL; + MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,lpcstrFileName,-1,(LPWSTR)lpwstrDirName,MAX_PATH); if(!lpsf) diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c index 49130c5e50ffc9f0eedebe0e555f5cd6fb615105..31fc1c7acd8bdca55bd049a856634b0ea35d3b46 100644 --- a/dlls/shell32/shlfolder.c +++ b/dlls/shell32/shlfolder.c @@ -682,7 +682,10 @@ static HRESULT WINAPI IShellFolder_fnParseDisplayName( } } - *ppidl = pidlTemp; + if (!hr) + *ppidl = pidlTemp; + else + *ppidl = NULL; TRACE("(%p)->(-- pidl=%p ret=0x%08lx)\n", This, ppidl? *ppidl:0, hr);