鉴于从ITEMID_CHILD
的枚举ITEMIDLIST
获得的IEnumIDList::Next()
(IFolderView::Items()
),如何将ITEMIDLIST转换为像IFolderView::SelectItem()
这样的东西?
P.S。我知道IFolderView :: SelectAndPositionItems()存在,但是这个问题是特定于获取索引的(我找不到::IndexOf()
存在的位置)
TIA !!
答案 0 :(得分:0)
IFolderView
没有公开 direct 方式来获取给定子项ITEMIDLIST
的索引。使用IEnumIDList
枚举文件夹的项目时,您必须手动记住索引。或者,您可以使用IFolderView::Item()
遍历所有项目,直到找到返回匹配的ITEMIDLIST
的索引。
答案 1 :(得分:0)
一种解决方法是使用IShellFolderView::UpdateObject
,将pidl作为前两个参数传递。 IShellFolderView::RefreshObject
也看起来像一个选项,但对我来说它返回E_NOTIMPL
。