Background: I am implementing a namespace extension to provide a virtual view of files and folders on a server. I started with a Microsoft SDK sample explorerdataprovider. I modified the enumeration logic and changed menu items to suit my requirements.
Problem:
In the IShellFolder::GetAttributesOf()
function, I mark the item with the flags SFGAO_CANDELETE|SFGAO_CANRENAME
. It calls IShellFolder::SetNameOf()
when a rename is attempted. But when I attempt a delete operation (by pressing the delete key), I see no interfaces available in IShellFolder
, which seems to be called for handling delete.
Note: I can add my own menu item in the context menu to handle this, but it will not be called if delete is initiated using the keyboard, and the user will not see the standard dialog of "Are you sure you want to delete this?".
Please advise me how to handle delete in the namespace extension.
I think actually manipulating the data in a folder is done via its IStorage interface.
It has a method called
DestroyElement
.