5128eecc9f 2011-02-23 kinaba: //--- K.I.LIB --- 5128eecc9f 2011-02-23 kinaba: // kl_carc.h : handling "common archivers' dll" 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #ifndef AFX_KIARCDLLRAW_H__C94DE2A0_4292_49CE_8471_2CAA1340D216__INCLUDED_ 5128eecc9f 2011-02-23 kinaba: #define AFX_KIARCDLLRAW_H__C94DE2A0_4292_49CE_8471_2CAA1340D216__INCLUDED_ 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ 5128eecc9f 2011-02-23 kinaba: // 統合アーカイバDLL共通の定義 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // FNAME_MAX 5128eecc9f 2011-02-23 kinaba: #if !defined(FNAME_MAX32) 5128eecc9f 2011-02-23 kinaba: #define FNAME_MAX32 512 5128eecc9f 2011-02-23 kinaba: #define FNAME_MAX FNAME_MAX32 5128eecc9f 2011-02-23 kinaba: #else 5128eecc9f 2011-02-23 kinaba: #if !defined(FNAME_MAX) 5128eecc9f 2011-02-23 kinaba: #define FNAME_MAX 128 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // CHECKARCHIVE 5128eecc9f 2011-02-23 kinaba: #if !defined(CHECKARCHIVE_RAPID) 5128eecc9f 2011-02-23 kinaba: #define CHECKARCHIVE_RAPID 0 5128eecc9f 2011-02-23 kinaba: #define CHECKARCHIVE_BASIC 1 5128eecc9f 2011-02-23 kinaba: #define CHECKARCHIVE_FULLCRC 2 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // ISARC 5128eecc9f 2011-02-23 kinaba: #if !defined(ISARC_FUNCTION_START) 5128eecc9f 2011-02-23 kinaba: #define ISARC_FUNCTION_START 0 5128eecc9f 2011-02-23 kinaba: #define ISARC 0 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_VERSION 1 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_CURSOR_INTERVAL 2 5128eecc9f 2011-02-23 kinaba: #define ISARC_SET_CURSOR_INTERVAL 3 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_BACK_GROUND_MODE 4 5128eecc9f 2011-02-23 kinaba: #define ISARC_SET_BACK_GROUND_MODE 5 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_CURSOR_MODE 6 5128eecc9f 2011-02-23 kinaba: #define ISARC_SET_CURSOR_MODE 7 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_RUNNING 8 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #define ISARC_CHECK_ARCHIVE 16 5128eecc9f 2011-02-23 kinaba: #define ISARC_CONFIG_DIALOG 17 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_FILE_COUNT 18 5128eecc9f 2011-02-23 kinaba: #define ISARC_QUERY_FUNCTION_LIST 19 5128eecc9f 2011-02-23 kinaba: #define ISARC_HOUT 20 5128eecc9f 2011-02-23 kinaba: #define ISARC_STRUCTOUT 21 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_FILE_INFO 22 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #define ISARC_OPEN_ARCHIVE 23 5128eecc9f 2011-02-23 kinaba: #define ISARC_CLOSE_ARCHIVE 24 5128eecc9f 2011-02-23 kinaba: #define ISARC_FIND_FIRST 25 5128eecc9f 2011-02-23 kinaba: #define ISARC_FIND_NEXT 26 5128eecc9f 2011-02-23 kinaba: #define ISARC_EXTRACT 27 5128eecc9f 2011-02-23 kinaba: #define ISARC_ADD 28 5128eecc9f 2011-02-23 kinaba: #define ISARC_MOVE 29 5128eecc9f 2011-02-23 kinaba: #define ISARC_DELETE 30 5128eecc9f 2011-02-23 kinaba: #define ISARC_SETOWNERWINDOW 31 5128eecc9f 2011-02-23 kinaba: #define ISARC_CLEAROWNERWINDOW 32 5128eecc9f 2011-02-23 kinaba: #define ISARC_SETOWNERWINDOWEX 33 5128eecc9f 2011-02-23 kinaba: #define ISARC_KILLOWNERWINDOWEX 34 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_FILE_NAME 40 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_FILE_SIZE 41 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_ORIGINAL_SIZE 42 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_COMPRESSED_SIZE 43 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_RATIO 44 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_DATE 45 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_TIME 46 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_OS_TYPE 47 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_IS_SFX_FILE 48 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_WRITE_TIME_EX 49 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_CREATE_TIME_EX 50 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_ACCESS_TIME_EX 51 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_CREATE_TIME_EX2 52 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ARC_WRITE_TIME_EX2 53 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_FILE_NAME 57 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ORIGINAL_SIZE 58 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_COMPRESSED_SIZE 59 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_RATIO 60 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_DATE 61 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_TIME 62 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_CRC 63 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ATTRIBUTE 64 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_OS_TYPE 65 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_METHOD 66 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_WRITE_TIME 67 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_CREATE_TIME 68 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ACCESS_TIME 69 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_WRITE_TIME_EX 70 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_CREATE_TIME_EX 71 5128eecc9f 2011-02-23 kinaba: #define ISARC_GET_ACCESS_TIME_EX 72 5128eecc9f 2011-02-23 kinaba: #define ISARC_SET_ENUM_MEMBERS_PROC 80 5128eecc9f 2011-02-23 kinaba: #define ISARC_CLEAR_ENUM_MEMBERS_PROC 81 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #define ISARC_FUNCTION_END 81 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // ERROR 5128eecc9f 2011-02-23 kinaba: #if !defined(ERROR_START) 5128eecc9f 2011-02-23 kinaba: #define ERROR_START 0x8000 5128eecc9f 2011-02-23 kinaba: // warning 5128eecc9f 2011-02-23 kinaba: #define ERROR_DISK_SPACE 0x8005 5128eecc9f 2011-02-23 kinaba: #define ERROR_READ_ONLY 0x8006 5128eecc9f 2011-02-23 kinaba: #define ERROR_USER_SKIP 0x8007 5128eecc9f 2011-02-23 kinaba: #define ERROR_UNKNOWN_TYPE 0x8008 5128eecc9f 2011-02-23 kinaba: #define ERROR_METHOD 0x8009 5128eecc9f 2011-02-23 kinaba: #define ERROR_PASSWORD_FILE 0x800A 5128eecc9f 2011-02-23 kinaba: #define ERROR_VERSION 0x800B 5128eecc9f 2011-02-23 kinaba: #define ERROR_FILE_CRC 0x800C 5128eecc9f 2011-02-23 kinaba: #define ERROR_FILE_OPEN 0x800D 5128eecc9f 2011-02-23 kinaba: #define ERROR_MORE_FRESH 0x800E 5128eecc9f 2011-02-23 kinaba: #define ERROR_NOT_EXIST 0x800F 5128eecc9f 2011-02-23 kinaba: #define ERROR_ALREADY_EXIST 0x8010 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #define ERROR_TOO_MANY_FILES 0x8011 5128eecc9f 2011-02-23 kinaba: // error 5128eecc9f 2011-02-23 kinaba: #define ERROR_MAKEDIRECTORY 0x8012 5128eecc9f 2011-02-23 kinaba: #define ERROR_CANNOT_WRITE 0x8013 5128eecc9f 2011-02-23 kinaba: #define ERROR_HUFFMAN_CODE 0x8014 5128eecc9f 2011-02-23 kinaba: #define ERROR_COMMENT_HEADER 0x8015 5128eecc9f 2011-02-23 kinaba: #define ERROR_HEADER_CRC 0x8016 5128eecc9f 2011-02-23 kinaba: #define ERROR_HEADER_BROKEN 0x8017 5128eecc9f 2011-02-23 kinaba: #define ERROR_ARC_FILE_OPEN 0x8018 5128eecc9f 2011-02-23 kinaba: #define ERROR_NOT_ARC_FILE 0x8019 5128eecc9f 2011-02-23 kinaba: #define ERROR_CANNOT_READ 0x801A 5128eecc9f 2011-02-23 kinaba: #define ERROR_FILE_STYLE 0x801B 5128eecc9f 2011-02-23 kinaba: #define ERROR_COMMAND_NAME 0x801C 5128eecc9f 2011-02-23 kinaba: #define ERROR_MORE_HEAP_MEMORY 0x801D 5128eecc9f 2011-02-23 kinaba: #define ERROR_ENOUGH_MEMORY 0x801E 5128eecc9f 2011-02-23 kinaba: #if !defined(ERROR_ALREADY_RUNNING) 5128eecc9f 2011-02-23 kinaba: #define ERROR_ALREADY_RUNNING 0x801F 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: #define ERROR_USER_CANCEL 0x8020 5128eecc9f 2011-02-23 kinaba: #define ERROR_HARC_ISNOT_OPENED 0x8021 5128eecc9f 2011-02-23 kinaba: #define ERROR_NOT_SEARCH_MODE 0x8022 5128eecc9f 2011-02-23 kinaba: #define ERROR_NOT_SUPPORT 0x8023 5128eecc9f 2011-02-23 kinaba: #define ERROR_TIME_STAMP 0x8024 5128eecc9f 2011-02-23 kinaba: #define ERROR_TMP_OPEN 0x8025 5128eecc9f 2011-02-23 kinaba: #define ERROR_LONG_FILE_NAME 0x8026 5128eecc9f 2011-02-23 kinaba: #define ERROR_ARC_READ_ONLY 0x8027 5128eecc9f 2011-02-23 kinaba: #define ERROR_SAME_NAME_FILE 0x8028 5128eecc9f 2011-02-23 kinaba: #define ERROR_NOT_FIND_ARC_FILE 0x8029 5128eecc9f 2011-02-23 kinaba: #define ERROR_RESPONSE_READ 0x802A 5128eecc9f 2011-02-23 kinaba: #define ERROR_NOT_FILENAME 0x802B 5128eecc9f 2011-02-23 kinaba: #define ERROR_TMP_COPY 0x802C 5128eecc9f 2011-02-23 kinaba: #define ERROR_EOF 0x802D 5128eecc9f 2011-02-23 kinaba: #define ERROR_ADD_TO_LARC 0x802E 5128eecc9f 2011-02-23 kinaba: #define ERROR_TMP_BACK_SPACE 0x802F 5128eecc9f 2011-02-23 kinaba: #define ERROR_SHARING 0x8030 5128eecc9f 2011-02-23 kinaba: #define ERROR_NOT_FIND_FILE 0x8031 5128eecc9f 2011-02-23 kinaba: #define ERROR_LOG_FILE 0x8032 5128eecc9f 2011-02-23 kinaba: #define ERROR_NO_DEVICE 0x8033 5128eecc9f 2011-02-23 kinaba: #define ERROR_GET_ATTRIBUTES 0x8034 5128eecc9f 2011-02-23 kinaba: #define ERROR_SET_ATTRIBUTES 0x8035 5128eecc9f 2011-02-23 kinaba: #define ERROR_GET_INFORMATION 0x8036 5128eecc9f 2011-02-23 kinaba: #define ERROR_GET_POINT 0x8037 5128eecc9f 2011-02-23 kinaba: #define ERROR_SET_POINT 0x8038 5128eecc9f 2011-02-23 kinaba: #define ERROR_CONVERT_TIME 0x8039 5128eecc9f 2011-02-23 kinaba: #define ERROR_GET_TIME 0x803a 5128eecc9f 2011-02-23 kinaba: #define ERROR_SET_TIME 0x803b 5128eecc9f 2011-02-23 kinaba: #define ERROR_CLOSE_FILE 0x803c 5128eecc9f 2011-02-23 kinaba: #define ERROR_HEAP_MEMORY 0x803d 5128eecc9f 2011-02-23 kinaba: #define ERROR_HANDLE 0x803e 5128eecc9f 2011-02-23 kinaba: #define ERROR_TIME_STAMP_RANGE 0x803f 5128eecc9f 2011-02-23 kinaba: #define ERROR_MAKE_ARCHIVE 0x8040 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #define ERROR_END ERROR_MAKE_ARCHIVE 5128eecc9f 2011-02-23 kinaba: #define ERROR_BUF_TOO_SMALL 0x8041 /**/ 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // CONFIG 5128eecc9f 2011-02-23 kinaba: #if !defined(UNPACK_CONFIG_MODE) 5128eecc9f 2011-02-23 kinaba: #define UNPACK_CONFIG_MODE 1 5128eecc9f 2011-02-23 kinaba: #define PACK_CONFIG_MODE 2 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // OPENARCHIVE 5128eecc9f 2011-02-23 kinaba: #if !defined(EXTRACT_FOUND_FILE) 5128eecc9f 2011-02-23 kinaba: #define M_INIT_FILE_USE 0x00000001L 5128eecc9f 2011-02-23 kinaba: #define M_REGARDLESS_INIT_FILE 0x00000002L 5128eecc9f 2011-02-23 kinaba: #define M_NO_BACKGROUND_MODE 0x00000004L 5128eecc9f 2011-02-23 kinaba: #define M_NOT_USE_TIME_STAMP 0x00000008L 5128eecc9f 2011-02-23 kinaba: #define M_EXTRACT_REPLACE_FILE 0x00000010L 5128eecc9f 2011-02-23 kinaba: #define M_EXTRACT_NEW_FILE 0x00000020L 5128eecc9f 2011-02-23 kinaba: #define M_EXTRACT_UPDATE_FILE 0x00000040L 5128eecc9f 2011-02-23 kinaba: #define M_CHECK_ALL_PATH 0x00000100L 5128eecc9f 2011-02-23 kinaba: #define M_CHECK_FILENAME_ONLY 0x00000200L 5128eecc9f 2011-02-23 kinaba: #define M_CHECK_DISK_SIZE 0x00000400L 5128eecc9f 2011-02-23 kinaba: #define M_REGARDLESS_DISK_SIZE 0x00000800L 5128eecc9f 2011-02-23 kinaba: #define M_USE_DRIVE_LETTER 0x00001000L 5128eecc9f 2011-02-23 kinaba: #define M_NOT_USE_DRIVE_LETTER 0x00002000L 5128eecc9f 2011-02-23 kinaba: #define M_INQUIRE_DIRECTORY 0x00004000L 5128eecc9f 2011-02-23 kinaba: #define M_NOT_INQUIRE_DIRECTORY 0x00008000L 5128eecc9f 2011-02-23 kinaba: #define M_INQUIRE_WRITE 0x00010000L 5128eecc9f 2011-02-23 kinaba: #define M_NOT_INQUIRE_WRITE 0x00020000L 5128eecc9f 2011-02-23 kinaba: #define M_CHECK_READONLY 0x00040000L 5128eecc9f 2011-02-23 kinaba: #define M_REGARDLESS_READONLY 0x00080000L 5128eecc9f 2011-02-23 kinaba: #define M_REGARD_E_COMMAND 0x00100000L 5128eecc9f 2011-02-23 kinaba: #define M_REGARD_X_COMMAND 0x00200000L 5128eecc9f 2011-02-23 kinaba: #define M_ERROR_MESSAGE_ON 0x00400000L 5128eecc9f 2011-02-23 kinaba: #define M_ERROR_MESSAGE_OFF 0x00800000L 5128eecc9f 2011-02-23 kinaba: #define M_BAR_WINDOW_ON 0x01000000L 5128eecc9f 2011-02-23 kinaba: #define M_BAR_WINDOW_OFF 0x02000000L 5128eecc9f 2011-02-23 kinaba: #define M_CHECK_PATH 0x04000000L 5128eecc9f 2011-02-23 kinaba: #define M_RECOVERY_ON 0x08000000L 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #define M_MAKE_INDEX_FILE 0x10000000L 5128eecc9f 2011-02-23 kinaba: #define M_NOT_MAKE_INDEX_FILE 0x20000000L 5128eecc9f 2011-02-23 kinaba: #define EXTRACT_FOUND_FILE 0x40000000L 5128eecc9f 2011-02-23 kinaba: #define EXTRACT_NAMED_FILE 0x80000000L 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // ATTRIBUTE 5128eecc9f 2011-02-23 kinaba: #ifndef FA_RDONLY 5128eecc9f 2011-02-23 kinaba: #define FA_RDONLY 0x01 5128eecc9f 2011-02-23 kinaba: #define FA_HIDDEN 0x02 5128eecc9f 2011-02-23 kinaba: #define FA_SYSTEM 0x04 5128eecc9f 2011-02-23 kinaba: #define FA_LABEL 0x08 5128eecc9f 2011-02-23 kinaba: #define FA_DIREC 0x10 5128eecc9f 2011-02-23 kinaba: #define FA_ARCH 0x20 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: #ifndef FA_ENCRYPTED 5128eecc9f 2011-02-23 kinaba: #define FA_ENCRYPTED 0x40 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // STRUCTURES 5128eecc9f 2011-02-23 kinaba: #if defined(__BORLANDC__) 5128eecc9f 2011-02-23 kinaba: #pragma option -a- 5128eecc9f 2011-02-23 kinaba: #else 5128eecc9f 2011-02-23 kinaba: #pragma pack(1) 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: typedef HGLOBAL HARCHIVE; 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #ifndef ARC_DECSTRACT 5128eecc9f 2011-02-23 kinaba: #define ARC_DECSTRACT 5128eecc9f 2011-02-23 kinaba: typedef HGLOBAL HARC; 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: typedef struct { 5128eecc9f 2011-02-23 kinaba: DWORD dwOriginalSize; 5128eecc9f 2011-02-23 kinaba: DWORD dwCompressedSize; 5128eecc9f 2011-02-23 kinaba: DWORD dwCRC; 5128eecc9f 2011-02-23 kinaba: UINT uFlag; 5128eecc9f 2011-02-23 kinaba: UINT uOSType; 5128eecc9f 2011-02-23 kinaba: WORD wRatio; 5128eecc9f 2011-02-23 kinaba: WORD wDate; 5128eecc9f 2011-02-23 kinaba: WORD wTime; 5128eecc9f 2011-02-23 kinaba: char szFileName[FNAME_MAX32 + 1]; 5128eecc9f 2011-02-23 kinaba: char dummy1[3]; 5128eecc9f 2011-02-23 kinaba: char szAttribute[8]; 5128eecc9f 2011-02-23 kinaba: char szMode[8]; 5128eecc9f 2011-02-23 kinaba: } INDIVIDUALINFO, FAR *LPINDIVIDUALINFO; 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: typedef struct { 5128eecc9f 2011-02-23 kinaba: DWORD dwFileSize; 5128eecc9f 2011-02-23 kinaba: DWORD dwWriteSize; 5128eecc9f 2011-02-23 kinaba: char szSourceFileName[FNAME_MAX32 + 1]; 5128eecc9f 2011-02-23 kinaba: char dummy1[3]; 5128eecc9f 2011-02-23 kinaba: char szDestFileName[FNAME_MAX32 + 1]; 5128eecc9f 2011-02-23 kinaba: char dummy[3]; 5128eecc9f 2011-02-23 kinaba: } EXTRACTINGINFO, FAR *LPEXTRACTINGINFO; 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: typedef struct { 5128eecc9f 2011-02-23 kinaba: EXTRACTINGINFO exinfo; 5128eecc9f 2011-02-23 kinaba: DWORD dwCompressedSize; 5128eecc9f 2011-02-23 kinaba: DWORD dwCRC; 5128eecc9f 2011-02-23 kinaba: UINT uOSType; 5128eecc9f 2011-02-23 kinaba: WORD wRatio; 5128eecc9f 2011-02-23 kinaba: WORD wDate; 5128eecc9f 2011-02-23 kinaba: WORD wTime; 5128eecc9f 2011-02-23 kinaba: char szAttribute[8]; 5128eecc9f 2011-02-23 kinaba: char szMode[8]; 5128eecc9f 2011-02-23 kinaba: } EXTRACTINGINFOEX, *LPEXTRACTINGINFOEX; 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #if !defined(__BORLANDC__) 5128eecc9f 2011-02-23 kinaba: #pragma pack() 5128eecc9f 2011-02-23 kinaba: #else 5128eecc9f 2011-02-23 kinaba: #pragma option -a. 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #if !defined(__BORLANDC__) 5128eecc9f 2011-02-23 kinaba: #define _export 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // WindowsMessage 5128eecc9f 2011-02-23 kinaba: #ifndef WM_ARCEXTRACT 5128eecc9f 2011-02-23 kinaba: #define WM_ARCEXTRACT "wm_arcextract" 5128eecc9f 2011-02-23 kinaba: #define ARCEXTRACT_BEGIN 0 5128eecc9f 2011-02-23 kinaba: #define ARCEXTRACT_INPROCESS 1 5128eecc9f 2011-02-23 kinaba: #define ARCEXTRACT_END 2 5128eecc9f 2011-02-23 kinaba: #define ARCEXTRACT_OPEN 3 5128eecc9f 2011-02-23 kinaba: #define ARCEXTRACT_COPY 4 5128eecc9f 2011-02-23 kinaba: typedef BOOL CALLBACK ARCHIVERPROC(HWND,UINT,UINT,LPEXTRACTINGINFOEX); 5128eecc9f 2011-02-23 kinaba: typedef ARCHIVERPROC *LPARCHIVERPROC; 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/ 5128eecc9f 2011-02-23 kinaba: // 統合アーカイバDLLを非常に薄く覆うレイヤ 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: class kiArcDLLRaw 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: public: //-- 外向きインターフェイス -------------------------- 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // DLL名で初期化。 5128eecc9f 2011-02-23 kinaba: kiArcDLLRaw( const char* dllname ); 5128eecc9f 2011-02-23 kinaba: kiPath& name() 5128eecc9f 2011-02-23 kinaba: { return m_DllPath; } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // DLLが生きているかどうか。 5128eecc9f 2011-02-23 kinaba: bool isAlive(); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // API のラッパ [ DLLやAPIが無いときの返値 ] 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // バージョンx100 [ 0 ] 5128eecc9f 2011-02-23 kinaba: WORD getVer(); 5128eecc9f 2011-02-23 kinaba: // バージョンサブx100 [ 0 ] 5128eecc9f 2011-02-23 kinaba: WORD getVerSub(); 5128eecc9f 2011-02-23 kinaba: // バージョンサブが取れるかどうか? 5128eecc9f 2011-02-23 kinaba: bool isVerSubAvail(); 5128eecc9f 2011-02-23 kinaba: // コマンド送り [ ERROR_NOT_SUPPORT ] 5128eecc9f 2011-02-23 kinaba: int command( const HWND wnd, LPCSTR cmd, LPSTR buf, const DWORD siz ); 5128eecc9f 2011-02-23 kinaba: // 書庫チェック [ FALSE ] 5128eecc9f 2011-02-23 kinaba: BOOL check( LPCSTR filename, const int mode ); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // 開く [ NULL ] 5128eecc9f 2011-02-23 kinaba: HARC openArc( const HWND wnd, LPCSTR arcname, const DWORD flag ); 5128eecc9f 2011-02-23 kinaba: // 閉じる 5128eecc9f 2011-02-23 kinaba: void closeArc( HARC arc ); 5128eecc9f 2011-02-23 kinaba: // 一つ目を検索 [ ERROR_NOT_SUPPORT ] 5128eecc9f 2011-02-23 kinaba: int findfirst( HARC arc, LPCSTR wildname, INDIVIDUALINFO* inf ); 5128eecc9f 2011-02-23 kinaba: // 二つ目以降を検索 [ ERROR_NOT_SUPPORT ] 5128eecc9f 2011-02-23 kinaba: int findnext( HARC arc, INDIVIDUALINFO* inf ); 5128eecc9f 2011-02-23 kinaba: // 属性取得 [ 0 ] 5128eecc9f 2011-02-23 kinaba: int getAttr( HARC arc ); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // オーナー指定 [ FALSE ] 5128eecc9f 2011-02-23 kinaba: BOOL setOwner( HWND wnd ); 5128eecc9f 2011-02-23 kinaba: // オーナー解除 [ FALSE ] 5128eecc9f 2011-02-23 kinaba: BOOL clearOwner(); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // ※load系は呼ばなくても内部で何とかするのでできれば使わないこと。 5128eecc9f 2011-02-23 kinaba: bool load(); 5128eecc9f 2011-02-23 kinaba: void unload(); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: private: //-- 内部処理 ----------------------------------- 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: HINSTANCE m_hDLL; 5128eecc9f 2011-02-23 kinaba: bool not_loaded_yet; 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: kiPath m_DllPath; 5128eecc9f 2011-02-23 kinaba: kiStr m_DllNameBody; 5128eecc9f 2011-02-23 kinaba: FARPROC getProc( const char* procname ); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: FARPROC m_Proc[ ISARC_FUNCTION_END ]; 5128eecc9f 2011-02-23 kinaba: FARPROC f_VSb; 5128eecc9f 2011-02-23 kinaba: #define f_Cmd m_Proc[ ISARC ] 5128eecc9f 2011-02-23 kinaba: #define f_Chk m_Proc[ ISARC_GET_VERSION ] 5128eecc9f 2011-02-23 kinaba: #define f_Ver m_Proc[ ISARC_CHECK_ARCHIVE ] 5128eecc9f 2011-02-23 kinaba: #define f_Opn m_Proc[ ISARC_OPEN_ARCHIVE ] 5128eecc9f 2011-02-23 kinaba: #define f_Cls m_Proc[ ISARC_CLOSE_ARCHIVE ] 5128eecc9f 2011-02-23 kinaba: #define f_Ffs m_Proc[ ISARC_FIND_FIRST ] 5128eecc9f 2011-02-23 kinaba: #define f_Fnx m_Proc[ ISARC_FIND_NEXT ] 5128eecc9f 2011-02-23 kinaba: #define f_GAr m_Proc[ ISARC_GET_ATTRIBUTE ] 5128eecc9f 2011-02-23 kinaba: #define f_SOw m_Proc[ ISARC_SETOWNERWINDOW ] 5128eecc9f 2011-02-23 kinaba: #define f_COw m_Proc[ ISARC_CLEAROWNERWINDOW ] 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: public: 5128eecc9f 2011-02-23 kinaba: virtual ~kiArcDLLRaw(); 5128eecc9f 2011-02-23 kinaba: }; 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #endif