• last updated 43 mins ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
[SHELL32]

-CRegFolder: Implement CRegFolder::EnumObjects. Change its constructor to receive an extra parameter for the name of the key that should be enumerated.

-CEnumIDListBase: Add a new method called AppendItemsFromEnumerator to facilitate merging the contents from one IEnumIDList to another.

-Use the above in the enumerators of CControlPanelFolder, CDesktopFolder and CDrivesFolder to make them significantly simpler.

  1. … 6 more files in changeset.
[SHELL32]

- Simplify SHELL32_CoCreateInitSF by letting the callers fill the PERSIST_FOLDER_TARGET_INFO. This lets us stop using _ILSimpleGetTextW in it which breaks the logic that pidls should be read only by their shell folder. Also add an overload for SHELL32_CoCreateInitSF that makes it simpler to create a shell folder with a csidl.

- Add a SHELL32_BindToSF helper to share some logic that was duplicated in several shell folders.

- Move SHELL32_GetCustomFolderAttributeFromPath, SHELL32_GetCLSIDForDirectory and SHELL32_GetFSItemAttributes, SHELL32_BindToFS to CFSFolder.cpp as these were fs specific.

- These changes give finer control to shell folders for how the bind will be done and shares more logic that can be shared.

  1. … 9 more files in changeset.
[SHELL32] -Add Comments as the 2nd column in CDesktopFolder, CDrivesFolder and CRegFolder. Add Type as the 3rd column in CRegFolder. This is not entirely correct. Our columns support is rudimentary, however we now show the comments stuff in the right place and the reg folder items have a type.
  1. … 3 more files in changeset.
[SHELL32]

- CDefaultContextMenu: Add rudimentary support for callbacks so as to let folders have item specific commands and remove all item specific code from this class.

- Implement context menu callbacks for CFSFolder, CRegFolder, CDrivesFolder in order to let them handle the properties item and let the CDrivesFolder add and handle the Format item itself.

  1. … 12 more files in changeset.
[SHELL32]

- Implement filling in needed keys passed to CDefFolderMenu_Create2.

- CDefaultContextMenu: Remove the code that filled the array of keys as this is now moved to the implementation of the shell folder.

  1. … 7 more files in changeset.
[SHELL32] - Accept NULL pidl in CRegFolder::GetDisplayNameOf. CORE-12317
[SHELL32]

- Only specific shell folders are supposed to return their display name. Consequently, only CRegFolder reads the registry now to get the display name of items.

  1. … 7 more files in changeset.
[SHELL32]

- Implement comparing child items in CompareIDs method of our IShellFolder immplementation in shell32 as this is the expected behaviour according to tests and documentation.

- This was removed after each folder got its own implementation (we used a single one from wine that did handle it).

May fix CORE-12106.

  1. … 4 more files in changeset.
[SHELL32]

- HCR_GetFolderAttributes already calls GetAttributesOf when needed, calling it when it is not needed can lead to crashes.

[SHELL32]

- Get rid of the functions that handle guid pidls and move their implementation in CRegFolder.cpp.

  1. … 4 more files in changeset.
[SHELL32]

- Add CRegFolder using the guid item specific functions. So far it is only partly implemented with stuff like enumerating still missing.

- Use CRegFolder in CDesktopFolder, CDrivesFolder and CControlPanelFolder and stop using guid item specific functions.

  1. … 9 more files in changeset.