Призначення та структура бібліотеки
Динамічна бібліотека FSERVDLL.DLL призначена для забезпечення виконання базових функцій по упаковці, розпакуванню, аналізу і перевірці файлів поштової кореспонденції (ФПК).
FSERVDLL.DLL є складовою частиною програмного комплексу “Електронна пошта FossDocMail” і може бути використана для розробки FossDocMail- сумісних додатків.
Вибір динамічного компонування бібліотеки обумовлений необхідністю організації інтерфейсу з ЕП FossDocMail для прикладних програм, написаних з використанням різних систем програмування (Visual C ++, Delphi, FSHELL та інших).
FSERVDLL.DLL є багатопотокової бібліотекою. Виклик будь-якої функції бібліотеки прив’язаний до попереднього розподілу блоку управління ФПК (БУП ФПК). Створення блоку управління ФПК проводиться за допомогою функції fpk_alloc, а звільнення блоку управління – за допомогою функції fpk_free.
Для одночасної роботи з декількома ФПК в різних потоках прикладної програми резервується пул адрес блоків управління (1024 у даній версії). Під час завантаження бібліотеки проводиться підготовка пулу адрес і ініціалізація критичної секції, необхідної для коректного розміщення чергової адреси блоку управління ФПК в пулі. Під час вивантаження бібліотеки критична секція видаляється.
Схема виклику функцій
Для використання функцій бібліотеки в програмах на Visual C ++ необхідно визначити тип FPKAPI і вказати прототипи потрібних функцій.
define FPKAPI extern “C” __declspec(dllimport)
FPKAPI int fpk_alloc (void);
FPKAPI int fpk_free (int i);
Для використання функцій бібліотеки в програмах на Delphi необхідно вказати прототипи функцій:
function fpk_alloc: Integer; cdecl; external ‘fservdll.dll’;
function fpk_free( fhand: Integer ): Integer; cdecl; external ‘fservdll.dll’;
Для використання функцій бібліотеки в FSHELL – програмах необхідно вказати прототипи функцій:
fpkdll := “fservdll.dll”
_import(“_fpk_alloc”, fpkdll, 0)
_import(“_fpk_free”, fpkdll, 1)
При використанні FSHELL можливий альтернативний варіант вказівки імпортованих функцій:
#import _fpk_alloc fservdll.dll 0
#import _fpk_free fservdll.dll 1
Перед викликом будь-якої функції слід розподілити блок управління ФПК і отримати дескриптор блоку управління ФПК (ДБУП ФПК). Після цього можна проводити обробку ФПК за допомогою бібліотечних функцій. Першим параметром виклику (крім u_makechain) будь-якої функції є номер дескриптора блоку управління. В кінці роботи слід звільнити блок управління.
ПРИКЛАД (FSHELL)
fh := _fpk_alloc() // розподілити блок управління
// тут можна обробляти ФПК
_fpk_free(fh) // звільнити блок управління
Опис функцій
Зауваження: Назва кожної функції бібліотеки включає префікс, який вказує на її призначення. У даній версії використовуються наступні префікси:
fpk_ – загальні функції роботи с ФПК;
u_ – допоміжні функції;
env_ – функції роботи з конвертом ФПК;
flist_ – функції роботи зі списком файлів ФПК.
FPKAPI int u_makechain (const char* p_dir)
ОПИС
Створення каталогу з усіма проміжними каталогами
ПАРАМЕТРИ
p_dir – шлях каталогу
КОД ПОВЕРНЕННЯ
0 – нормальне завершення (завжди)
ЗАУВАЖЕННЯ
Може викликатися поза контекстом відкриття ФПК. Можна вказувати не повністю описаний шлях, потрібний каталог буде створюватися в поточному.
FPKAPI char* u_uniqname (int i, const char* p_fmask)
ОПИС
Генерація унікального імені файлу ФПК по масці
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_fmask – маска довжиною до 12 символів, в якій знаками питання (‘?’) вказані позиції, де випадково генеруються символи
КОД ПОВЕРНЕННЯ
– адреса буфера з отриманим унікальним ім’ям
-1 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
Генерується коротке ім’я файлу (8 символів – ім’я, 3 – розширення)
FPKAPI char* u_genIN (int i, const char* p_pn )
ОПИС
Генерація унікального ідентифікатора ФПК по масці
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_pn – символьний префікс унікального ідентифікатора
КОД ПОВЕРНЕННЯ
– адреса буфера з отриманим унікальним ідентифікатором
-1 – помилка доступу до блоку управління ФПК
FPKAPI int fpk_setfpkdir (int i, char* p_dir)
ОПИС
Вказати каталог для ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_dir – шлях каталогу
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
У тому випадку, якщо вказаний каталог не існує, він буде створений. У разі використання зазначеного каталогу для упаковки ФПК проводиться перевірка існування підкаталогу “.tmp”. У разі його відсутності він буде створений.
FPKAPI int fpk_setfildir (int i, char* p_dir)
ОПИС
Вказати каталог для файлів
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_dir – шлях каталогу
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
У тому випадку, якщо вказаний каталог не існує, він буде створений.
FPKAPI int fpk_settmpdir (int i, char* p_dir)
ОПИС
Вказати тимчасовий каталог
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_dir – шлях каталогу
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу к блоку управління ФПК
ЗАУВАЖЕННЯ
У тому випадку, якщо вказаний каталог не існує, він буде створений.
FPKAPI int fpk_setbaddir (int i, char* p_dir)
ОПИС
Вказати каталог для зіпсованих ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_dir – шлях каталогу
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу к блоку управління ФПК
ЗАУВАЖЕННЯ
У тому випадку, якщо вказаний каталог не існує, він буде створений.
FPKAPI int fpk_alloc (void)
ОПИС
Створити блок управління ФПК
ПАРАМЕТРИ
КОД ПОВЕРНЕННЯ
– дескриптор блоку управління ФПК
FPKAPI int fpk_duplicate (int p_sourcehandle, char* p_fpknew)
ОПИС
Створити копію файлу ФПК і копію блоку управління ФПК
ПАРАМЕТРИ
p_sourcehandle – дескриптор блоку управління ФПК
p_fpknew – ім’я файлу – копії ФПК
КОД ПОВЕРНЕННЯ
– дескриптор нового блоку управління ФПК
-1 – помилка доступу к блоку управління ФПК
FPKAPI int fpk_copy (int p_dest, int p_source)
ОПИС
Створити копію блоку управління ФПК
ПАРАМЕТРИ
p_dest – дескриптор копії блоку управління
p_source – дескриптор вихідного блоку управління
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу к блоку управління ФПК
FPKAPI int fpk_free (int i)
ОПИС
звільнити блок управління ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу к блоку управління ФПК
FPKAPI int fpk_open (int i)
ОПИС
Відкрити ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
– дескриптор ( в контексті функції open) відкритого файлу ФПК
-1 – помилка доступу к блоку управління ФПК
-1 – не визначене ім’я файлу ФПК
-2 – не вдається відкрити файл ФПК
-3 – помилка функції fdopen
FPKAPI int fpk_close (int i)
ОПИС
закрити ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу к блоку управління ФПК
-1 – файл ФПК не був відкритий
1 – помилка функції fclose
2 – помилка функції close
FPKAPI int fpk_get_sign (int i)
ОПИС
Визначити сигнатуру ФПК, завантажити контрольну суму ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу к блоку управління ФПК
2 – помилка читання сигнатури
3 – неправильна сигнатура
ЗАУВАЖЕННЯ
ФПК повинен бути попередньо відкритий функцією fpk_open.
FPKAPI int fpk_load (int i)
ОПИС
Завантажити ФПК (ФПК повинен бути попередньо відкритий функцією fpk_open.)
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу к блоку управління ФПК
5 – помилка контрольної суми інформаційної частини ФПК
100 – помилка readEnv
13 – помилка контрольної суми конверту ФПК
FPKAPI int fpk_load_ex (int i, char* p_fpkname)
ОПИС
Відкриття, завантаження і закриття ФПК
ПАРАМЕТРИ
i – дескриптор блока управління ФПК
p_fpkname – ім’я файлу ФПК
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу к блоку управління ФПК
-3 – помилка відкриття ФПК
-2 – помилка читання сигнатури
5 – помилка контрольної суми інформаційної частини ФПК
100 – помилка readEnv ???
13 – помилка контрольної суми конверта ФПК
ЗАУВАЖЕННЯ
Після завершення роботи функції файл закривається.
FPKAPI int fpk_check (int i)
ОПИС
Перевірка цілісності ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
14 – файл відкритий іншим додатком
15 – занадто багато відкритих файлів
1 – файл не знайдено (або інша помилка файлової системи)
2 – помилка читання сигнатури
3 – неправильна сигнатура
5 – помилка контрольної суми інформаційної частини ФПК
12 – помилка читання ФПК
13 – помилка контрольної суми конверта ФПК
FPKAPI int fpk_clear (int i)
ОПИС
Скидання внутрішніх змінних ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
FPKAPI int fpk_setname (int i, char* p_fpkname)
ОПИС
Задати ім’я ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_fpkname – ім’я файлу ФПК
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
Ця функція використовується для вказівки імені оброблюваного ФПК, наприклад перед функцією fpk_load.
// m_mode = UNPACK
FPKAPI char* fpk_lastname (int i)
ОПИС
Визначити ім’я ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
– покажчик на рядок, що містить ім’я ФПК
-1 – помилка доступу до блоку управління ФПК
FPKAPI int fpk_setmode (int i, int p_mode)
ОПИС
Встановлення режиму обробки ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_mode – режим обробки
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
Поки передбачені два режими:
0x0 – розпакування файлів з короткими іменами
0x1 – розпакування файлів з довгими іменами (умовчання).
Режим 0x1 можна включати при труднощах з розпакуванням файлів на сервери Novell Netware без встановленої підтримки довгих імен.
FPKAPI int fpk_pack (int i)
ОПИС
Упакувати ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
11 – помилка створення каталогу “.tmp”
1 – файл ФПК із заданим ім’ям вже існує
14 – помилка доступу
16 – занадто багато відкритих файлів (файл ФПК)
4 – помилка вводу – виводу (файл ФПК)
14 – помилка доступу (файл, що впаковується ) (файл ФПК)
16 – занадто багато відкритих файлів (файл, що впаковується )
4 – помилка вводу – виводу (файл, що впаковується)
3 – помилка read
5 – помилка write
-1 – помилка unlink
13 – помилка доступу rename (EACCES)
2 – помилка доступу rename (ENOENT)
FPKAPI int fpk_unpack (int i)
ОПИС
Відкрити файл ФПК, розпакувати, закрити файл ФПК
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
14 – файл відкритий іншим додатком
15 – занадто багато відкритих файлів
1 – файл не знайдено (або інша помилка файлової системи)
2 – помилка читання сигнатури
3 – неправильна сигнатура
5 – помилка контрольної суми інформаційної частини ФПК
100 – помилка readEnv ???
13 – помилка контрольної суми конверта ФПК
ЗАУВАЖЕННЯ
Розпаковуються всі файли, що входять до складу ФПК. Формується нове ім’я при конфлікті імен.
ДИВИСЬ ТАКОЖ:
fpk_unpackfile
FPKAPI char* fpk_unpackfile_ex(int i, int index, unsigned long flag)
ОПИС
Розпакувати файл з ФПК за індексом
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
index – індекс файлу
flag – прапори розпакування
0: за замовчуванням (розпакування файлу з довгим ім’ям)
1: розпакування файлу з коротким ім’ям
КОД ПОВЕРНЕННЯ
NULL – помилка розпакування інакше – покажчик на рядок що містить шлях + ім’я розпакованого файлу
FPKAPI int fpk_unpackl (int i)
см. FPKAPI int fpk_unpack (int i)
прим. Розпаковує файли (з конверта), зберігаючи довгі імена
FPKAPI int fpk_unpackfile (int i, long p_offs)
ОПИС
Розпакувати окремий файл щодо зміщення у ФПК
ПАРАМЕТРИ
i – дескриптор блока управління ФПК
p_offs – зміщення файлу відносно початку ФПК
КОД ПОВЕРНЕННЯ
– довжина розпакованого файлу
-1 – помилка доступу до блоку управління ФПК
14 – файл відкритий іншим додатком
15 – занадто багато відкритих файлів
1 – файл не знайдено (або інша помилка файлової системи)
ЗАУВАЖЕННЯ
ФПК повинен бути попередньо відкритий функцією fpk_open. Формування нового імені при конфлікті імен.
FPKAPI int fpk_unpackfilel (int i, long p_offs)
см. FPKAPI int fpk_unpackfile (int i, long p_offs)
прим. Розпаковує файл (з конверта), зберігаючи довге ім’я
FPKAPI int fpk_unpack_byname (int i, char* p_fname, char* p_dir)
ОПИС
Розпакувати окремий файл по його імені в зазначений каталог
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_fname – ім’я файлу
p_dir – каталог, куди потрібно розпаковувати файл
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
14 – файл відкритий іншим додатком
15 – занадто багато відкритих файлів
1 – файл не знайдено (або інша помилка файлової системи)
ЗАУВАЖЕННЯ
Функція відкриває і закриває файл ФПК. Пошук здійснюється по короткому імені файлу.
FPKAPI int fpk_unpack_bynamel (int i, char* p_fname, char* p_dir)
см. FPKAPI int fpk_unpack_byname (int i, char* p_fname, char* p_dir)
прим. Розпаковує файл (з конверта), зберігаючи довге ім’я
FPKAPI int fpk_repack (int i)
ОПИС
Перепакувати ФПК (змінити поле .IN)
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
2 – помилка читання сигнатури
3 – неправильна сигнатура
ЗАУВАЖЕННЯ
При перепакуванні додається ключ “.VD” – версія бібліотеки. Під час перепаковки нова копія файлу не створюється.
FPKAPI int fpk_do_rreport (int i, int p_rcode, char* p_from)
ОПИС
Створити звіт від маршрутизатора
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_rcode – код помилки маршрутизатора
p_from – X.400 адреса відправника
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
Функція не створює файл звіту, для створення файлу звіту потрібно виконати функцію fpk_pack.
FPKAPI int fpk_do_report (int i, int p_rcode, int p_ercode, char* p_from)
ОПИС
Створити звіт
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_rcode – код помилки маршрутизатора
p_ercode – код помилки програми розпакування
p_from – X.400 адреса відправника
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
Функція не створює файл звіту, для створення файлу звіту потрібно виконати функцію fpk_pack.
FPKAPI int fpk_envfromfile (int i, char* p_fenv)
ОПИС
Побудова ФПК за значеннями полів у файлі
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_fenv – файл з інформацією для побудови ФПК
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
FPKAPI int fpk_add (int i, char* p_key, char* p_value)
ОПИС
Додати поле в конверт
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_key – ключ
p_value – значення
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
FPKAPI int fpk_add_file (int i, const char* file_path, const char* name)
ОПИС
Додати в конверт файл.
ПАРАМЕТРИ
i – дескриптор блока управління ФПК
file_path – шлях до файлу (шлях + ім’я файлу)
name – ім’я файлу, з яким він буде доданий в конверт. 0 – використовувати ім’я з file_path.
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
FPKAPI int fpk_add_file_buf (int i, const char* name, unsigned long body_size, const unsigned char* body)
ОПИС
Додати в конверт файл із буфера.
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
name – ім’я файлу, з яким він буде доданий в конверт.
body_size – розмір буфера body.
body – буфер, який містить тіло файлу
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
FPKAPI int fpk_changekey (int i, char* p_key, char* p_keynew)
ОПИС
Змінити ключ поля конверта
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_key – ключ
p_keynew – нове значення ключа
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
Проводиться пошук першого запису із заданим полем ключа і його заміна.
FPKAPI int fpk_find_changekey (int i, char* keynew)
ОПИС
Змінити ключ поля конверта
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_keynew – нове значення ключа
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
-1 – бажаний запис не знайдено
ЗАУВАЖЕННЯ
Функція працює в контексті пошуку функціями env_findfirst і env_findnext, тобто проводиться заміна поля об’єкта, виявленого цими функціями.
FPKAPI int fpk_changevalue (int i, char* p_key, char* p_value)
ОПИС
Змінити значення поля конверта
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_key – ключ
p_value – нове значення
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
Проводиться пошук ПЕРШОГО запису із заданим полем ключа і заміна поля значення.
FPKAPI int fpk_find_changevalue (int i, char* p_value)
ОПИС
Змінити значення поля конверта
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_value – нове значення
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
-1 – бажаний запис не знайдено
ЗАУВАЖЕННЯ
Функція працює в контексті пошуку функціями env_findfirst і env_findnext, тобто проводиться заміна поля об’єкта, виявленого цими функціями.
FPKAPI int fpk_detachunits (int i, char* p_key)
ОПИС
Видалення з ФПК групи полів із заданим ключем
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_key – ключ
КОД ПОВЕРНЕННЯ
0 – нормальне завершення
-1 – помилка доступу до блоку управління ФПК
FPKAPI int env_getcount (int i)
ОПИС
Визначити кількість полів конверта
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
– кількість полів конверта
-1 – помилка доступу до блоку управління ФПК
FPKAPI void* env_findfirst (int i, char* p_obj)
ОПИС
Знайти перший запис в конверті заданим ключем
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_obj – значення ключа, за яким здійснюється пошук
КОД ПОВЕРНЕННЯ
– адреса поля значення, відповідного заданому ключу
0 – помилка доступу до блоку управління ФПК
FPKAPI void* env_findnext (int i)
ОПИС
Знайти наступний запис у конверті з заданим ключем
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
– адреса поля значення, відповідного заданому ключу
0 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
Пошук наступного запису проводиться в контексті функції env_findfirst
FPKAPI int env_findfirst_ind (int i, char* p_obj)
ОПИС
Знайти індекс першого поля із заданим ключем
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_obj – значення ключа, за яким здійснюється пошук
КОД ПОВЕРНЕННЯ
– индекс знайденого запису
-1 – помилка доступу до блоку управління ФПК
FPKAPI int env_findnext_ind (int i)
ОПИС
Знайти індекс наступного поля із заданим ключем
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
– индекс знайденого запису
-1 – помилка доступу до блоку управління ФПК
FPKAPI void* env_at_key (int i, int p_ind)
ОПИС
Прочитати ключ запису із заданим індексом
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_ind – индекс запису конверту
КОД ПОВЕРНЕННЯ
– адреса поля ключа, відповідного заданому ключу
0 – помилка доступу до блоку управління ФПК
FPKAPI void* env_at_value (int i, int ind)
ОПИС
прочитати значення поля із заданим індексом
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_ind – индекс запису конверту
КОД ПОВЕРНЕННЯ
– адреса поля значення, відповідного заданому ключу
0 – помилка доступу до блоку управління ФПК
FPKAPI int flist_getcount (int i)
ОПИС
Отримати кількість файлів вкладення
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
КОД ПОВЕРНЕННЯ
– кількість файлів
-1 – помилка доступу до блоку управління ФПК
FPKAPI void* flist_at_fname (int i, int p_ind)
ОПИС
Прочитати ім’я файлу зі списку файлів за його номером
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_ind – номер файлу
КОД ПОВЕРНЕННЯ
– адреса рядка з ім’ям файлу
0 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
Повертається коротке ім’я файлу (8 символів – ім’я, 3 – розширення)
ДИВИСЬ ТАКОЖ:
fpk_setmode
FPKAPI void* flist_at_fnamel (int i, int p_ind)
ОПИС
Прочитати довге ім’я файлу зі списку файлів за його номером
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_ind – номер файлу
КОД ПОВЕРНЕННЯ
– адреса рядку з ім’ям файлу
0 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
Повертається довге ім’я файлу
ДИВИСЬ ТАКОЖ:
fpk_setmode
FPKAPI unsigned short flist_at_ftime (int i, int p_ind)
ОПИС
Прочитати час створення файлу за його номером
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_ind – номер файлу
КОД ПОВЕРНЕННЯ
– час створення файлу
-1 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
Час створення файлу зберігається в ФПК у форматі MS-DOS
FPKAPI unsigned short flist_at_fdate (int i, int ind)
ОПИС
Прочитати дату файлу за його номером
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_ind – номер файлу
КОД ПОВЕРНЕННЯ
– дата створення файлу
-1 – помилка доступу до блоку управління ФПК
ЗАУВАЖЕННЯ
Дата створення файлу зберігається в ФПК у форматі MS-DOS
FPKAPI long flist_at_foffs (int i, int ind)
ОПИС
Визначити зміщення файлу в ФПК за його номером
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_ind – номер файлу
КОД ПОВЕРНЕННЯ
– зміщення файлу в ФПК
-1 – помилка доступу до блоку управління ФПК
FPKAPI long flist_at_flen(int i, int ind)
ОПИС
Отримати розмір файлу за індексом.
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_ind – номер файлу
КОД ПОВЕРНЕННЯ
– розмір файлу
-1 – помилка доступу до блоку управління ФПК
FPKAPI long flist_at_flen_ex(int i, int ind, int code)
ОПИС
Отримати розмір файлу за індексом.
ПАРАМЕТРИ
i – дескриптор блоку управління ФПК
p_ind – номер файлу
code – прапор. Можливі значення:
- 0 – оригінальний розмір файлу
- 1 – розмір файлу в конверті (при обробці плагінами розмір може відрізнятися від оригінального).
КОД ПОВЕРНЕННЯ
– розмір файлу
-1 – помилка доступу до блоку управління ФПК
int CopyFiles (char* TargetMask, char* DestMask)
ОПИС
Копіює файли по масці
ПАРАМЕТРИ
TargetMask – шлях і маска для відбору файлів на копіювання
DestMask- шлях і маска для отриманих файлів
КОД ПОВЕРНЕННЯ
Завжди 0
int MoveFiles (char* TargetMask, char* DestDir)
ОПИС
Переміщує файли по масці
ПАРАМЕТРИ
TargetMask – шлях і маска для відбору файлів на переміщення
DestMask – шлях, куди файли будуть переміщені.
КОД ПОВЕРНЕННЯ
Завжди 0
int MoveFilesEx (char* TargetMask, char* DestDir, unsigned long ulFlags)
ОПИС
Переміщує файли по масці
ПАРАМЕТРИ
TargetMask – шлях і маска для відбору файлів на переміщення
DestMask – шлях, куди файли будуть переміщені.
ulFlags – 0 – не провадити заміщення однойменних файлів
1 – заміщати однойменні файли
0x00010000 (MOVEFILE_FORCE_CALK_DIR) – провадити розбір DestMask на наявність зарезервованих слів:
- ?YYYY – рік, всі знаки
- ?YY – рік, 2 останніх знака
- ?HH – часи, 2 знака
- ?TT – мінути, 2 знака
- ?MM – місяць, 2 знака
- ?DD – день месяця, 2 знака
- ?W – день тижня, 1 знак
прапор введений починаючи з версії “FpkAPI(v 4.0.1.30a)”
КОД ПОВЕРНЕННЯ
Завжди 0
Опис кодів помилок
Код | Опис |
-3 | Помилка відкриття файлу конверта |
3 | У відкриваємом файлі конверту не виявлена сигнатура |
2 | Порушена структура конверту |
5 | Порушена контрольна сума конверту |
200000 + <sys error> | Помилка переміщення упаковуваного конверту з каталогу .Tmp в каталог упаковки |
4100+errno | Помилка відкриття формованого файлу конверту в .Tmp |
14 | Системна помилка EACCES при відкритті файлу конверту,що формується в .Tmp |
16 | Системна помилка EMFILE при відкритті файла конверта,що формується в .Tmp |