GetFindDataW
Функция GetFindDataW
вызывается для получения списка файлов из текущего каталога эмулируемой файловой системы
(Far Manager плагину: "дай-ка я взгляну на списочек твоих файлов, память сам выдели :-)").
intptr_t WINAPI GetFindDataW(
struct GetFindDataInfo *Info
);
Параметры
Info
Указатель на структуру
GetFindDataInfo. Плагин передает Far Manager'у информацию об элементах (список файлов) для панели.
В начале функции проверьте, что поле
GetFindDataInfo.StructSize >= sizeof(GetFindDataInfo)
.
Возвращаемое значение
Если функция выполнила свои действия успешно, то верните 1
. В противном случае 0
.
Замечания
- В этой функции плагин динамически формирует список элементов, если это происходит, то необходимо позаботиться об освобождении памяти, когда список уже не нужен, т.е.
не забыть бы про экспортирование функции FreeFindDataW.
- Если функция вернёт
0
, то плагин будет закрыт.
- В некоторых случаях (пример: поиск в архивах по Alt+F7) физически панель плагина не создаётся, поэтому необходимо обязательно проверять код
возврата у PanelControl, чтобы не упасть в самый не подходящий момент, выполнив работу для панели, которой нет.
- Если вы не хотите, чтобы ваш плагин использовался во время "поиска в архивах" ("[x] Искать в архивах" в диалоге поиска),
то возвращайте
0
в случае, если OpMode
содержит флаг OPM_FIND
.
Пример
Пример из плагина "ProcList".
intptr_t WINAPI GetFindDataW(struct GetFindDataInfo *Info)
{
return ((Plist *)Info->hPanel)->GetFindData(Info->PanelItem,Info->ItemsNumber,Info->OpMode);
}
Смотрите также: