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
00048
00049
00050
00051
00052 #ifdef __cplusplus
00053 # define DKUTIL_EXTERN extern "C"
00054 #else
00055
00056 # define DKUTIL_EXTERN extern
00057 #endif
00058
00059
00060
00062 #define DKINGYO_NOT_MOUNTED -100
00063
00064 #define DKINGYO_NO_DEFINED_FUNCTION DKINGYO_NOT_MOUNTED
00065
00066
00067
00068 #ifdef _DEBUG
00069 # ifndef DEBUG
00070 # define DEBUG
00071 # endif
00072 #endif
00073 #ifdef _NDEBUG
00074 # ifndef NDEBUG
00075 # define NDEBUG
00076 # endif
00077 #endif
00078
00079
00080
00081
00082
00083
00084
00085
00086 enum edkOS{
00087 enuWindows3_1 = 1,
00088 enuWindowsNT3_51,
00089 enuWindowsNT4_0,
00090 enuWindows95,
00091 enuWindows98,
00092 enuWindows2000,
00093 enuWindowsMe,
00094 enuWindowsXP,
00096 enuWindows_NET,
00097
00098 };
00099
00100
00101 enum edkOSExtension{
00103 edkOSE_OSR2 = 1,
00105 edkOSE_edkSE,
00107 edkOSE_HomeEditon,
00109 edkOSE_Professional,
00111 edkOSE_DataCenter_Server,
00113 edkOSE_Advanced_Server,
00114 edkOSE_Enterprise_Server,
00115 edkOSE_Web_Server,
00117 edkOSE_Server,
00118
00119 };
00120
00122 enum{
00123 enuDKINGYO_BMPFILEHEADER_ADR = 1,
00124 enuDKINGYO_BMPCOREHEADER_ADR,
00125 enuDKINGYO_BMPINFOHEADER_ADR,
00126 enuDKINGYO_BMPPALLETE_ADR,
00127 enuDKINGYO_BMPGRAPH_ADR,
00129 enuDKINGYO_ISBMPFILE_EXACT_CHECK,
00131 enuDKINGYO_ISBMPFILE_CAMOUFLAGE_CHECK,
00132 };
00133
00135 enum edkVariableType{
00137 edkVariableUnknown = 0,
00139 edkInt,
00141 edkUInt,
00143 edkLongLong,
00145 edkULongLong,
00147 edkDouble,
00149 edkString,
00150 };
00151
00152
00153
00155 enum{
00157 enuSTRLENGTH_INT_DU = 1,
00159 enuSTRLENGTH_UINT_DU,
00161 enuSTRLENGTH_LONGLONG_DU,
00163 enuSTRLENGTH_ULONGLONG_DU,
00165 enuSTRLENGTH_DOUBLE,
00166 };
00167
00169 enum edkFileSignature{
00170 edkfALL = 0,
00171
00172 edkfTXT,
00173 edkfHTML,
00174 edkfXML,
00175
00176 edkfAVI,
00177 edkfMPEG,
00178 edkfMOV,
00179
00180 edkfWAV,
00181 edkfMIDI,
00182 edkfMP3,
00183 edkfOGG,
00184
00185 edkfPNG,
00186 edkfBMP,
00187 edkfTIFF,
00188 edkfJPEG,
00189 edkfGIF,
00190
00191 edkfZIP,
00192 edkfLZH,
00193 edkfGZ,
00194 edkfGCA,
00195 edkfDGC,
00196 edkfRAR,
00197
00198 edkfSENTINEL,
00199 };
00200
00201
00207 enum edkResult{
00209 edk_FAILED = -1,
00211 edk_SUCCEEDED = 0,
00213 edk_Not_Found,
00215 edk_FileNotFound,
00217 edk_Not_Selected,
00219 edk_ArgumentException,
00221 edk_ParsingError,
00222
00229 edk_LogicError,
00231 edk_BufferOverFlow,
00233 edk_OutputBufferWasLost,
00235 edk_InputBufferWasLost,
00237 edk_FileSignatureException,
00239 edk_Not_Satisfactory,
00241 edk_Not_Defined_Function,
00243 edk_OutOfMemory,
00245 edk_EndProcess,
00247 edk_LogicException,
00249 edk_NoValueToProcess,
00250
00251
00253 edk_FileCheated_Addition,
00254 };
00255
00256 #define DKUTIL_SUCCEEDED(s) (s==edk_SUCCEEDED)
00257 #define DKUTIL_FAILED(s) (s)//(s != edk_SUCCEEDED)
00258 #define DKUTIL_FAILED_BOOL(s) (s != edk_SUCCEEDED)
00259 #define DKUTIL_SUCCEEDED_BOOL(s) (s==edk_SUCCEEDED)
00260
00261
00262
00263 enum{
00265 enuExtendVaListLength = 256,
00267 enuDefaultExpandSize = 100,
00268 };
00269
00270
00271
00272
00273
00274
00275 typedef void (*VOIDFUNC)(void);
00276 typedef void (*VOIDARGFUNC)(void *);
00277 typedef void (*VOIDARGFUNCFLAG)(void *,int);
00278
00279
00280 #if 0
00281
00282
00283
00285 typedef void (*OGG_CALLBACK_DU)(char *ptr,size_t permit_num,size_t offset);
00286
00287
00288
00289
00290 typedef BOOL (*ISTYPE_DU)(void);
00291 typedef void (*NAMETYPE_DU)(char *,size_t);
00292 typedef long (*CPUCLOCK_DU)(void);
00293
00294 typedef struct dCPUInfoObject{
00295 ISTYPE_DU isMMX;
00296 ISTYPE_DU isMMX2;
00297 ISTYPE_DU isSSE;
00298 ISTYPE_DU isSSE2;
00299 ISTYPE_DU is3DNOW;
00300 ISTYPE_DU isE3DNOW;
00301 ISTYPE_DU isFPU;
00302 ISTYPE_DU isTSC;
00303 ISTYPE_DU isCPUID;
00304 CPUCLOCK_DU GetCPUClock;
00305 NAMETYPE_DU CopyCPUName;
00306 NAMETYPE_DU CopyCPUType;
00307 NAMETYPE_DU CopyCPUInfo;
00308 }DKINGYOUTILITY2_CPU_INFO;
00309
00310
00311
00312
00313 enum edkCSTL{
00314 edkCSTL_push_back = 1,
00315 edkCSTL_push_front,
00316 edkCSTL_insert,
00317 }
00318
00320 struct dkutil_CSTLContainer{
00322 void *(*begin)(void);
00324 void *(*end)(void);
00326 void *(*next)(int);
00328 void *(*first_data)(void);
00330 void *(*next_data)(int);
00339
00340 int (*insert)(int flag,void *data,size_t size,const void *priority,size_t priority_size);
00341 };
00342
00343
00344
00346 typedef void (*SLIST_PUSH_DU)(size_t,const char *,size_t);
00348 typedef void (*SLIST_POP_DU)(size_t,void);
00350 typedef char *(*SLIST_GET_ITERATOR_DU)(size_t,void);
00352 typedef char *(SLIST_NEXT_DU)(size_t,const char *);
00353
00355 typedef struct dSingleListObject{
00356 size_t handle;
00357 int (*push_back)(struct dSingleListObject *,const char *,size_t);
00358 int (*push_front)(struct dSingleListObject *,const char *,size_t);
00359 int (*pop_front)(struct dSingleListObject *);
00360 int (*clear)(struct dSingleListObject *);
00361 char *(*begin)(struct dSingleListObject *);
00362 char *(*end)(struct dSingleListObject *);
00363 char *(*next)(struct dSingleListObject *,char *);
00364 int (*destructor)(struct dSingleListObject *);
00365 int (*constructor)(struct dSingleListObject *);
00366 char *(*reference_ptr)(struct dSingleListObject *,char *);
00367 void (*set_size)(struct dSingleListObject *,size_t );
00368 }DKINGYOUTILITY2_SINGLE_LIST;
00369
00370
00371
00372
00374 enum edkParsedStringType{
00375 enuDU2CSV_STRING = 1,
00377 enuDU2CSV_STRING_32MORE,
00378 enuDU2CSV_INT,
00379 enuDU2CSV_LONGLONG,
00380 enuDU2CSV_ULONGLONG,
00381 enuDU2CSV_DOUBLE,
00382 };
00383
00385 #define DCSVSTRUCTURE_PERMITSIZE_OFFSET_EXTENTION_NUM 3
00386
00387 #define DCSVSTRUCTURE_DEFAULT_STRING_BUFF_SIZE 32
00388
00389 typedef struct dCSVStructure{
00390 size_t x,y;
00391 int datatype;
00392 union{
00393 union{
00394 union{
00395 char str[DCSVSTRUCTURE_DEFAULT_STRING_BUFF_SIZE];
00396 size_t permitsize[4];
00397 };
00398 char *ptr;
00399 };
00400 int i;
00401 LONGLONG ll;
00402 ULONGLONG ull;
00403 double dbl;
00404 };
00405
00406
00407 void (*constructor)(struct dCSVStructure *,int,size_t);
00408 void (*destructor)(struct dCSVStructure *);
00409 }DKINGYOUTILITY2_CSV_STRUCTURE;
00410
00411 #endif
00412
00413 typedef struct dkc_Allocator{
00414 void (*malloc__)(size_t size);
00415 void (*free__)(void *);
00416 void (*realloc__)(void *,size_t);
00417 void (*zero_memory)(void *,size_t);
00418 }DKC_ALLOCATOR;
00419
00420
00421
00422
00423
00424
00426 #define MB(str) MessageBox(NULL,str,"Message",MB_OK)//MessageBox
00427
00428 #define MB2(s,title) MessageBox(NULL,s,title,MB_OK);
00429
00430 #define ODS(str) OutputDebugString(str)//OutputDebugString
00431
00433 #define SWAP_NUM(a,b) \
00434 a = b - a ;\
00435 b -= a ;\
00436 a += b
00437
00441 #define SWAP_NUM_EX(a,b,ex) \
00442 (ex)a = (ex)(b - a ); \
00443 (ex)b = (ex)(b - a ); \
00444 (ex)a = (ex)(a + b )
00445
00453
00454 #define SM_OFFSET(p_type,field) ((unsigned int)&(((p_type)NULL)->field))
00455
00457 #define SET_RECT(rect, l, t, r, b) \
00458 {\
00459 rect##.left = l;\
00460 rect##.top = t;\
00461 rect##.right = r;\
00462 rect##.bottom = b;\
00463 }
00464
00465 #define NULL_CHAR_ARRAY(s) memset((void *)s,0,sizeof(s))
00466
00467
00468
00469
00470 #ifdef __cplusplus
00471
00501
00502 #define SET_VA_LIST(buff,buffnum,origin) \
00503 {\
00504 va_list VaList;\
00505 va_start( VaList , origin ) ;\
00506 int r;\
00507 r = _vsnprintf( buff ,buffnum - 1, origin , VaList );\
00508 if(0 > r){\
00509 buff[buffnum - 1] = '\0';\
00510 }else{\
00511 buff[r+1] = '\0';\
00512 }\
00513 va_end( VaList ); \
00514 }
00515
00516
00517 # define DKUTIL_SAFE_REALLOC(b,s) ::realloc(b,s)
00518 # define DKUTIL_SAFE_MALLOC(s) ::malloc(s)
00519 # define DKUTIL_SAFE_FREE(a) if(a){::free(a);a=NULL;}
00520
00522 # define DKUTIL_STRUCTURE_INIT(s) ::memset(&(s),0,sizeof(s))
00523
00524 # define DKUTIL_MEMZERO(mem,size) ::memset(mem,0,size)
00525 #else // for c lang
00526 #define SET_VA_LIST_C(VaList,r,buff,buffnum,origin) \
00527 {\
00528 va_start( VaList , origin ) ;\
00529 r = _vsnprintf( buff ,buffnum - 1, origin , VaList );\
00530 if(0 > r){\
00531 buff[buffnum - 1] = '\0';\
00532 }else{\
00533 buff[r+1] = '\0';\
00534 }\
00535 va_end( VaList ); \
00536 }
00537
00538 #define DKUTIL_SAFE_REALLOC(b,s) realloc(b,s)
00539 #define DKUTIL_SAFE_MALLOC(s) malloc(s)
00540 #define DKUTIL_SAFE_FREE(a) if(a){free(a);a=NULL;}
00541 #define DKUTIL_STRUCTURE_INIT(s) memset(&(s),0,sizeof(s))
00542
00543 # define DKUTIL_MEMZERO(mem__,size__) memset(mem__,0,size__)
00544 #endif
00545
00547 #define DKUTIL_ARRAY_NUMOF(array) (sizeof(array)/sizeof(array[0]))
00548
00549 #define DKUTIL_NAMELINK(X,Y) X##Y
00550
00551 #define DKUTIL_MAKESIGNATURE(X) DKUTIL_NAMELINK(X,__LINE__)
00552
00553 #define DKUTIL_MAKE_UINT_ID(id) ((((UINT)(id) & 0xFF) << 24) | \
00554 (((UINT)(id) & 0xFF00) << 8) | \
00555 (((UINT)(id) & 0xFF0000) >> 8) | \
00556 (((UINT)(id) & 0xFF000000) >> 24))
00557
00559 #define DKUTIL_FLAG_DOWN(x,n) {x &= ~n;}//{(x & n) ? x |= (x^n) : 0;}//{x |= (x^n);}
00560
00561 #define DKUTIL_FLAG_UP(x,n) {x |= n;}
00562
00564
00565 #define DKUTIL_FLAG_UP_N(x,n) DKUTIL_FLAG_UP(x,(1 << n))
00566
00567
00568 #define DKUTIL_FLAG_DOWN_N(x,n) DKUTIL_FLAG_DOWN(x,( 1<<n ))
00569
00570
00571 #endif // end of include once