首页 > 解决方案 > IShellFolderView 的 RemoveObject 和 AddObject 方法的替代方案

问题描述

我知道IShellFolderView从 Windows 7 开始,Windows Shell 不再支持该接口。但是我仍然对该接口公开的方法(即RemoveObject和)感兴趣。AddObject以下调用不再编译

pShellView->QueryInterface(IID_IShellFolderView, (LPVOID*)&pShellFolderView)

因为 riid:IID_IShellFolderView不再存在于shlobj.h(最新的 sdk)中。我需要访问一些允许我在文件夹视图中删除/添加或(隐藏/显示)文件夹对象的方法。我读了一篇文章,建议进行以下调用:

SHShellFolderView_Message(?m_hwnd_cabinet?, SFVM_REMOVEOBJECT, (LPARAM)pidl);

但是它似乎没有产生任何效果。我怀疑可能提供的 hwnd(即 m_hwnd_cabinet)不是正确的。谁能告诉我正确的手柄是什么,我怎样才能生产它?还是有其他方法?

谢谢!


我正在尝试调整这个项目https://github.com/stefankueng/tools/blob/main/StExBar/src/Filter.cpp#L44但它使用 IID_IShellFolderView。

标签: windowswinapivisual-c++windows-shellshell-namespace-extension

解决方案


推荐阅读