如何显示shell对象列表?

如何显示shell对象列表?

问题描述:

我想在我的列表视图控件中显示汇总的不同文件夹中的外壳项目集合,类似于Explorer的文件搜索机制如何工作如何显示shell对象列表?

我有一种感觉,我需要使用IShellFolderView::AddObject,但整个界面已被弃用,无论如何,我无法弄清楚如何实际得到这个工作。

我该怎么做呢?

如果它是你的listview控件,那么你可以只使用ListView_InsertItem中的每一个。从你想要的任何地方枚举对象并将它们添加到你的列表视图中。

+0

然后,它们不再是shell对象。例如。右键单击不起作用,拖放不起作用,更改检测不起作用,等等等等。 – Mehrdad

+0

这对您来说是非常重要的。如果你想管理自己的列表视图,那么你有责任管理界面。如果您希望其他人管理界面,请使用ExplorerBrowser控件。我认为你已经有一个工作列表视图,这些项目来自单个文件夹,并且你想将它扩展到多个文件夹。很抱歉对于这个误会。 –

由于你坚持“获取”shell对象,我假设你没有使用列表视图控件,它需要你编写自己的shell支持,比如CMFCShellListCtrl。如果您已经编写了代码以显示列表视图控件中单个文件夹中的文件,那么添加多个文件夹支持将会非常简单。

如果您使用Explorer Browser控件,请检查the Hilo project sample,它会创建一个搜索文件夹,其中包含用户库的聚合范围。您可以通过使用CLSID_EnumerableObjectCollection对象的IObjectCollection接口创建自己的文件夹集合。有关在Explorer浏览器控件中显示搜索文件夹的示例,请检查Explorer Browser Search Sample