https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b8f4f22ba207aa3491044…
commit b8f4f22ba207aa34910442c679b2196e8d23f417
Author: Charles Ambrye <giawa(a)hotmail.com>
AuthorDate: Sat Apr 18 22:34:08 2020 -0700
Commit: Giannis Adamopoulos <gadamopoulos(a)reactos.org>
CommitDate: Mon Apr 20 14:12:47 2020 +0300
[BROWSEUI] Attempt to parse absolute path even if relative path gets an unexpected
failure
Some 'BindToObject' methods are incomplete, and in some cases relative paths
are simply not possible (especially in special folders such as the desktop)
---
dll/win32/browseui/addresseditbox.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dll/win32/browseui/addresseditbox.cpp
b/dll/win32/browseui/addresseditbox.cpp
index f5748ec6c80..5d96b896171 100644
--- a/dll/win32/browseui/addresseditbox.cpp
+++ b/dll/win32/browseui/addresseditbox.cpp
@@ -146,11 +146,11 @@ HRESULT STDMETHODCALLTYPE CAddressEditBox::ParseNow(long paramC)
hr = pbs->GetPidl(&pidlCurrent);
if (FAILED_UNEXPECTEDLY(hr))
- goto cleanup;
+ goto parseabsolute;
hr = psfDesktop->BindToObject(pidlCurrent, NULL, IID_PPV_ARG(IShellFolder,
&psfCurrent));
if (FAILED_UNEXPECTEDLY(hr))
- goto cleanup;
+ goto parseabsolute;
hr = psfCurrent->ParseDisplayName(topLevelWindow, NULL, address, &eaten,
&pidlRelative, &attributes);
if (SUCCEEDED(hr))
@@ -160,6 +160,7 @@ HRESULT STDMETHODCALLTYPE CAddressEditBox::ParseNow(long paramC)
goto cleanup;
}
+parseabsolute:
/* We couldn't parse a relative path, attempt to parse an absolute path */
hr = psfDesktop->ParseDisplayName(topLevelWindow, NULL, address, &eaten,
&pidlLastParsed, &attributes);