# 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
Текущий описатель панели.
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`.

Смотрите также:
GetDirList