FileFilterControl
Функция
FileFilterControl
позволяет управлять созданием и применением файловых фильтров.
intptr_t WINAPI FileFilterControl( HANDLE hHandle, enum FAR_FILE_FILTER_CONTROL_COMMANDS Command, intptr_t Param1, void *Param2 );
Параметры
hHandle
Смотрите описание
Command
.Command
Может быть одним из следующих значений (перечисление FAR_FILE_FILTER_CONTROL_COMMANDS):
Команда | Описание | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
FFCTL_CREATEFILEFILTER | Создаёт фильтр для заданной области.hHandle должен быть установлен в значение PANEL_ACTIVE или PANEL_PASSIVE ,для фильтра типа FFT_CUSTOM , описатель должен быть установлен в значение PANEL_NONE .Param1 в следующее значение (перечисление FAR_FILE_FILTER_TYPE):
Param2 - указатель типа HANDLE , в который запишется созданный описатель фильтра. Функция при неудаче вернёт FALSE и Param2 = INVALID_HANDLE_VALUE . | ||||||||||||
FFCTL_FREEFILEFILTER | Освобождает память занятую при создании фильтра.hHandle - описатель фильтра, созданный по команде FFCTL_CREATEFILEFILTER .Param1 и Param2 игнорируются. Функция возвращает TRUE . | ||||||||||||
FFCTL_OPENFILTERSMENU | Открывает меню с параметрами фильтра для заданной области.hHandle - описатель фильтра, созданный по команде FFCTL_CREATEFILEFILTER .Param1 и Param2 игнорируются.Функция возвращает TRUE . | ||||||||||||
FFCTL_STARTINGTOFILTER | Обновить параметр "текущее время", который используется для сравнения относительных дат.hHandle - описатель фильтра, созданный по команде FFCTL_CREATEFILEFILTER .Param1 и Param2 игнорируются.Вызов этой команды надо делать до начала операции фильтрования, для того чтобы правильно работали фильтры с относительной датой. Функция возвращает TRUE . | ||||||||||||
FFCTL_ISFILEINFILTER | Сравнивает файл с параметрами фильтра.hHandle - описатель фильтра, созданный по команде FFCTL_CREATEFILEFILTER .Param1 игнорируются. Param2 указатель на файловый объект (структура PluginPanelItem), который нужно проверить на включение в фильтр. Функция возвращает TRUE , если файл попадает под условия фильтра. |
Param1
Указывает на
Параметр1
команды. Смотрите описание Command
.Param2
Указывает на
Параметр2
команды. Смотрите описание Command
.Возвращаемое значение
Смотрите описание
Command
Пример
HANDLE AFilter = INVALID_HANDLE_VALUE; // создаём фильтр для области "активная панель" Info.FileFilterControl(PANEL_ACTIVE,FFCTL_CREATEFILEFILTER,FFT_PANEL,&AFilter;); // обновляем параметр "текущее время" Info.FileFilterControl(AFilter,FFCTL_STARTINGTOFILTER,0,0); if (AFilter != INVALID_HANDLE_VALUE) { // производим манипуляции с элементами панели for (int i=0; i < pInfo->ItemsNumber; i++) { //...применяем фильтр, например, так if (Info.FileFilterControl(AFilter,FFCTL_ISFILEINFILTER,0,(void*)&pInfo-;>PanelItems[i])) { // элемент попал под условия фильтра // обработаем элемент... } } } // освобождаем память Info.FileFilterControl(AFilter, FFCTL_FREEFILEFILTER,0,0);
Смотрите также: