CompareW
Плагин может экспортировать функцию CompareW, чтобы перекрыть используемый по умолчанию алгоритм сортировки файлов.
intptr_t WINAPI CompareW(
const struct CompareInfo *Info
);
Параметры
Info
Указатель на структуру
CompareInfo - информация, переданная Far Manager'ом плагину, для сортировки элементов.
В начале функции проверьте, что поле
CompareInfo.StructSize >= sizeof(CompareInfo).
Возвращаемое значение
Эта функция возвращает одно из следующих значений:
-1 если CompareInfo.Item1 < CompareInfo.Item2
0 если CompareInfo.Item1 == CompareInfo.Item2
1 если CompareInfo.Item1 > CompareInfo.Item2
-2 если используется внутренняя функция Compare для данного метода сортировки.
Замечания
Для сортировки элементов Far Manager использует стандартную RTL-функцию qsort, которая реализует нестабильную сортировку. Иными словами, если элементы массива
равны с точки зрения функции сравнения, на панели они будут отображаться в произвольном порядке, меняющемся при каждом перечитывании панели.
Пример
Пример из плагина "ProcList".
intptr_t WINAPI CompareW(const struct CompareInfo *Info)
{
return ((Plist *)Info->hPanel)->Compare(Info->Item1, Info->Item2, Info->Mode);
}
Смотрите также: