00001 00010 #define DKUTIL_C_UNITY_ARCHIVERS 00011 00012 #include "dkcUnityArchivers.h" 00013 00014 #ifdef WIN32 00015 00016 00017 DKC_UNITY_ARCHIVERS *WINAPI 00018 dkcAllocUnityArchivers(const char *dllname,const char *function_prefix) 00019 { 00020 00021 DKC_UNITY_ARCHIVERS *p = dkcAllocate(sizeof(DKC_UNITY_ARCHIVERS)); 00022 DKC_DLL *dp; 00023 if(NULL==p){ 00024 return NULL; 00025 } 00026 dp = dkcLoadLibrary(dllname); 00027 if(NULL==dp){ 00028 goto Error; 00029 } 00030 p->mDLL = dp; 00031 00032 Error: 00033 dkcFree(&p); 00034 return NULL; 00035 } 00036 00037 int WINAPI dkcFreeUnityArchivers(DKC_UNITY_ARCHIVERS **pp){ 00038 DKC_UNITY_ARCHIVERS *p = *pp; 00039 if(NULL==pp || NULL==p){ 00040 return edk_FAILED; 00041 } 00042 dkcUnloadLibrary(&(p->mDLL)); 00043 return dkcFree(&p); 00044 } 00045 00046 00047 int WINAPI dkcUnityArchiversDirectoryToArchive(DKC_UNITY_ARCHIVERS *p,const char *dir_or_file,const char *filename) 00048 { 00049 int r = edk_FAILED; 00050 return r; 00051 } 00052 00053 int WINAPI dkcUnityArchiversArchiveToDirectory(DKC_UNITY_ARCHIVERS *p,const char *filename,const char *dir_or_file) 00054 { 00055 int r = edk_FAILED; 00056 return r; 00057 } 00058 00059 00060 #endif//end of WIN32 00061 00062 #ifdef _MSC_VER 00063 # pragma warning(disable:4055) 00064 #endif 00065 00066 int WINAPI dkcUnityArchiversCommand(const char *dllname,const char *command_function_name,const char *command, 00067 char *StringResultOutputBuffer,size_t output_size,int *archiver_result,HWND wnd) 00068 { 00069 DKC_DLL *dp = NULL; 00070 DKC_UA_ARC_F_TYPE func = NULL; 00071 int r = edk_FAILED; 00072 dp = dkcLoadLibrary(dllname); 00073 if(NULL==dp){ 00074 return r; 00075 } 00076 func = (DKC_UA_ARC_F_TYPE)dkcGetProcAddress(dp,command_function_name); 00077 if(NULL==func){ 00078 goto Error; 00079 } 00080 r = func(NULL,command,StringResultOutputBuffer,output_size); 00081 if(archiver_result){ 00082 *archiver_result = r; 00083 } 00084 if(0 != r){ 00085 r = edk_FAILED; 00086 goto Error; 00087 } 00088 r = edk_SUCCEEDED; 00089 Error: 00090 dkcUnloadLibrary(&dp); 00091 return r; 00092 } 00093 00094 00095 00096 00097 #ifdef _MSC_VER 00098 # pragma warning(default:4055) 00099 #endif