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
00034
00035
00036 typedef struct {
00037 DWORD dwOriginalSize;
00038 DWORD dwCompressedSize;
00039 DWORD dwCRC;
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
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
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
00114
00115 typedef BOOL (WINAPI *DKC_UA_QUERYENCRYPTION_F_TYPE)(VOID);
00116
00117
00118
00119
00120
00121
00122
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