00001
00014 #ifndef DKUTIL_C_DEFINED_H
00015 #define DKUTIL_C_DEFINED_H
00016
00017
00018 #include <stdio.h>
00019 #include <stddef.h>
00020
00021
00022
00023
00024
00025
00026
00028 #define DKINGYO_ULONGLONG_MAX 18446744073709551615
00029
00030 #define DKINGYO_LONGLONG_MAX 9223372036854775807
00031
00032 #define DKINGYO_LONGLONG_MIN -9223372036854775808
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 #ifdef __cplusplus
00048 # define DKUTIL_EXTERN extern "C"
00049 #else
00050
00051 # define DKUTIL_EXTERN extern
00052 #endif
00053
00054
00055 #ifndef DKC_INLINE
00056 # if _MSC_VER >= 1100
00057 # define DKC_INLINE _inline
00058 # elif defined(__inline)
00059 # define DKC_INLINE __inline
00060 # else
00061 # define DKC_INLINE
00062 # endif
00063 #endif
00064
00065
00066 #ifdef WIN32
00067 # define DKC_EXPORT __declspec(dllexport)
00068 # define DKC_IMPORT __declspec(dllimport)
00069 # ifdef USE_DKC_DLL
00070 # ifdef DKCDLL_EXPORTS
00071 # define DKC_EXTERN DKUTIL_EXTERN DKC_EXPORT
00072 # else
00073 # define DKC_EXTERN DKUTIL_EXTERN DKC_INPORT
00074 # endif
00075 # else
00076 # ifdef _MSC_VER
00077 # define DKC_EXTERN DKUTIL_EXTERN DKC_INLINE
00078 # else
00079 # define DKC_EXTERN DKUTIL_EXTERN
00080 # endif
00081 # endif
00082 #else
00083 # define DKC_EXPORT
00084 # define DKC_IMPORT
00085 # define DKC_EXTERN DKUTIL_EXTERN
00086 #endif
00087
00088
00089
00090
00091
00092
00093
00094
00096 #define DKINGYO_NOT_MOUNTED -100
00097
00098 #define DKINGYO_NO_DEFINED_FUNCTION DKINGYO_NOT_MOUNTED
00099
00100
00101
00102 #ifdef _DEBUG
00103 # ifndef DEBUG
00104 # define DEBUG
00105 # endif
00106 #endif
00107 #ifdef _NDEBUG
00108 # ifndef NDEBUG
00109 # define NDEBUG
00110 # endif
00111 #endif
00112
00113
00114
00115
00116
00117
00118
00119
00120 enum edkOS{
00121 enuWindows3_1 = 1,
00122 enuWindowsNT3_51,
00123 enuWindowsNT4_0,
00124 enuWindows95,
00125 enuWindows98,
00126 enuWindows2000,
00127 enuWindowsMe,
00128 enuWindowsXP,
00130 enuWindows_NET,
00131
00132 };
00133
00134
00135 enum edkOSExtension{
00137 edkOSE_OSR2 = 1,
00139 edkOSE_edkSE,
00141 edkOSE_HomeEditon,
00143 edkOSE_Professional,
00145 edkOSE_DataCenter_Server,
00147 edkOSE_Advanced_Server,
00148 edkOSE_Enterprise_Server,
00149 edkOSE_Web_Server,
00151 edkOSE_Server,
00152
00153 };
00154
00156 enum{
00157 enuDKINGYO_BMPFILEHEADER_ADR = 1,
00158 enuDKINGYO_BMPCOREHEADER_ADR,
00159 enuDKINGYO_BMPINFOHEADER_ADR,
00160 enuDKINGYO_BMPPALLETE_ADR,
00161 enuDKINGYO_BMPGRAPH_ADR,
00163 enuDKINGYO_ISBMPFILE_EXACT_CHECK,
00165 enuDKINGYO_ISBMPFILE_CAMOUFLAGE_CHECK,
00166 };
00167
00169 enum edkVariableType{
00171 edkVariableUnknown = 0,
00173 edkInt,
00175 edkUInt,
00177 edkLongLong,
00179 edkULongLong,
00181 edkDouble,
00183 edkString,
00184 };
00185
00186
00187
00189 enum{
00191 enuSTRLENGTH_INT_DU = 1,
00193 enuSTRLENGTH_UINT_DU,
00195 enuSTRLENGTH_LONGLONG_DU,
00197 enuSTRLENGTH_ULONGLONG_DU,
00199 enuSTRLENGTH_DOUBLE,
00200 };
00201
00203 enum edkFileSignature{
00204 edkfALL = 0,
00205
00206 edkfTXT,
00207 edkfHTML,
00208 edkfXML,
00209
00210 edkfAVI,
00211 edkfMPEG,
00212 edkfMOV,
00213
00214 edkfWAV,
00215 edkfMIDI,
00216 edkfMP3,
00217 edkfOGG,
00218
00219 edkfPNG,
00220 edkfBMP,
00221 edkfTIFF,
00222 edkfJPEG,
00223 edkfGIF,
00224
00225 edkfZIP,
00226 edkfLZH,
00227 edkfGZ,
00228 edkfGCA,
00229 edkfDGC,
00230 edkfRAR,
00231
00232 edkfSENTINEL,
00233 };
00234
00240 enum edk_ProcessSignatures{
00241 edk_NONE_SIGNATURE = 0,
00242
00243
00244 edk_LZSS_SIGNATURE = 10,
00245 edk_ZLIB_SIGNATURE,
00246 edk_RLE_PACKBITS_SIGNATURE,
00247 edk_BLOCKSORT_SIGNATURE,
00248
00249
00250 edk_BLOWFISH_SIGNATURE = 100,
00251
00252
00253
00254
00255 };
00256
00257
00258
00264 enum edkResult{
00266 edk_FAILED = -1,
00268 edk_SUCCEEDED = 0,
00270 edk_Not_Found,
00272 edk_FileNotFound,
00274 edk_Not_Selected,
00276 edk_ArgumentException,
00278 edk_ParsingError,
00279
00286 edk_LogicError,
00288 edk_BufferOverFlow,
00290 edk_OutputBufferWasLost,
00292 edk_InputBufferWasLost,
00293
00294
00296 edk_SignatureException,
00298 edk_Not_Satisfactory,
00300 edk_Not_Defined_Function,
00302 edk_OutOfMemory,
00304 edk_EndProcess,
00306 edk_LogicException,
00308 edk_NoValueToProcess,
00309
00310 edk_FileCheated_Change,
00312 edk_FileCheated_Addition,
00313 };
00314
00315 #define DKUTIL_SUCCEEDED(s) (s==edk_SUCCEEDED)
00316 #define DKUTIL_FAILED(s) (s)//(s != edk_SUCCEEDED)
00317 #define DKUTIL_FAILED_BOOL(s) (s != edk_SUCCEEDED)
00318 #define DKUTIL_SUCCEEDED_BOOL(s) (s==edk_SUCCEEDED)
00319
00320
00321
00322 enum{
00324 enuExtendVaListLength = 256,
00326 enuDefaultExpandSize = 100,
00327 };
00328
00329
00330
00331
00332
00333
00334 typedef void (*VOIDFUNC)(void);
00335 typedef void (*VOIDARGFUNC)(void *);
00336 typedef void (*VOIDARGFUNCFLAG)(void *,int);
00337
00338
00339 #if 0
00340
00341
00342
00344 typedef void (*OGG_CALLBACK_DU)(char *ptr,size_t permit_num,size_t offset);
00345
00346
00347
00348
00349 typedef BOOL (*ISTYPE_DU)(void);
00350 typedef void (*NAMETYPE_DU)(char *,size_t);
00351 typedef long (*CPUCLOCK_DU)(void);
00352
00353 typedef struct dCPUInfoObject{
00354 ISTYPE_DU isMMX;
00355 ISTYPE_DU isMMX2;
00356 ISTYPE_DU isSSE;
00357 ISTYPE_DU isSSE2;
00358 ISTYPE_DU is3DNOW;
00359 ISTYPE_DU isE3DNOW;
00360 ISTYPE_DU isFPU;
00361 ISTYPE_DU isTSC;
00362 ISTYPE_DU isCPUID;
00363 CPUCLOCK_DU GetCPUClock;
00364 NAMETYPE_DU CopyCPUName;
00365 NAMETYPE_DU CopyCPUType;
00366 NAMETYPE_DU CopyCPUInfo;
00367 }DKINGYOUTILITY2_CPU_INFO;
00368
00369
00370
00371
00372 enum edkCSTL{
00373 edkCSTL_push_back = 1,
00374 edkCSTL_push_front,
00375 edkCSTL_insert,
00376 }
00377
00379 struct dkutil_CSTLContainer{
00381 void *(*begin)(void);
00383 void *(*end)(void);
00385 void *(*next)(int);
00387 void *(*first_data)(void);
00389 void *(*next_data)(int);
00398
00399 int (*insert)(int flag,void *data,size_t size,const void *priority,size_t priority_size);
00400 };
00401
00402
00403
00405 typedef void (*SLIST_PUSH_DU)(size_t,const char *,size_t);
00407 typedef void (*SLIST_POP_DU)(size_t,void);
00409 typedef char *(*SLIST_GET_ITERATOR_DU)(size_t,void);
00411 typedef char *(SLIST_NEXT_DU)(size_t,const char *);
00412
00414 typedef struct dSingleListObject{
00415 size_t handle;
00416 int (*push_back)(struct dSingleListObject *,const char *,size_t);
00417 int (*push_front)(struct dSingleListObject *,const char *,size_t);
00418 int (*pop_front)(struct dSingleListObject *);
00419 int (*clear)(struct dSingleListObject *);
00420 char *(*begin)(struct dSingleListObject *);
00421 char *(*end)(struct dSingleListObject *);
00422 char *(*next)(struct dSingleListObject *,char *);
00423 int (*destructor)(struct dSingleListObject *);
00424 int (*constructor)(struct dSingleListObject *);
00425 char *(*reference_ptr)(struct dSingleListObject *,char *);
00426 void (*set_size)(struct dSingleListObject *,size_t );
00427 }DKINGYOUTILITY2_SINGLE_LIST;
00428
00429
00430
00431
00433 enum edkParsedStringType{
00434 enuDU2CSV_STRING = 1,
00436 enuDU2CSV_STRING_32MORE,
00437 enuDU2CSV_INT,
00438 enuDU2CSV_LONGLONG,
00439 enuDU2CSV_ULONGLONG,
00440 enuDU2CSV_DOUBLE,
00441 };
00442
00444 #define DCSVSTRUCTURE_PERMITSIZE_OFFSET_EXTENTION_NUM 3
00445
00446 #define DCSVSTRUCTURE_DEFAULT_STRING_BUFF_SIZE 32
00447
00448 typedef struct dCSVStructure{
00449 size_t x,y;
00450 int datatype;
00451 union{
00452 union{
00453 union{
00454 char str[DCSVSTRUCTURE_DEFAULT_STRING_BUFF_SIZE];
00455 size_t permitsize[4];
00456 };
00457 char *ptr;
00458 };
00459 int i;
00460 LONGLONG ll;
00461 ULONGLONG ull;
00462 double dbl;
00463 };
00464
00465
00466 void (*constructor)(struct dCSVStructure *,int,size_t);
00467 void (*destructor)(struct dCSVStructure *);
00468 }DKINGYOUTILITY2_CSV_STRUCTURE;
00469
00470 #endif
00471
00472 typedef struct dkc_Allocator{
00473 void (*malloc__)(size_t size);
00474 void (*free__)(void *);
00475 void (*realloc__)(void *,size_t);
00476 void (*zero_memory)(void *,size_t);
00477 }DKC_ALLOCATOR;
00478
00479
00480
00481
00482
00483
00485 #define MB(str) MessageBox(NULL,str,"Message",MB_OK)//MessageBox
00486
00487 #define MB2(s,title) MessageBox(NULL,s,title,MB_OK);
00488
00489 #define ODS(str) OutputDebugString(str)//OutputDebugString
00490
00492 #define SWAP_NUM(a,b) \
00493 a = b - a ;\
00494 b -= a ;\
00495 a += b
00496
00500 #define SWAP_NUM_EX(a,b,ex) \
00501 (ex)a = (ex)(b - a ); \
00502 (ex)b = (ex)(b - a ); \
00503 (ex)a = (ex)(a + b )
00504
00512
00513 #define SM_OFFSET(p_type,field) ((unsigned int)&(((p_type)NULL)->field))
00514
00516 #define SET_RECT(rect, l, t, r, b) \
00517 {\
00518 rect##.left = l;\
00519 rect##.top = t;\
00520 rect##.right = r;\
00521 rect##.bottom = b;\
00522 }
00523
00524 #define NULL_CHAR_ARRAY(s) memset((void *)s,0,sizeof(s))
00525
00526
00527
00528
00529 #ifdef __cplusplus
00530
00560
00561 #define SET_VA_LIST(buff,buffnum,origin) \
00562 {\
00563 va_list VaList;\
00564 va_start( VaList , origin ) ;\
00565 int r;\
00566 r = _vsnprintf( buff ,buffnum - 1, origin , VaList );\
00567 if(0 > r){\
00568 buff[buffnum - 1] = '\0';\
00569 }else{\
00570 buff[r+1] = '\0';\
00571 }\
00572 va_end( VaList ); \
00573 }
00574
00575
00576 # define DKUTIL_SAFE_REALLOC(b,s) ::realloc(b,s)
00577 # define DKUTIL_SAFE_MALLOC(s) ::malloc(s)
00578 # define DKUTIL_SAFE_FREE(a) if(a){::free(a);a=NULL;}
00579
00581 # define DKUTIL_STRUCTURE_INIT(s) ::memset(&(s),0,sizeof(s))
00582
00583 # define DKUTIL_MEMZERO(mem,size) ::memset(mem,0,size)
00584 #else // for c lang
00585
00586
00587
00588 #define DKUTIL_SAFE_REALLOC(b,s) realloc(b,s)
00589 #define DKUTIL_SAFE_MALLOC(s) malloc(s)
00590 #define DKUTIL_SAFE_FREE(a) if(a){free(a);a=NULL;}
00591 #define DKUTIL_STRUCTURE_INIT(s) memset(&(s),0,sizeof(s))
00592
00593 # define DKUTIL_MEMZERO(mem__,size__) memset(mem__,0,size__)
00594 #endif
00595
00596
00597 #define SET_VA_LIST_C(VaList,r,buff,buffnum,origin) \
00598 {\
00599 va_start( VaList , origin ) ;\
00600 r = _vsnprintf( buff ,buffnum - 1, origin , VaList );\
00601 if(0 > r){\
00602 buff[buffnum - 1] = '\0';\
00603 }else{\
00604 buff[r+1] = '\0';\
00605 }\
00606 va_end( VaList ); \
00607 }
00608
00610 #define DKUTIL_ARRAY_NUMOF(array) (sizeof(array)/sizeof(array[0]))
00611
00612 #define DKUTIL_NAMELINK(X,Y) X##Y
00613
00614 #define DKUTIL_MAKESIGNATURE(X) DKUTIL_NAMELINK(X,__LINE__)
00615
00616 #define DKUTIL_MAKE_UINT_ID(id) ((((UINT)(id) & 0xFF) << 24) | \
00617 (((UINT)(id) & 0xFF00) << 8) | \
00618 (((UINT)(id) & 0xFF0000) >> 8) | \
00619 (((UINT)(id) & 0xFF000000) >> 24))
00620
00622 #define DKUTIL_FLAG_DOWN(x,n) {x &= ~n;}//{(x & n) ? x |= (x^n) : 0;}//{x |= (x^n);}
00623
00624 #define DKUTIL_FLAG_UP(x,n) {x |= n;}
00625
00627
00628 #define DKUTIL_FLAG_UP_N(x,n) DKUTIL_FLAG_UP(x,(1 << n))
00629
00630
00631 #define DKUTIL_FLAG_DOWN_N(x,n) DKUTIL_FLAG_DOWN(x,( 1<<n ))
00632
00633
00634 #endif // end of include once