https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b8f4f22ba207aa34910442c679b2196e8d23f417

commit b8f4f22ba207aa34910442c679b2196e8d23f417
Author:     Charles Ambrye <[email protected]>
AuthorDate: Sat Apr 18 22:34:08 2020 -0700
Commit:     Giannis Adamopoulos <[email protected]>
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);
 

Reply via email to