GetPluginDirList

Programming Far Manager plugins

GetPluginDirList

Функция GetPluginDirList возвращает список файлов в указанной директории (с поддиректориями) эмулируемой файловой системы.
intptr_t WINAPI GetPluginDirList(
  const GUID *PluginId,
  HANDLE hPanel,
  const wchar_t *Dir,
  struct PluginPanelItem **pPanelItem,
  size_t *pItemsNumber
);

Параметры

PluginId
Указатель на GUID плагина (для вашего плагина, GUID должен быть таким же, что и в поле GlobalInfo.Guid функции GetGlobalInfoW).
hPanel
Текущий описатель панели. Если описатель панели равен PANEL_ACTIVE (или PANEL_PASSIVE), то значение параметра PluginId игнорируется и используется GUID плагина, которому принадлежит активная (или пассивная) панель.
Dir
Имя обрабатываемой директории. Должно быть в форме, приемлемой для функции плагина SetDirectoryW. Плагинам обычно не требуется обработка полного пути функцией SetDirectoryW, поэтому чаще всего (нужно в этом убедиться), это просто имя обрабатываемого подкаталога текущего каталога.

Для сохранения текущей директории плагина неизменной после вызова GetPluginDirList, либо Dir должен быть подкаталогом текущего каталога плагина, либо функция SetDirectoryW плагина должна уметь обрабатывать имя каталога, возвращаемое GetOpenPanelInfoW. Иначе текущая директория будет изменена, и вы должны быть готовы восстановить её.

pPanelItem
Указывает на переменную, которая получит адрес массива структур PluginPanelItem.
Когда этот массив больше не нужен, он должен быть передан функции FreePluginDirList.
pItemsNumber
Указывает на переменную, которая получит число структур PluginPanelItem.

Возвращаемое значение

Если функция завершилась успешно, она вернёт TRUE. Если функция закончилась неудачно или обработка директории была прервана пользователем, то она вернёт FALSE.

Замечания

  1. Возвращаемые имена файлов включают исходный каталог Dir. Например, если Dir есть DIR1\DIR2, то имена файлов будут в виде DIR1\DIR2\file.ext, DIR1\DIR2\subdir\file.ext и т.п.
  2. Пользователь может прервать выполнение функции, нажав клавишу Esc, при этом функция вернёт значение FALSE.
Смотрите также: