SetDirectoryW

Функция SetDirectoryW вызывается Far Manager'ом для смены каталога в эмулируемой файловой системе.
intptr_t WINAPI SetDirectoryW(
  const struct SetDirectoryInfo *Info
);

Параметры

Info
Указатель на структуру SetDirectoryInfo, Far Manager передает плагину информацию о новом каталоге.
В начале функции проверьте, что поле SetDirectoryInfo.StructSize >= sizeof(SetDirectoryInfo).

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

Если функция выполнила свои действия успешно, то верните 1. В противном случае 0.

Замечания

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

Пример

Пример из плагина "TmpPanel".
intptr_t WINAPI SetDirectoryW(const struct SetDirectoryInfo *Info)
{
  TmpPanel *Panel=(TmpPanel *)Info->hPanel;
  return Panel->SetDirectory(Info->Dir,Info->OpMode);
}
Смотрите также: