我正在为Vista和Windows 7编写一个Explorer扩展。我读到如果你要进行命名空间扩展,你可以使用 IExplorerCommandProvider 提供自己的命令。这是为了响应 IShellFolder :: CreateViewObject 。
我不是在编写命名空间扩展,而是一个允许您在资源管理器中执行操作的工具栏。所以我需要从现有的 IShellFolder 中获取 IExplorerCommandProvider 。
我从 IShellBrowser 获取 IShellView ,然后将其转换为 IFolderView ,然后我获得 IShellFolder 。到现在为止还挺好。我得到一个有效的文件夹指针。
然而,这不起作用:
pShellFolder-> CreateViewObject(NULL,IID_IExplorerCommandProvider,&安培; P); //返回E_NOINTERFACE
我尝试为 CreateViewObject 的 hwnd 参数传递不同的值,从文件窗格开始,一直到顶级资源管理器窗口,没有他们工作了。
所以我的问题是:
1)常规文件系统文件夹是否支持 IExplorerCommandProvider ?
2)如果他们这样做,我如何得到那个界面?
感谢
IVO