Winapi 如何显示外壳对象列表?

Winapi 如何显示外壳对象列表?,winapi,atl,windows-shell,Winapi,Atl,Windows Shell,我想在我的列表视图控件中显示从不同文件夹收集的shell项的集合,类似于资源管理器的文件搜索机制的工作方式 我有一种感觉,我需要使用,但整个界面都不推荐使用,而且无论哪种方式,我都不知道如何真正让它工作 我该怎么做呢?如果是您的listview控件,那么您只需在每个控件中插入listview即可。从任意位置枚举对象并将其添加到listview。由于您坚持“获取”shell对象,我假设您没有使用列表视图控件,该控件要求您像CMFCShellListCtrl那样编写自己的shell支持。如果您已经编

我想在我的列表视图控件中显示从不同文件夹收集的shell项的集合,类似于资源管理器的文件搜索机制的工作方式

我有一种感觉,我需要使用,但整个界面都不推荐使用,而且无论哪种方式,我都不知道如何真正让它工作


我该怎么做呢?

如果是您的listview控件,那么您只需在每个控件中插入listview即可。从任意位置枚举对象并将其添加到listview。

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


如果您使用的是Explorer浏览器控件,请选中,它将创建一个搜索文件夹,其中包含用户库的聚合范围。您可能可以使用CLSID_EnumerableObjectCollection对象的IObjectCollection接口创建自己的文件夹集合。有关在Explorer浏览器控件中显示搜索文件夹的示例,请选中

,然后它们不再是shell对象。例如,右键单击不起作用,拖放不起作用,更改检测不起作用,等等,等等……这些都是你需要连接的。如果您想管理自己的listview,那么您需要负责管理接口。如果希望其他人管理该接口,请使用ExplorerBrowser控件。我假设您已经有了一个工作列表视图,其中项目来自单个文件夹,并且您希望将其扩展到多个文件夹。对不起,误会了。