Windows Explorer IshellFolderviewDual :: SelectItem使用情况



我正在编写一些代码将自动选择Window Explorer(Explorer.exe)项目。我发现了两种可能有帮助的方法:

HRESULT SelectItem(
  [in]  VARIANT *pvfi,
  [in]  int dwFlags
);
// from http://msdn.microsoft.com/en-us/library/windows/desktop/dd894079(v=vs.85).aspx
HRESULT SelectItemRelative(
  [in]  int iRelative
);
// from http://msdn.microsoft.com/en-us/library/windows/desktop/bb774966(v=vs.85).aspx

我已经尝试了SelectItemRelative,并且可以很好地工作;当我将1作为参数传递时,选择Explorer中的下一个项目。该方法是自称

现在,我不太了解SelectItem,它需要一个变体和一个int。根据MSDN的说法,INT标志告诉该方法要进行哪种选择,仅此而已,没有解释哪种变体。

我应该通过VARIANT *pvfi

对于 variant 您可以通过项目的 lpcitemidlist

IShellFolderViewDual dual 对(已久的IIRC)IShellFolderView。仍然存在一些残留文档。似乎有人是量子物理学的粉丝。

变体应携带VT_UNKNOWN指向您要更改选择的项目的FolderItem实例。然后,选择标志如下:

  • 0(SVSI_DESELECT)DeSelect
  • 1(SVSI_SELECT)选择
  • 3(SVSI_EDIT)将项目放在编辑模式
  • 4(SVSI_DESELECTOTHERS)取消选择所有指定项目
  • 8(SVSI_ENSUREVISIBLE)确保在视图中可见该项目(滚动视图)
  • 16(SVSI_FOCUSED)给予该项目焦点

相关内容

  • 没有找到相关文章

最新更新