# 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);
    }

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