从ITEMIDLIST获取索引?

时间:2019-03-30 20:22:48

标签: winapi com

鉴于从ITEMID_CHILD的枚举ITEMIDLIST获得的IEnumIDList::Next()IFolderView::Items()),如何将ITEMIDLIST转换为像IFolderView::SelectItem()这样的东西?

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

TIA !!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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