SetDirectory

Функция SetDirectory вызывается для смены каталога в эмулируемой файловой системе.
int WINAPI SetDirectory(
  HANDLE hPlugin,
  const char *Dir,
  int OpMode
);

Параметры

hPlugin
Идентификатор плагина - возвращается функциями OpenPlugin или OpenFilePlugin.
Dir
Имя каталога. Обычно только имя без полного пути. Для предоставления базовых возможностей плагин обязан воспринимать имена '..' и '\'.
Для корректного восстановления каталога после использования "Искать по всему диску" в Диалоге поиска файлов, плагин должен воспринимать полное имя каталога, которое возвращается в функции GetOpenPluginInfo. Это не обязательно для выставленного режима "Искать, начиная с текущей папки" в диалоге поиска файлов .
OpMode
Комбинация флагов режима операции. Эта функция должна быть готова принимать флаг OPM_FIND. Если этот флаг установлен, плагин не должен совершать других действий, кроме смены каталога (так, при установленном OPM_FIND, плагин не должен пытаться обновить или закрыть панели, спрашивать подтверждения у пользователя, выводить сообщения и т.д.).

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

В случае удачного завершения возвращаемое значение должно равняться TRUE. Иначе функция должна возвращать FALSE.

Замечания

Если в OpMode выставлен флаг OPM_FIND, то:
  1. это значит, что функция SetDirectory вызывается из диалога поиска файлов (Alt-F7) или другой команды, сканирующей каталоги. Поэтому плагин не должен производить никаких действий кроме смены каталога и возвращения TRUE в случае удачи или FALSE в случае невозможности сменить каталог.
  2. плагин должен аккуратно обрабатывать каталог ".." и при невозможности сменить его - возвращать FALSE. Иначе поиск может зациклиться на панели этого плагина.