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 в качестве аргумента. Метод не требует пояснений

Теперь я не совсем понимаю SelectItemЭто займет ВАРИАНТ и Int. Согласно MSDN, флаг int указывает методу, какой тип выбора сделать, и все, без объяснения того, что такое VARIANT.

Что я должен передать VARIANT *pvfi?

3

Решение

За ВАРИАНТ ты можешь пройти LPCITEMIDLIST пункта

2

Другие решения

IShellFolderViewDual это двойной к (давно ушел IIRC) IShellFolderView, Немного рудиментарная документация остается. Кажется, кто-то был фанатом квантовой физики.

Вариант должен нести VT_UNKNOWN указывая на FolderItem Экземпляр элемента, который вы хотите изменить выбор. Затем флаги выбора выглядят следующим образом:

  • 0 (SVSI_DESELECTОтмените выбор
  • 1 (SVSI_SELECT) Выбрать
  • 3 (SVSI_EDIT) перевести элемент в режим редактирования
  • 4 (SVSI_DESELECTOTHERS) отменить выбор всего бу указанного элемента
  • 8 (SVSI_ENSUREVISIBLE) убедитесь, что элемент виден на виде (прокрутите вид)
  • 16 (SVSI_FOCUSED) уделить внимание предмету
0

По вопросам рекламы [email protected]