https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b8f4f22ba207aa34910442...
commit b8f4f22ba207aa34910442c679b2196e8d23f417 Author: Charles Ambrye giawa@hotmail.com AuthorDate: Sat Apr 18 22:34:08 2020 -0700 Commit: Giannis Adamopoulos gadamopoulos@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);