GetFindDataW

Programming Far Manager plugins

GetFindDataW

Функция GetFindDataW вызывается для получения списка файлов из текущего каталога эмулируемой файловой системы
(Far Manager плагину: "дай-ка я взгляну на списочек твоих файлов, память сам выдели :-)").
intptr_t WINAPI GetFindDataW(
  struct GetFindDataInfo *Info
);

Параметры

Info
Указатель на структуру GetFindDataInfo. Плагин передает Far Manager'у информацию об элементах (список файлов) для панели.
В начале функции проверьте, что поле GetFindDataInfo.StructSize >= sizeof(GetFindDataInfo).

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

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

Замечания

  1. В этой функции плагин динамически формирует список элементов, если это происходит, то необходимо позаботиться об освобождении памяти, когда список уже не нужен, т.е. не забыть бы про экспортирование функции FreeFindDataW.
  2. Если функция вернёт 0, то плагин будет закрыт.
  3. В некоторых случаях (пример: поиск в архивах по Alt+F7) физически панель плагина не создаётся, поэтому необходимо обязательно проверять код возврата у PanelControl, чтобы не упасть в самый не подходящий момент, выполнив работу для панели, которой нет.
  4. Если вы не хотите, чтобы ваш плагин использовался во время "поиска в архивах" ("[x] Искать в архивах" в диалоге поиска), то возвращайте 0 в случае, если OpMode содержит флаг OPM_FIND.

Пример

Пример из плагина "ProcList".
intptr_t WINAPI GetFindDataW(struct GetFindDataInfo *Info)
{
  return ((Plist *)Info->hPanel)->GetFindData(Info->PanelItem,Info->ItemsNumber,Info->OpMode);
}
Смотрите также: