【问题标题】:How to call IShellFolder::EnumObjects externally in a shell extension如何在 shell 扩展中从外部调用 IShellFolder::EnumObjects
【发布时间】:2012-08-01 14:54:32
【问题描述】:

我创建了一个类似于 Google 的 GDrive 的 Windows Shell 扩展。现在我想向继承自 IShellView 的 ListView 添加不同的视图。添加了一个新的上下文菜单以显示 3 个视图(详细信息、小图标、大图标)。当使用上下文菜单更改视图时,需要刷新/创建当前窗口以显示更改的视图。 在我的 IShellFolder::EnumObjects 中,创建了一个新的 ListView 对象并自动调用 OnCreate。当我使用上下文菜单更改视图时,我也需要调用此方法。我想可能有一些像 SHChangeNotify() 这样的 API 可以自动所有 EnumObjects() 并且将使用更改后的视图创建一个新的 IShellView 窗口。

【问题讨论】:

    标签: shell-extensions


    【解决方案1】:

    我从您的问题中了解到,您需要在列表视图中查看相同的内容,但使用新视图。

    新的视图模式选择后不需要重新创建 Listview 对象,只需将 ListView 的样式设置为 LVS_REPORTLVS_SMALLICONLVS_ICON。

    SHChangeNotify 用于将更改反映到树窗格而不是 ListView。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 2012-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多