• last updated 5 hours 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]

- CDesktopFolder: Create the enumerators of the internal fs folders and add their items in its own list instead of calling CreateFolderEnumList which enumerates ... files.

- Remove CEnumIDListBase::CreateFolderEnumList and move its code to CFileSysEnum::Initialize.

  1. … 3 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] -Remove IShellView_Constructor and CDefView_Constructor. Use SHCreateShellFolderView and SHCreateShellFolderViewEx instead.
  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]

- Rename the resource identifiers for column names to make sense. Get rid of one called File. This was renamed to Name but was the same in other languages, now it is replaced by Name for good. We also had two strings for a column called Comments and I think that in some languages one was singular and the other was plural. We only need the plural one.

Note to translators: Please make sure that everything I changed makes sense. I had to edit all language files and there can be mistakes and typos.

  1. … 38 more files in changeset.
[SHELLUTILS.H]

- Remove the ShellObjectCreator templates that allowed the caller to pass an arbitrary interface pointer. Leaving only the templates that take an void ** ppv parameter means that the callers are forced to use IID_PPV_ARG. This makes it less likely to have a pointer to an wrong interface.

- Fix the callers to always use IID_PPV_ARG.

- Rewrite the ShellObjectCreator templates to create the objects using the ATL CreateInstance thus allowing internal ATL methods to be called.

[BROWSEUI]

-Let CBandSite_CreateInstance take an additional parameter for the outer object since CBandSite is aggregatable. Create the object using the ATL creator class.

  1. … 16 more files in changeset.
[SHELL32] Implement support for IID_IDropTarget in CDesktopFolder::GetUIObjectOf and CDrivesFolder::GetUIObjectOf. Fixes dragging items to the icons of My documents, Recycle bin or drive.
  1. … 1 more file in changeset.
[SHELL32]

- CDefViewBckgrndMenu : Add class to handle the background menu of the CDefView and handle stuff that previously were handled by CDefaultContextMenu. Let the shell folders fill their own part of the background context menu.

- CDefView: Create a CDefViewBckgrndMenu instead of a CDefaultContextMenu which was completely wrong.

- CDesktopFolder, CFSFolder: Implement returning the background context menu in CreateViewObject. Note that I am not completely sure that the callback should be adding the Properties item.

- CDefaultContextMenu: Remove code that was moved to CDefViewBckgrndMenu and try to improve the overzealous debug prints regarding the shell extensions.

CORE-12410, CORE-12472

  1. … 38 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]

- 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]

- 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.
[SHELL32]

- Don't hardcode the path in the shell namespace in any folder appart for CDesktopFolder and CDrivesFolder.

- Make SHELL32_CoCreateInitSF slightly more generic and use it when we need to create and initialise a shell folder.

- Now SHELL32_BindToFS is used only by CFSFolder but SHELL32_CoCreateInitSF still uses the generic _ILSimpleGetTextW (it accesses the pidl).

  1. … 15 more files in changeset.
[SHELLL32]

- Split GenericExtractIcon_CreateInstance into CGuidItemExtractIcon_CreateInstance, CFSExtractIcon_CreateInstance and CDrivesExtractIcon_CreateInstance.

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

- Remove a debug message that should have been removed before committing.

- Also fix a test failure.

[SHELL32]

- CDesktopFolder: Avoid doing any operation with pidls. Use the internal fs folders instead.

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

- lnk files are .. files so don't pretend that CDrivesFolder and CControlPanelFolder can contain lnk files.

- Don't create a full pidl just to parse it right away (which is a costly operation) when an IShellLink is queried from a folder.

- Fix a bug in CDesktopFolder::GetDisplayNameOf that was exposed by changes above.

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

- Remove IExtractIconA_Constructor and rename IExtractIconW_Constructor to GenericExtractIcon_CreateInstance which will handle both A and W.

- Make GenericExtractIcon_CreateInstance accept a pointer to a IShellFolder and a simple pidl.

- Avoid using SHGetPathFromIDListW. Use ILGetDisplayNameExW instead. May make loading icons for folders and exe files slightly faster as it does fewer I/O and less allocations.

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

- Add an overload of SHSetStrRet which loads strings by default from shell32.

- Remove some dead code fomr CDrivesFolder.

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

- Correctly handle desktop pidls in CDesktopFolder::CompareIDs. Based on a patch by Sylvain Deverre.

CORE-10747 CORE-10801 #resolve

[SHELL32]

- Correctly handle NULL pidls in CDesktopFolder::CompareIDs and CDrivesFolder::CompareIDs. Based on a patch by Sylvain Deverre.

CORE-10745 #resolve

CORE-10747

  1. … 1 more file in changeset.
[SHELL32]

- Implement CompareIDs for the folders in the shell namespace. The previous implementation was a generic solution that just compared names.

- CDefView: Implement using CompareIDs method from the IShellFolder. Remove the previous implementation that was hardcoded in the CDefView and worked mostly for file items.

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

- Add a few helper functions: SH_ParseGuidDisplayName, SHELL32_SetNameOfGuidItem, SHELL32_GetDetailsOfGuidItem.

- SHELL32_SetNameOfGuidItem is based on a patch for CORE-5995

- Use the helpers in CControlPanelFolder, CDesktopFolder and CDrivesFolder. Implements getting the comment and renaming registry items in these folders and share some more code.

  1. … 4 more files in changeset.
[SHELL32] - Remove Reactos only ISFHelper interface that is no longer used.
  1. … 6 more files in changeset.
[SHELL32]

- Rename SHELL32_BindToChild to SHELL32_BindToFS. Do not let it be used for guid items any more. Split SHELL32_GetCLSIDForDirectoryout of it and call it only when needed.

- Fix callers to use SHELL32_BindToGuidItem for guid items.

- Fix a bug in CFSFolder which marked folder items as files when a binding context was used.

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

- Make SHELL32_GetDisplayNameOfChild return the result via a STRRET. Fix all callers accordingly.

- Avoid any heap allocations if a shell folder needs to forward the GetDisplayNameOf call to a child.

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

- Remove SHELL32_GetItemAttributes for good. It is never a good idea to have one function that handles many types of pidls.

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

- Fix copy paste mistake in CDesktopFolder

[SHELL32]

- Don't use SHELL32_GetDisplayNameOfGUIDItem on the desktop folder. Fixes file open dialog. Giannis please review ;)