Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-18967

Taskbar toolbar - Right click > Open folder fails

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • 0.4.15
    • Shell

    Description

      0.4.8-dev-152-ge12763d : Works fine.
      0.4.13-dev-790-g0f16d44-x86-gcc-lin-dbg : No error but opens wrong folder (My Documents)
      0.4.15-dev-3847-g9b71653-x86-gcc-lin-dbg up to 0.4.15-dev-6000-g8b948ff-x86-gcc-lin-dbg : Error message

      • right click on Taskbar > Add toolbar > C: (or any other existing folder structure)
      • right click > Open Folder

      • Fails due to "non existing path"

      Function in cause : https://git.reactos.org/?p=reactos.git;a=blob;f=dll/win32/browseui/shellbars/CISFBand.cpp#l596

      In fact 2 regression in a row :

      Initial design by binarymaster working fine since 0.4.8-dev-152-ge12763d then broken leading to "My documents" to be open instead of expected folder (C: in this case)

      REGRESSION 1 : No longer opening C: but "My Documents" instead

       reactos-livecd-0.4.13-dev-789-g5972b1e-x86-gcc-lin-dbg 
      reactos-livecd-0.4.13-dev-790-g0f16d44-x86-gcc-lin-dbg (but opening "My documents")

      Guilty commit is 0f16d44 by reactosfanboy based on a patch by DougLyons  (Fixing CORE-6412 and CORE-12927) : https://github.com/reactos/reactos/commit/0f16d44b660266130f5c0807c01d01cfaa6e685d 

      REGRESSION 2 : No longer opening folder but showing an error

       reactos-livecd-0.4.15-dev-3846-gd64ab28-x86-gcc-lin-dbg (but opening "My documents" => other regression to be investigated once this one gets fixed)
       reactos-livecd-0.4.15-dev-3847-g9b71653-x86-gcc-lin-dbg

      Guilty commit is g9b71653 https://github.com/reactos/reactos/commit/9b716539182864bc077e362febcda74da50287ed which now prevents ShellExecute from executing non-exe files (here "open" verb on a folder) and ShellExecuteEx is used by IDM_OPEN_FOLDER processing in CISFBand::InvokeCommand https://git.reactos.org/?p=reactos.git;a=blob;f=dll/win32/browseui/shellbars/CISFBand.cpp#l608

      This change is wrong as looking at https://learn.microsoft.com/en-us/windows/win32/shell/launch no obvious reason to fails on non-exe files is indicated. Moreover it's used to open a folder and .bmp files in the exemple and not sure that using ShellExecuteEx with ITEMIDLIST structure (with SEE_MASK_IDLIST) is relevant for regular folders (when it's not for an object in the Shell namespace)

      Attachments

        1. shlexec-cpp-06.patch
          2 kB
        2. shlexec-cpp-05.patch
          2 kB
        3. shlexec+test-02.patch
          4 kB
        4. shlexec+test-01.patch
          6 kB
        5. ShellExecuteEx-02.patch
          4 kB
        6. ReactOS.log
          73 kB
        7. image-2023-05-08-11-52-08-831.png
          image-2023-05-08-11-52-08-831.png
          5 kB
        8. image-2023-05-08-11-51-52-413.png
          image-2023-05-08-11-51-52-413.png
          8 kB
        9. CORE-18967-04.patch
          2 kB

        Issue Links

          Activity

            People

              DougLyons DougLyons
              KRosUser KRosUser
              Votes:
              2 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: