如何显示 shell 对象列表?

发布于 2024-12-01 23:57:33 字数 261 浏览 1 评论 0原文

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

我感觉我需要使用 IShellFolderView::AddObject ,但整个界面已被弃用,无论哪种方式,我都不知道如何真正让它工作。

我该怎么做呢?

I want to display an aggregate of shell items inside my List View control, gathered from different folders, similar to how Explorer's file search mechanism works.

I have a feeling I need to use IShellFolderView::AddObject, but the entire interface is deprecated, and either way, I can't figure out how to actually get this to work.

How would I go about doing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

负佳期 2024-12-08 23:57:33

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

如果您使用的是 Explorer 浏览器控件,请检查 Hilo 项目示例,它创建一个搜索文件夹,其范围为用户图书馆的聚合范围。您可以使用 CLSID_EnumerableObjectCollection 对象的 IObjectCollection 接口创建自己的文件夹集合。有关在 Explorer 浏览器控件中显示搜索文件夹的示例,请检查 Explorer 浏览器搜索示例

Since you insist on "getting" shell objects, I assume you are not using a list view control which require you to write your own shell support like the CMFCShellListCtrl does. It would be pretty trivial to add multiple folder support if you already wrote the code to display files from a single folder in a list view control.

If you are using the Explorer Browser control, check the Hilo project sample, it creates a search folder with a scope of the aggregation of the user's libraries. You can probably create your own folder collection by using the IObjectCollection interface of the CLSID_EnumerableObjectCollection object. For a sample of displaying a search folder in the Explorer Browser control, check the Explorer Browser Search Sample

叫思念不要吵 2024-12-08 23:57:33

如果它是您的列表视图控件,那么您可以只使用 ListView_InsertItem 每一项。从任意位置枚举对象并将它们添加到列表视图中。

If it's your listview control, then you can just ListView_InsertItem each one. Enumerate the objects from wherever you want and add them to your listview.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文