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); }
Смотрите также: