【问题标题】:Get Index from ITEMIDLIST?从 ITEMIDLIST 获取索引?
【发布时间】:2019-08-21 10:52:44
【问题描述】:

给定从IEnumIDList::Next() 获得的ITEMID_CHILD (ITEMIDLIST),它是IFolderView::Items() 的枚举,如何将 ITEMIDLIST 转换为类似IFolderView::SelectItem() 的索引?

附:我知道 IFolderView::SelectAndPositionItems() 存在,但是这个问题是特定于获取索引的(我找不到 ::IndexOf() 存在的位置)

TIA!!

【问题讨论】:

  • 如果您想稍后选择项目,请使用 IFolderView::Item 方法

标签: winapi com


【解决方案1】:

IFolderView 没有 直接 方法来获取给定子 ITEMIDLIST 的索引。在使用IEnumIDList 枚举文件夹的项目时,您必须手动记住索引。或者,您可以使用IFolderView::Item() 循环遍历项目,直到找到返回匹配ITEMIDLIST 的索引。

【讨论】:

    【解决方案2】:

    一种解决方法是使用IShellFolderView::UpdateObject,将pidl 作为前两个参数传入。 IShellFolderView::RefreshObject 看起来也是一个选项,但对我来说它返回 E_NOTIMPL

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-16
      • 2019-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多