| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- #include "common.h"
- /* Contents of file wcxhead.h */
- /* It contains definitions of error codes, flags and callbacks */
- /* Error codes returned to calling application */
- #define E_SUCCESS 0 /* Success */
- #define E_END_ARCHIVE 10 /* No more files in archive */
- #define E_NO_MEMORY 11 /* Not enough memory */
- #define E_BAD_DATA 12 /* Data is bad */
- #define E_BAD_ARCHIVE 13 /* CRC error in archive data */
- #define E_UNKNOWN_FORMAT 14 /* Archive format unknown */
- #define E_EOPEN 15 /* Cannot open existing file */
- #define E_ECREATE 16 /* Cannot create file */
- #define E_ECLOSE 17 /* Error closing file */
- #define E_EREAD 18 /* Error reading from file */
- #define E_EWRITE 19 /* Error writing to file */
- #define E_SMALL_BUF 20 /* Buffer too small */
- #define E_EABORTED 21 /* Function aborted by user */
- #define E_NO_FILES 22 /* No files found */
- #define E_TOO_MANY_FILES 23 /* Too many files to pack */
- #define E_NOT_SUPPORTED 24 /* Function not supported */
- /* flags for unpacking */
- #define PK_OM_LIST 0
- #define PK_OM_EXTRACT 1
- /* flags for ProcessFile */
- #define PK_SKIP 0 /* Skip this file */
- #define PK_TEST 1 /* Test file integrity */
- #define PK_EXTRACT 2 /* Extract to disk */
- /* Flags passed through ChangeVolProc */
- #define PK_VOL_ASK 0 /* Ask user for location of next volume */
- #define PK_VOL_NOTIFY 1 /* Notify app that next volume will be unpacked */
- /* Flags for packing */
- /* For PackFiles */
- #define PK_PACK_MOVE_FILES 1 /* Delete original after packing */
- #define PK_PACK_SAVE_PATHS 2 /* Save path names of files */
- #define PK_PACK_ENCRYPT 4 /* Ask user for password, then encrypt */
- /* Returned by GetPackCaps */
- #define PK_CAPS_NEW 1 /* Can create new archives */
- #define PK_CAPS_MODIFY 2 /* Can modify exisiting archives */
- #define PK_CAPS_MULTIPLE 4 /* Archive can contain multiple files */
- #define PK_CAPS_DELETE 8 /* Can delete files */
- #define PK_CAPS_OPTIONS 16 /* Has options dialog */
- #define PK_CAPS_MEMPACK 32 /* Supports packing in memory */
- #define PK_CAPS_BY_CONTENT 64 /* Detect archive type by content */
- #define PK_CAPS_SEARCHTEXT 128 /* Allow searching for text in archives */
- /* created with this plugin} */
- #define PK_CAPS_HIDE 256 /* Show as normal files (hide packer */
- /* icon), open with Ctrl+PgDn, not Enter*/
- #define PK_CAPS_ENCRYPT 512 /* Plugin supports PK_PACK_ENCRYPT option*/
- /* Flags for packing in memory */
- #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 */
- #define PK_CRYPT_SAVE_PASSWORD 1
- #define PK_CRYPT_LOAD_PASSWORD 2
- #define PK_CRYPT_LOAD_PASSWORD_NO_UI 3 // Load password only if master password has already been entered!
- #define PK_CRYPT_COPY_PASSWORD 4 // Copy encrypted password to new archive name
- #define PK_CRYPT_MOVE_PASSWORD 5 // Move password when renaming an archive
- #define PK_CRYPT_DELETE_PASSWORD 6 // Delete password
- #define PK_CRYPTOPT_MASTERPASS_SET 1 // The user already has a master password defined
- /* tHeaderData Flags */
- #define RHDF_ENCRYPTED 0x04 // File encrypted with password
- 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 {
- WCHAR ArcName[1024];
- WCHAR 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];
- uint64_t MfileTime;
- } tHeaderDataExW;
- typedef struct {
- char* ArcName;
- int OpenMode;
- int OpenResult;
- char* CmtBuf;
- int CmtBufSize;
- int CmtSize;
- int CmtState;
- } tOpenArchiveData;
- typedef struct {
- WCHAR* ArcName;
- int OpenMode;
- int OpenResult;
- WCHAR* CmtBuf;
- int CmtBufSize;
- int CmtSize;
- int CmtState;
- } tOpenArchiveDataW;
- typedef struct {
- int size;
- DWORD PluginInterfaceVersionLow;
- DWORD PluginInterfaceVersionHi;
- char DefaultIniName[MAX_PATH];
- } PackDefaultParamStruct;
- /* Definition of callback functions called by the DLL
- Ask to swap disk for multi-volume archive */
- typedef int (DCPCALL *tChangeVolProc)(char *ArcName,int Mode);
- typedef int (DCPCALL *tChangeVolProcW)(WCHAR *ArcName,int Mode);
- /* Notify that data is processed - used for progress dialog */
- typedef int (DCPCALL *tProcessDataProc)(char *FileName,int Size);
- typedef int (DCPCALL *tProcessDataProcW)(WCHAR *FileName,int Size);
- typedef int (DCPCALL *tPkCryptProc)(int CryptoNr,int Mode,
- char* ArchiveName,char* Password,int maxlen);
- typedef int (DCPCALL *tPkCryptProcW)(int CryptoNr,int Mode,
- WCHAR* ArchiveName,WCHAR* Password,int maxlen);
|