C ++用のヘッダーファイル |
Top Previous Next |
/* ACX plugin interface for oMega Commander. Interface version: 3.0 Pylonos.com LLC (c) http://pylonos.com */
#pragma pack(push,1)
/* Version of the plugin interface */ #define PlugACXVers_Major 3 #define PlugACXVers_Minor 0
#define PlugWCXVers_Major 2 #define PlugWCXVers_Minor 21
/* The error codes are returned to the calling application */ #define E_SUCCESS 0 // Successful execution #define E_END_ARCHIVE 10 // No more files in archive (archive end) #define E_NO_MEMORY 11 // Not enough memory #define E_BAD_DATA 12 // Data error #define E_BAD_ARCHIVE 13 // CRC error in archive data #define E_UNKNOWN_FORMAT 14 // Invalid archive format #define E_EOPEN 15 // Impossible to open existing file #define E_ECREATE 16 // Impossible to create a file #define E_ECLOSE 17 // Error closing the file #define E_EREAD 18 // Error reading file #define E_EWRITE 19 // Error writing file #define E_SMALL_BUF 20 // Buffer is too small #define E_EABORTED 21 // Operation was interrupted by the user #define E_NO_FILES 22 // Files not found #define E_TOO_MANY_FILES 23 // Too many files to archive #define E_NOT_SUPPORTED 24 // Not supported operation
#define E_EX_UNKNOWN_ERR 201 // Unknown error #define E_EX_ENCRYPTED 202 // File/archive is encrypted and be processed (decryption isn't supported) #define E_EX_FILE_TOO_BIG 203 // File is too big #define E_EX_FILE_IN_USE 204 // File is locked/in use and can't be processed #define E_EX_NOT_SUPPORTED_METHOD 205 // Archive method isn't supported #define E_EX_SKIP 206 // File was skipped #define E_EX_MAYBE_DISKFULL 207 // Maybe disk full
/* Open archive flags */ #define PK_OM_LIST 0 // View archive content #define PK_OM_EXTRACT 1 // Unpack archive
/* Flags for ProcessFile, ProcessFileW */ #define PK_SKIP 0 // Skip file (without unpacking) #define PK_TEST 1 // Test integrity of the file #define PK_EXTRACT 2 // Unpack the file to disk
/* Flags for ChangeVolProcW */ #define PK_VOL_ASK 0 // Ask the user about location of the next volume #define PK_VOL_NOTIFY 1 // Notify the application, that the next volume can be unpackd
/* Flags for PackFiles, PackFilesW */ #define PK_PACK_MOVE_FILES 1 // Delete the input file after archiving #define PK_PACK_SAVE_PATHS 2 // Save file paths #define PK_PACK_ENCRYPT 4 // Request file password during encryption
/* Flags for ArcPackFilesW */ #define PK_PACKEX_MOVE_FILES 1 #define PK_PACKEX_SAVE_PATHS 2 #define PK_PACKEX_ENCRYPT 4 #define PK_PACKEX_ENCRYPTLIST 8 #define PK_PACKEX_SOLID 16
/* Flags of the ArcPlugInitData.out_PackerCaps, GetPackCaps */ #define PK_CAPS_NEW 1 // Can create new archives #define PK_CAPS_MODIFY 2 // Can change existing archives #define PK_CAPS_MULTIPLE 4 // Archive can contain multiple files #define PK_CAPS_DELETE 8 // Can delete files #define PK_CAPS_OPTIONS 16 // Settings dialog exists #define PK_CAPS_MEMPACK 32 // Supports archiving to memory #define PK_CAPS_BY_CONTENT 64 // Detect archive type by content #define PK_CAPS_SEARCHTEXT 128 // Can search text in archive #define PK_CAPS_HIDE 256 // Show as a regular file (hide archive icon), don't open on Enter, only on Ctrl+PgDn #define PK_CAPS_ENCRYPT 512 // Plug-in supports parameter PK_PACK_ENCRYPT
/* Flags for StartMemPackW, StartMemPack */ #define MEM_OPTIONS_WANTHEADERS 1 // Return archive headers with packed data
/* Return values of 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
/* Flags for PkSetCryptCallback */ #define PK_CRYPTOPT_MASTERPASS_SET 1 // The user already has a master password defined
/* Flags for PkCryptProc callback */ #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
/* Parameter types for ArcParamToPlug */ #define PK_PARTOPLUG_PASSWORD 0 #define PK_PARTOPLUG_LANGUAGE 1
/* Parameter types for ArcParamFromPlug */ #define PK_PARFROMPLUG_STAGE 0 #define PK_PARFROMPLUG_FILESIZE 1
/* Return values of ArcGetPasswordW */ #define PK_GETPASS_OK 0 #define PK_GETPASS_CANCEL 1 #define PK_GETPASS_SKIP 2 #define PK_GETPASS_UNEXPECTED_ERR -1
/* Flags for ArcInitPluginDataW.out_PackerCapsEx */ #define PK_CAPEX_MYSELF_ASK_PASS 1 #define PK_CAPEX_CURFILE_ASK_PASS 2 #define PK_CAPEX_ENCRYPTLIST 4 #define PK_CAPEX_SOLID 8
/* Codes of ArcOpenDataW.out_ArcPropFlags */ #define PK_ARC_VOLUME 0x001 // Volume attribute (archive volume) #define PK_ARC_COMMENT 0x002 // Archive comment present #define PK_ARC_LOCK 0x004 // Archive lock attribute #define PK_ARC_SOLID 0x008 // Solid attribute #define PK_ARC_AUTHENCITY_INFO 0x020 // Authenticity information present #define PK_ARC_RECOVERY_RECORD 0x040 // Recovery record present #define PK_ARC_HEADERS_ENCRYPTED 0x080 // Block headers are encrypted #define PK_ARC_FIRST_VOL 0x100 // First volume
/* Codes of ArcOpenDataW.ExFlags */ #define PK_ARCEX_LOCK_ASK_PASS 0x001
/* Codes of tHeaderDataExW.Flags, tHeaderDataEx.Flags, THeaderData.Flags */ #define PK_HF_PREVVOL 0x0001; #define PK_HF_NEXTVOL 0x0002; #define PK_HF_ENCRYPT 0x0004; #define PK_HF_COMMENT 0x0008; #define PK_HF_SOLID 0x0010;
/* Threshold for progressbars double percents for ArcProcessDataProcW, ProcessDataProcW, ProcessDataProc */ #define PK_DOUBLEPROGRESS -100000
/* The functions calling by a plugin */ typedef int (__stdcall *ArcProcessDataProcW)(_In_ LONG_PTR Session, _In_ wchar_t *FileName, _In_ int Size); typedef int (__stdcall *ArcGetPasswordProcW)(_In_ LONG_PTR Session, _In_ HANDLE hArcData, _In_ wchar_t *ArcFileName, _In_ wchar_t *FileNameInArc, _Out_ wchar_t *Password, _In_ int PasswordMaxLen); typedef int (__stdcall *ArcShowDialogProcW)(_In_ LONG_PTR Session, _In_ wchar_t *WinCaption, _In_ wchar_t *FormattedText, _In_ wchar_t *ControlsDesc, _Out_opt_ wchar_t *ResultsBuffer, _Inout_ int *pResultsBufferLen, _In_ int ImageIndex); typedef int (__stdcall *ArcParamFromPlugProc)(_In_ LONG_PTR Session, _In_ HANDLE hArcData, _In_ int ParameterType, _In_ LONG_PTR ParameterData);
typedef int (__stdcall *tChangeVolProc)(_Inout_ unsigned char *ArcVolName, _In_ int Mode); typedef int (__stdcall *tChangeVolProcW)(_Inout_ wchar_t *ArcVolName, _In_ int Mode); typedef int (__stdcall *tProcessDataProc)(_In_ unsigned char *FileName, _In_ int Size); typedef int (__stdcall *tProcessDataProcW)(_In_ wchar_t *FileName, _In_ int Size); typedef int (__stdcall *tPkCryptProc)(_In_ int CryptoNr, _In_ int Mode, _In_ char *ArchiveName, _In_ char *Password, _In_ int MaxLen); typedef int (__stdcall *tPkCryptProcW)(_In_ int CryptoNr, _In_ int Mode, _In_ wchar_t *ArchiveName, _In_ wchar_t *Password, _In_ int MaxLen);
typedef struct tHeaderData { char ArcName[260]; char FileName[260]; unsigned int Flags; unsigned int PackSize; unsigned int UnpSize; unsigned int HostOS; unsigned int FileCRC; unsigned int FileTime; unsigned int UnpVer; unsigned int Method; unsigned int FileAttr; char *CmtBuf; unsigned int CmtBufSize; unsigned int CmtSize; unsigned int CmtState; };
typedef struct tHeaderDataEx { char ArcName[1024]; char FileName[1024]; unsigned int Flags; unsigned int PackSize; unsigned int PackSizeHigh; unsigned int UnpSize; unsigned int UnpSizeHigh; unsigned int HostOS; unsigned int FileCRC; unsigned int FileTime; unsigned int UnpVer; unsigned int Method; unsigned int FileAttr; char *CmtBuf; unsigned int CmtBufSize; unsigned int CmtSize; unsigned int CmtState; char Reserved[1024]; };
typedef struct tHeaderDataExW { wchar_t ArcName[1024]; wchar_t FileName[1024]; unsigned int Flags; unsigned int PackSize; unsigned int PackSizeHigh; unsigned int UnpSize; unsigned int UnpSizeHigh; unsigned int HostOS; unsigned int FileCRC; unsigned int FileTime; unsigned int UnpVer; unsigned int Method; unsigned int FileAttr; char *CmtBuf; unsigned int CmtBufSize; unsigned int CmtSize; unsigned int CmtState; char Reserved[1024]; };
typedef struct tOpenArchiveData { char *ArcName; int OpenMode; int OpenResult; char *CmtBuf; int CmtBufSize; int CmtSize; int CmtState; };
typedef struct tOpenArchiveDataW { wchar_t *ArcName; int OpenMode; int OpenResult; wchar_t *CmtBuf; int CmtBufSize; int CmtSize; int CmtState; };
typedef struct ArcOpenDataW { wchar_t *ArcNameW; unsigned int OpenMode; unsigned int out_OpenResult; unsigned int out_ArcPropFlags; unsigned int ExFlags; LONG_PTR Session; ArcProcessDataProcW ProcessDataW; LONG_PTR Reserved[8]; };
typedef struct ArcInitPluginDataW { unsigned short VersMajor; unsigned short VersMinor; unsigned short out_VersMajor; unsigned short out_VersMinor; wchar_t *PluginFileName; ArcGetPasswordProcW ArcGetPasswordW; ArcShowDialogProcW ArcShowDialogW; ArcParamFromPlugProc ArcParamFromPlug; tChangeVolProc ChangeVol; tChangeVolProcW ChangeVolW; wchar_t DefaultIniNameW[MAX_PATH]; wchar_t *out_Extensions; unsigned int out_PackerCaps; unsigned int out_PackerCapsEx; LONG_PTR Reserved[8]; };
enum ArcStageTypes { astNormal, astPrepareArchive }; typedef struct ArcProcessingStageData { ArcStageTypes ArcStageType; __int64 TotalFilesSize; __int64 TotalFilesCount; LONG_PTR Reserved; };
typedef struct PackDefaultParamStruct { int size; DWORD PluginInterfaceVersionLow; DWORD PluginInterfaceVersionHi; char DefaultIniName[MAX_PATH]; };
#pragma pack(pop)
/* The functions of a plugin */ typedef BOOL (__stdcall *ArcInitPluginProcW)(_Inout_ ArcInitPluginDataW *pData); typedef HANDLE (__stdcall *ArcOpenProcW)(_Inout_ ArcOpenDataW *ArchiveData); typedef int (__stdcall *ArcParamToPlugProc)(_In_ LONG_PTR Session, _In_ HANDLE hArcData, _In_ int ParameterType, _In_ LONG_PTR ParameterData); typedef int (__stdcall *ArcPackFilesProcW)(_In_ wchar_t *PackedFile, _In_ wchar_t *SubPath, _In_ wchar_t *SrcPath, _In_ wchar_t *AddList, _In_ int Flags, _In_ __int64 Size, _In_ LONG_PTR Session, _In_ ArcProcessDataProcW ProcessDataW, _In_ LONG_PTR Reserved); typedef int (__stdcall *ArcDeleteFilesProcW)(_In_ wchar_t *PackedFile, _In_ wchar_t *DeleteList, _In_ LONG_PTR Session, _In_ ArcProcessDataProcW ProcessDataW, _In_ LONG_PTR Reserved);
typedef HANDLE (__stdcall *OpenArchiveProc)(_Inout_ tOpenArchiveData *ArchiveData); typedef HANDLE (__stdcall *OpenArchiveProcW)(_Inout_ tOpenArchiveDataW *ArchiveData); typedef int (__stdcall *ReadHeaderProc)(_In_ HANDLE hArcData, _Out_ tHeaderData *HeaderData); typedef int (__stdcall *ReadHeaderExProc)(_In_ HANDLE hArcData, _Out_ tHeaderDataEx *HeaderDataEx); typedef int (__stdcall *ReadHeaderExProcW)(_In_ HANDLE hArcData, _Out_ tHeaderDataExW *HeaderDataEx); typedef int (__stdcall *ProcessFileProc)(_In_ HANDLE hArcData, _In_ int Operation, _In_opt_ char *DestPath, _In_opt_ char *DestName); typedef int (__stdcall *ProcessFileProcW)(_In_ HANDLE hArcData, _In_ int Operation, _In_opt_ wchar_t *DestPath, _In_opt_ wchar_t *DestName); typedef int (__stdcall *DeleteFilesProc)(_In_ char *PackedFile, _In_ char *DeleteList); typedef int (__stdcall *DeleteFilesProcW)(_In_ wchar_t *PackedFile, _In_ wchar_t *DeleteList); typedef int (__stdcall *CloseArchiveProc)(_In_ HANDLE hArcData); typedef int (__stdcall *PackFilesProc)(_In_ char *PackedFile, _In_ char *SubPath, _In_ char *SrcPath, _In_ char *AddList, _In_ int Flags); typedef int (__stdcall *PackFilesProcW)(_In_ wchar_t *PackedFile, _In_ wchar_t *SubPath, _In_ wchar_t *SrcPath, _In_ wchar_t *AddList, _In_ int Flags); typedef int (__stdcall *GetPackerCapsProc)(); typedef void (__stdcall *SetProcessDataProcProc)(_In_ HANDLE hArcData, _In_ tProcessDataProc pProcessDataProc); typedef void (__stdcall *SetProcessDataProcProcW)(_In_ HANDLE hArcData, _In_ tProcessDataProcW pProcessDataProc); typedef void (__stdcall *SetChangeVolProcProc)(_In_ HANDLE hArcData, _In_ tChangeVolProc pChangeVolProc); typedef void (__stdcall *SetChangeVolProcProcW)(_In_ HANDLE hArcData, _In_ tChangeVolProcW pChangeVolProc); typedef void (__stdcall *ConfigurePackerProc)(_In_ HWND Parent, _In_ HINSTANCE DllInstance); typedef HANDLE (__stdcall *StartMemPackProc)(_In_ int Options, _In_ char *FileName); typedef HANDLE (__stdcall *StartMemPackProcW)(_In_ int Options, _In_ wchar_t *FileName); typedef int (__stdcall *PackToMemProc)(_In_ int hMemPack, _In_ char *BufIn, _In_ int InLen, _Out_ int *Taken, _Out_ char *BufOut, _In_ int OutLen, _Out_ int *Written, _In_ int SeekBy); typedef int (__stdcall *DoneMemPackProc)(_In_ int hMemPack); typedef BOOL (__stdcall *CanYouHandleThisFileProc)(_In_ char *FileName); typedef BOOL (__stdcall *CanYouHandleThisFileProcW)(_In_ wchar_t *FileName); typedef void (__stdcall *PackSetDefaultParamsProc)(_In_ PackDefaultParamStruct* dps); typedef void (__stdcall *PkSetCryptCallbackProc)(_In_ tPkCryptProc pPkCryptProc, _In_ int CryptoNr, _In_ int Flags); typedef void (__stdcall *PkSetCryptCallbackProcW)(_In_ tPkCryptProcW pPkCryptProc, _In_ int CryptoNr, _In_ int Flags); typedef int (__stdcall *GetBackgroundFlagsProc)();
|