/* Содержимое файла wcxhead.h */
/* Содержит описания кодов ошибок, флагов и экспортируемых функций */
/* Коды ошибок, возвращаемых вызывающему приложению */
#define E_SUCCESS= 0 /* Выполнено успешно */
#define E_END_ARCHIVE 10 /* Нет больше файлов в архиве (конец архива) */
#define E_NO_MEMORY 11 /* Не хватает памяти */
#define E_BAD_DATA 12 /* Ошибка в данных */
#define E_BAD_ARCHIVE 13 /* Ошибка CRC в данных архива */
#define E_UNKNOWN_FORMAT 14 /* Ошибочный формат архива */
#define E_EOPEN 15 /* Невозможно открыть существующий файл */
#define E_ECREATE 16 /* Невозможно создать файл */
#define E_ECLOSE 17 /* Ошибка закрытия файла */
#define E_EREAD 18 /* Ошибка чтения из файла */
#define E_EWRITE 19 /* Ошибка записи в файл */
#define E_SMALL_BUF 20 /* Буфер слишком мал */
#define E_EABORTED 21 /* Функция прервана пользователем */
#define E_NO_FILES 22 /* Файлы не найдены */
#define E_TOO_MANY_FILES 23 /* Слишком много файлов для упаковки */
#define E_NOT_SUPPORTED 24 /* Функция не поддерживается */
/* Флаги распаковки */
#define PK_OM_LIST 0
#define PK_OM_EXTRACT 1
/* Флаги для ProcessFile */
#define PK_SKIP 0 /* Пропустить файл (без распаковки) */
#define PK_TEST 1 /* Тестировать целостность файла */
#define PK_EXTRACT 2 /* Распаковать файл на диск */
/* Flags passed through ChangeVolProc */
#define PK_VOL_ASK 0 /* Запросить расположение следующего тома */
#define PK_VOL_NOTIFY 1 /* Уведомить приложение, что следующий том */
/* может быть распакован */
/* Флаги упаковки */
/* Флаги для PackFiles */
#define PK_PACK_MOVE_FILES 1 /* Удалить исходный файл после упаковки */
#define PK_PACK_SAVE_PATHS 2 /* Сохранять пути файлов */
#define PK_PACK_ENCRYPT 4 /* Запрашивает пароль у пользователя при шифровании */
/* Возвращает GetPackCaps */
#define PK_CAPS_NEW 1 /* Может создавать новые архивы */
#define PK_CAPS_MODIFY 2 /* Может изменять существующие архивы */
#define PK_CAPS_MULTIPLE 4 /* Архив может содержать несколько файлов */
#define PK_CAPS_DELETE 8 /* Может удалять файлы */
#define PK_CAPS_OPTIONS 16 /* Есть диалог настроек */
#define PK_CAPS_MEMPACK 32 /* Поддерживает упаковку в памяти */
#define PK_CAPS_BY_CONTENT 64 /* Определяет тип архива по содержимому */
#define PK_CAPS_SEARCHTEXT 128 /* Может искать текст в архиве */
#define PK_CAPS_HIDE 256 /* Показать как обычный файл (скрыть иконку */
/* архива), не открывать по Enter, только по Ctrl+PgDn */
#define PK_CAPS_ENCRYPT 512 /* Плагин поддерживает параметр PK_PACK_ENCRYPT */
/* Флаги для упаковки в памяти */
#define MEM_OPTIONS_WANTHEADERS 1 /* Return archive headers with packed data */
/* Errors returned by PackToMem */
#define MEMPACK_OK 0 /* Function call finished OK, but there is more data */
#define MEMPACK_DONE 1 /* Function call finished OK, there is no more data */
typedef struct {
char ArcName[260];
char FileName[260];
int Flags;
int PackSize;
int UnpSize;
int HostOS;
int FileCRC;
int FileTime;
int UnpVer;
int Method;
int FileAttr;
char* CmtBuf;
int CmtBufSize;
int CmtSize;
int CmtState;
} tHeaderData;
typedef struct {
char ArcName[1024];
char FileName[1024];
int Flags;
unsigned int PackSize;
unsigned int PackSizeHigh;
unsigned int UnpSize;
unsigned int UnpSizeHigh;
int HostOS;
int FileCRC;
int FileTime;
int UnpVer;
int Method;
int FileAttr;
char* CmtBuf;
int CmtBufSize;
int CmtSize;
int CmtState;
char Reserved[1024];
} tHeaderDataEx;
typedef struct {
char* ArcName;
int OpenMode;
int OpenResult;
char* CmtBuf;
int CmtBufSize;
int CmtSize;
int CmtState;
} tOpenArchiveData;
typedef struct {
int Size;
DWORD PluginInterfaceVersionLow;
DWORD PluginInterfaceVersionHi;
char DefaultIniName[MAX_PATH];
} PackDefaultParamStruct;
/* Описание экспортируемых функций, вызываемых из DLL */
/* Запрашивает смену диска для многотомного архива */
typedef int (__stdcall *tChangeVolProc)(char *ArcName,int Mode);
/* Сведения об обработке данных – используется для диалога прогресса */
typedef int (__stdcall *tProcessDataProc)(char *FileName,int Size);
|