reactos/dll/win32/shell32/folders
Whindmar Saksit a83e40f6d1
[SHELL32] Fix FS folder assoc array class order (#6047)
Fixes the reg class key order for FS items. The existing code was close,
but for some reason used `//` as the path separator for SystemFileAssociations!

- Fixed SystemFileAssociations.

- Swapped the order of `*` and `AllFilesystemObjects`. This is the documented
  order and can also be observed in Process Monitor.
  https://learn.microsoft.com/en-us/windows/win32/shell/fa-associationarray#about-association-arrays

- Removed `(..., L"%s//%s", extension, wszClass)`, this does not seem to be
  a valid thing (`.TestAAExtWeird` in my tests).

- Adds the `Unknown` class when appropriate. Not adding the `openas` verb
  to `Unknown` rgs registration now to mimic Windows, because ROS
  `CDefaultContextMenu` lacks verb de-duplication and the menu would end up
  with two "Open With" entries. This just uses `(cidl == 1)` to simulate
  Windows, while Windows on NT6 uses `MultiSelectModel=Single`, a NT6 feature
  not implemented in ROS.

- The class order for folders was wrong and is still "wrong" in this PR,
  but I chose to use the Windows menu display order until the exact mechanics
  required in `CDefaultContextMenu` can be understood.

- Extracts the extension from ANSI PIDLs.
2024-03-24 21:37:59 +01:00
..
CAdminToolsFolder.cpp
CAdminToolsFolder.h [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CControlPanelFolder.cpp
CControlPanelFolder.h [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CDesktopFolder.cpp [SHELL32] Fix FS folder assoc array class order (#6047) 2024-03-24 21:37:59 +01:00
CDesktopFolder.h [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CDrivesFolder.cpp
CDrivesFolder.h [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CFontsFolder.cpp
CFontsFolder.h [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CFSFolder.cpp [SHELL32] Fix FS folder assoc array class order (#6047) 2024-03-24 21:37:59 +01:00
CFSFolder.h [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CMyDocsFolder.cpp
CMyDocsFolder.h [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CNetFolder.cpp
CNetFolder.h [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CPrinterFolder.cpp
CPrinterFolder.h [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CRecycleBin.cpp [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CRecycleBin.h [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CRegFolder.cpp [SHELL32] CGuidItemContextMenu: Fix pwszCLSID leak (#6607) 2024-03-12 16:10:59 +09:00