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 [FORMATTING] Remove trailing whitespace. Addendum to 34593d93. 2021-09-13 03:52:22 +02:00
CAdminToolsFolder.h [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CControlPanelFolder.cpp [SHELL32] Tweak formatting and logging 2024-02-20 02:08:56 +01:00
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 [SHELL32] Allow using custom desktop/folders/drives icons (#6421) 2024-02-29 00:20:47 +03:00
CDrivesFolder.h [SHELL32] Use STDMETHOD macro and keyword override (#6570) 2024-03-05 08:43:39 +09:00
CFontsFolder.cpp [FORMATTING] Remove trailing whitespace. Addendum to 34593d93. 2021-09-13 03:52:22 +02:00
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 [SHELL32] CMyDocsFolder: Ensure the object can be used without calling Initialize 2020-04-20 17:36:44 +03:00
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 [SHELL32] CPrinterFolder: Validate string pointers properly. (#4486) 2022-05-05 16:24:38 +02:00
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