# ProcessName

Функция `FSF.ProcessName` позволяет обработать некое имя файла: сравнить с маской, с масками или сгенерировать по маске новое имя.

    size_t WINAPI ProcessName(
      const wchar_t *Param1,
      wchar_t *Param2,
      size_t Size,
      PROCESSNAME_FLAGS Flags
    );

### Параметры

Param1
Зависит от Flags.
Param2
Зависит от Flags.
Size
Зависит от Flags.
Flags
Указывает на необходимое действие. Может быть следующим (тип PROCESSNAME_FLAGS):

Действие | Описание
--- | ---
PN_CMPNAME | Сравнить имя файла с маской. `Param1` соответствует Pattern, `Param2` соответствует String, `Size` игнорируется. Параметр `Param1` может включать обычные допустимые в именах файлов символы, а также специальные выражения:
Метасимвол | Описание
--- | ---
`*` | любое количество символов
`?` | любой символ
`[c,x-z]` | любой символ из находящихся в квадратных скобках; допускаются и отдельные символы, и их диапазоны.
Например, файлы ftp.exe, fc.exe и f.ext совпадают с маской `f*.ex?`, маска `*co*` совпадает с color.ini и edit.com, маске `[c-ft]*.txt` будут соответствовать config.txt, demo.txt, faq.txt и tips.txt. В случае успеха функция возвращает TRUE.
PN_CMPNAMELIST | Сравнить имя файла со списком масок, перечисленных через запятую. Аналог предыдущего флага, только `Param1` соответствует списку масок. `Size` игнорируется.
PN_SKIPPATH | Может сочетаться с `PN_CMPNAME` или `PN_CMPNAMELIST` - указывает на то, что путь к имени файла при сравнении должен игнорироваться.
PN_GENERATENAME | Генерировать имя файла на основе существующего (`Param1`) и маски (`Param2`). Результат записывается в `Param2`. `Size` должен содержать размер буфера с учётом завершающего `\0`. Возвращаемое значение - необходимый размер буфера. Если нужно преобразовать только часть `Param1`, то можно указать размер этой части (может быть до 65535 символов) в `Flags` (добавить по принципу OR), например: `Param1=L"dir1\\file1"`, а нам нужно изменить только "dir1", тогда параметр `Flags` должен быть равен `PN_GENERATENAME|4`
PN_CHECKMASK | Проверить валидность маски. `Param1` соответствует списку масок для проверки.
PN_SHOWERRORMESSAGE | При проверке валидности маски (`PN_CHECKMASK`) выводить сообщение об ошибке.

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

См. описание параметра `Flags`