- IShellFolder_fnParseDisplayName(): return E_INVALIDARG instead of E_OUTOFMEMORY. - IShellFolder_fnGetUIObjectOf(): preserve return error codes. - IShellFolder_fnGetDisplayNameOf(): don't initialize whole character array with zero.
diff --git a/dlls/shell32/shfldr_fs.c b/dlls/shell32/shfldr_fs.c index b25c3b2..9b47484 100644 --- a/dlls/shell32/shfldr_fs.c +++ b/dlls/shell32/shfldr_fs.c
@@ -325,7 +325,7 @@ { _ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface) - HRESULT hr = E_OUTOFMEMORY; + HRESULT hr = E_INVALIDARG; LPCWSTR szNext = NULL; WCHAR szElement[MAX_PATH]; CHAR szPath[MAX_PATH]; @@ -583,7 +583,7 @@ hr = E_NOINTERFACE; } - if (!pObj) + if (SUCCEEDED(hr) && !pObj) hr = E_OUTOFMEMORY; *ppvOut = pObj; @@ -652,10 +652,12 @@ { _ICOM_THIS_From_IShellFolder2 (IGenericSFImpl, iface) - CHAR szPath[MAX_PATH] = ""; + CHAR szPath[MAX_PATH]; int len = 0; BOOL bSimplePidl; + *szPath = '\0'; + TRACE ("(%p)->(pidl=%p,0x%08lx,%p)\n", This, pidl, dwFlags, strRet); pdump (pidl);