メインページ | アルファベット順一覧 | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

# dkcUnityArchivers.h

説明を見る。

    00001
    00011 #ifndef DKUTIL_C_UNITY_ARCHIVERS_H
    00012 #define DKUTIL_C_UNITY_ARCHIVERS_H
    00013
    00014
    00015 #include "dkcOSIndependent.h"
    00016 #include "dkcDLL.h"
    00017
    00018 #define dkcdUNITY_ARCHIVERS_FILENAME_MAX    512
    00019 #ifndef WIN32 //posix... ??
    00020
    00021 typedef void *HWND;
    00022 typedef int     (WINAPI* DKC_UA_ARC_F_TYPE)(const HWND, const char *, char*, const DWORD);
    00023
    00024 #else //win32
    00025
    00026
    00027
    00028 #include <time.h>
    00029
    00030
    00031 typedef BOOL (CALLBACK *DKC_UA_ARCHIVER_WND_PROC_F_TYPE)(HWND _hwnd, UINT _uMsg,
    00032                         UINT _nState, LPVOID _lpEis);
    00033 //typedef ARCHIVERPROC *LPARCHIVERPROC;
    00034
    00035
    00036 typedef struct {
    00037     DWORD   dwOriginalSize;     /* ファイルのサイズ。       */
    00038     DWORD   dwCompressedSize;   /* 圧縮後のサイズ。     */
    00039     DWORD   dwCRC;          /* 格納ファイルのチェックサム/CRC */
    00040     UINT    uFlag;          /* 解凍やテストの処理結果   */
    00041     UINT    uOSType;        /* このファイルの作成に使われたＯＳ。*/
    00042     WORD    wRatio;         /* 圧縮率（パーミル)        */
    00043     WORD    wDate;          /* 格納ファイルの日付。     */
    00044     WORD    wTime;          /* 格納ファイルの時刻。     */
    00045     char    szFileName[dkcdUNITY_ARCHIVERS_FILENAME_MAX + 1];/* アーカイブファイル名*/
    00046     char    dummy1[3];
    00047     char    szAttribute[8];     /* 格納ファイルの属性。     */
    00048     char    szMode[8];      /* 格納ファイルの格納モード。   */
    00049 } INDIVIDUALINFO, FAR *LPINDIVIDUALINFO;
    00050
    00051 typedef HGLOBAL HARC;
    00052 //  LHA.DLL 互換
    00053 typedef WORD    (WINAPI* DKC_UA_GETVERSION_F_TYPE)();
    00054 typedef BOOL    (WINAPI* DKC_UA_GETRUNNING_F_TYPE)();
    00055 typedef BOOL    (WINAPI* DKC_UA_GETBACKGROUDMODE_F_TYPE)();
    00056 typedef BOOL    (WINAPI* DKC_UA_SETBACKGROUDMODE_F_TYPE)(const BOOL);
    00057 typedef BOOL    (WINAPI* DKC_UA_GETCURSORMODE_F_TYPE)();
    00058 typedef BOOL    (WINAPI* DKC_UA_SETCURSORMODE_F_TYPE)(const BOOL);
    00059 typedef WORD    (WINAPI* DKC_UA_GETCURSORINTERVAL_F_TYPE)();
    00060 typedef BOOL    (WINAPI* DKC_UA_SETCURSORINTERVAL_F_TYPE)(const WORD);
    00061 typedef int     (WINAPI* DKC_UA_ARC_F_TYPE)(const HWND, LPCSTR, LPSTR, const DWORD);
    00062 typedef BOOL    (WINAPI* DKC_UA_CHECKARCHIVE_F_TYPE)(LPCSTR , const int);
    00063 typedef int     (WINAPI* DKC_UA_GETFILECOUNT_F_TYPE)(LPCSTR);
    00064 typedef BOOL    (WINAPI* DKC_UA_QUERYFUNCTIONLIST_F_TYPE)(const int);
    00065 typedef BOOL    (WINAPI* DKC_UA_CONFIGDIALOG_F_TYPE)(const HWND, LPSTR, const int);
    00066 // OpenArchive 系
    00067 typedef HARC    (WINAPI* DKC_UA_OPENARCHIVE_F_TYPE)(const HWND, LPCSTR, const DWORD);
    00068 typedef int     (WINAPI* DKC_UA_CLOSEARCHIVE_F_TYPE)(HARC);
    00069 typedef int     (WINAPI* DKC_UA_FINDFIRST_F_TYPE)(HARC , LPCSTR, INDIVIDUALINFO*);
    00070 typedef int     (WINAPI* DKC_UA_FINDNEXT_F_TYPE)(HARC, INDIVIDUALINFO*);
    00071 typedef int     (WINAPI* DKC_UA_GETARCFILENAME_F_TYPE)(HARC , LPSTR, const int);
    00072 typedef DWORD   (WINAPI* DKC_UA_GETARCFILESIZE_F_TYPE)(HARC);
    00073 typedef DWORD   (WINAPI* DKC_UA_GETARCORIGINALSIZE_F_TYPE)(HARC);
    00074 typedef DWORD   (WINAPI* DKC_UA_GETARCCOMPRESSEDSIZE_F_TYPE)(HARC);
    00075 typedef WORD    (WINAPI* DKC_UA_GETARCRATIO_F_TYPE)(HARC);
    00076 typedef WORD    (WINAPI* DKC_UA_GETARCDATE_F_TYPE)(HARC);
    00077 typedef WORD    (WINAPI* DKC_UA_GETARCTIME_F_TYPE)(HARC);
    00078 typedef UINT    (WINAPI* DKC_UA_GETARCOSTYPE_F_TYPE)(HARC);
    00079 typedef int     (WINAPI* DKC_UA_ISSFXFILE_F_TYPE)(HARC);
    00080 typedef int     (WINAPI* DKC_UA_GETFILENAME_F_TYPE)(HARC, LPSTR, const int);
    00081 typedef int     (WINAPI* DKC_UA_GETMETHOD_F_TYPE)(HARC, LPSTR, const int);
    00082 typedef DWORD   (WINAPI* DKC_UA_GETORIGINALSIZE_F_TYPE)(HARC);
    00083 typedef DWORD   (WINAPI* DKC_UA_GETCOMPRESSEDSIZE_F_TYPE)(HARC);
    00084 typedef WORD    (WINAPI* DKC_UA_GETRATIO_F_TYPE)(HARC);
    00085 typedef WORD    (WINAPI* DKC_UA_GETDATE_F_TYPE)(HARC);
    00086 typedef WORD    (WINAPI* DKC_UA_GETTIME_F_TYPE)(HARC);
    00087 typedef DWORD   (WINAPI* DKC_UA_GETWRITETIME_F_TYPE)(HARC);
    00088 typedef DWORD   (WINAPI* DKC_UA_GETCREATETIME_F_TYPE)(HARC);
    00089 typedef DWORD   (WINAPI* DKC_UA_GETACCESSTIME_F_TYPE)(HARC);
    00090 typedef DWORD   (WINAPI* DKC_UA_GETCRC_F_TYPE)(HARC);
    00091 typedef int     (WINAPI* DKC_UA_GETATTRIBUTE_F_TYPE)(HARC);
    00092 typedef UINT    (WINAPI* DKC_UA_GETOSTYPE_F_TYPE)(HARC);
    00093 typedef DWORD   (WINAPI* DKC_UA_GETWRITETIMEEX_F_TYPE)(HARC, LPFILETIME);
    00094 typedef DWORD   (WINAPI* DKC_UA_GETCREATETIMEEX_F_TYPE)(HARC, LPFILETIME);
    00095 typedef DWORD   (WINAPI* DKC_UA_GETACCESSTIMEEX_F_TYPE)(HARC, LPFILETIME);
    00096 typedef BOOL    (WINAPI* DKC_UA_GETARCCREATETIMEEX_F_TYPE)(HARC, LPFILETIME);
    00097 typedef BOOL    (WINAPI* DKC_UA_GETARCACCESSTIMEEX_F_TYPE)(HARC, LPFILETIME);
    00098 typedef BOOL    (WINAPI* DKC_UA_GETARCWRITETIMEEX_F_TYPE)(HARC, LPFILETIME);
    00099 // メッセージ処理
    00100 typedef BOOL    (WINAPI* DKC_UA_SETOWNERWINDOW_F_TYPE)(const HWND);
    00101 typedef BOOL    (WINAPI* DKC_UA_CLEAROWNERWINDOW_F_TYPE)();
    00102 typedef BOOL    (WINAPI* DKC_UA_SETOWNERWINDOWEX_F_TYPE)(HWND, DKC_UA_ARCHIVER_WND_PROC_F_TYPE);
    00103 typedef BOOL    (WINAPI* DKC_UA_KILLOWNERWINDOWEX_F_TYPE)(HWND);
    00104 // その他のもの
    00106 typedef BOOL (CALLBACK *dkctWND_ENUM_PROC_F_TYPE)(LPVOID);
    00107 typedef WORD    (WINAPI* DKC_UA_GETSUBVERSION_F_TYPE)();
    00108 typedef int     (WINAPI* DKC_UA_EXTRACTMEM_F_TYPE)(const HWND, LPCSTR, LPBYTE, const DWORD, time_t*, LPWORD, LPDWORD);
    00109 typedef int     (WINAPI* DKC_UA_COMPRESSMEM_F_TYPE)(const HWND, LPCSTR, const BYTE*, const DWORD, const time_t*, const WORD*, LPDWORD);
    00110 typedef BOOL    (WINAPI* DKC_UA_SETENUMMEMBERSPROC_F_TYPE)(dkctWND_ENUM_PROC);
    00111 typedef BOOL    (WINAPI* DKC_UA_CLEARENUMMEMBERSPROC_F_TYPE)();
    00112
    00113 //ZIP用
    00114
    00115 typedef BOOL (WINAPI *DKC_UA_QUERYENCRYPTION_F_TYPE)(VOID);
    00116
    00117 //エクスポート関数の ID の最大値
    00118 //#define ISARC_FUNCTION_END    81
    00119
    00120 //エラーコード
    00121 //#define ERROR_CANT_LOAD_DLL    (ERROR_END + 1)
    00122 //#define ERROR_CANT_FREE_DLL    (ERROR_END + 2)
    00123
    00128 typedef struct dkc_UnityArchivers{
    00129     DKC_UA_GETVERSION_F_TYPE UAGetVersion;
    00130     DKC_UA_GETRUNNING_F_TYPE UAGetRunning;
    00131
    00132     DKC_UA_ARC_F_TYPE UA;
    00133     DKC_UA_CONFIGDIALOG_F_TYPE UAConfigDialogv;
    00134     DKC_UA_QUERYFUNCTIONLIST_F_TYPE UAQueryFunctionList;
    00135     DKC_UA_QUERYENCRYPTION_F_TYPE UAQueryEncryption;
    00136
    00137     DKC_UA_ARC_F_TYPE UnUA;
    00138     DKC_UA_GETVERSION_F_TYPE UnUAGetVersion;
    00139     DKC_UA_OPENARCHIVE_F_TYPE UnUAOpenArchive;
    00140     DKC_UA_FINDFIRST_F_TYPE UnUAFindFirst;
    00141     DKC_UA_CLOSEARCHIVE_F_TYPE UnUACloseArchive;
    00142     DKC_UA_FINDNEXT_F_TYPE UnUAFindNext;
    00143     DKC_UA_QUERYFUNCTIONLIST_F_TYPE UnUAQueryFunctionList;
    00144
    00145     DKC_UA_ARC_F_TYPE UAUnUA;
    00146     DKC_UA_GETVERSION_F_TYPE UAUnUAGetVersion;
    00147     DKC_UA_OPENARCHIVE_F_TYPE UAUnUAOpenArchive;
    00148     DKC_UA_FINDFIRST_F_TYPE UAUnUAFindFirst;
    00149     DKC_UA_CLOSEARCHIVE_F_TYPE UAUnUACloseArchive;
    00150     DKC_UA_FINDNEXT_F_TYPE UAUnUAFindNext;
    00151     DKC_UA_QUERYFUNCTIONLIST_F_TYPE UAUnUAQueryFunctionList;
    00152     DKC_DLL *mDLL;
    00153 }DKC_UNITY_ARCHIVERS,DKC_UNIFIED_ARCHIVERS;//普通、二つ名前をもつのは邪道なのだが･･･
    00154
    00155 DKC_UNITY_ARCHIVERS *WINAPI dkcAllocUnityArchivers(const char *dllname,const char *function_prefix);
    00156
    00157 int WINAPI dkcFreeUnityArchivers(DKC_UNITY_ARCHIVERS **);
    00158
    00159 int WINAPI dkcUnityArchiversDirectoryToArchive(DKC_UNITY_ARCHIVERS *,const char *dir_or_file,const char *filename);
    00160
    00161 int WINAPI dkcUnityArchiversArchiveToDirectory(DKC_UNITY_ARCHIVERS *,const char *filename,const char *dir_or_file);
    00162
    00163 #endif //end of WIN32
    00164
    00168
    00169 int WINAPI  dkcUnityArchiversCommand(
    00170         const char *dllname,const char *command_function_name,const char *command,
    00171         char *StringResultOutputBuffer,size_t output_size,int *archiver_result,HWND wnd
    00172     );
    00173
    00174 #endif //end of include once