Windows 删除操作的命名空间扩展中的入口点是什么?

Windows 删除操作的命名空间扩展中的入口点是什么?,windows,com,windows-shell,shell-extensions,Windows,Com,Windows Shell,Shell Extensions,背景: 我正在实现一个名称空间扩展,以提供服务器上文件和文件夹的虚拟视图。我从一个MicrosoftSDK示例explorerdataprovider开始。我修改了枚举逻辑并更改了菜单项以满足我的需求 问题: 在IShellFolder::GetAttributesOf()函数中,我用标志SFGAO_CANDELETE | SFGAO_CANRENAME标记该项。尝试重命名时,它调用IShellFolder::SetNameOf()。但是,当我尝试执行删除操作(通过按delete键)时,我在IS

背景: 我正在实现一个名称空间扩展,以提供服务器上文件和文件夹的虚拟视图。我从一个MicrosoftSDK示例explorerdataprovider开始。我修改了枚举逻辑并更改了菜单项以满足我的需求

问题:
IShellFolder::GetAttributesOf()
函数中,我用标志
SFGAO_CANDELETE | SFGAO_CANRENAME
标记该项。尝试重命名时,它调用
IShellFolder::SetNameOf()
。但是,当我尝试执行删除操作(通过按delete键)时,我在
IShellFolder
中看不到可用的接口,这似乎是为处理删除而调用的

注意: 我可以在上下文菜单中添加我自己的菜单项来处理此问题,但如果使用键盘启动删除,则不会调用该菜单项,并且用户将不会看到“是否确实要删除此项?”的标准对话框


请告诉我如何处理命名空间扩展中的删除。

我认为实际操作文件夹中的数据是通过其接口完成的


它有一个名为
DestroyElement

的方法,我认为IStorage不属于Shell接口。Explorer没有调用查询接口来请求IID_IStorage。啊,我可能被实现它的zip文件夹弄糊涂了。@MadhusudanNarayan,等等,如果扩展名的标志(IShellFolder.GetAttributesOf中的标志)不包含
SFGAO_存储
,Explorer还会尝试查询接口IStorage吗?另外,根据google的说法,它可以通过
IContextMenu::InvokeCommand()
调用。当然,这在google的“shell名称空间扩展删除操作”之前就已经完成了。第一次击中看起来像是朝着正确的方向前进。