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
00235
00241 enum edkResult{
00243 edk_FAILED = -1,
00245 edk_SUCCEEDED = 0,
00247 edk_Not_Found,
00249 edk_FileNotFound,
00251 edk_Not_Selected,
00253 edk_ArgumentException,
00255 edk_ParsingError,
00256
00263 edk_LogicError,
00265 edk_BufferOverFlow,
00267 edk_OutputBufferWasLost,
00269 edk_InputBufferWasLost,
00270
00271
00273 edk_SignatureException,
00275 edk_Not_Satisfactory,
00277 edk_Not_Defined_Function,
00279 edk_OutOfMemory,
00281 edk_EndProcess,
00283 edk_LogicException,
00285 edk_NoValueToProcess,
00286
00287 edk_FileCheated_Change,
00289 edk_FileCheated_Addition,
00290 };
00291
00292 #define DKUTIL_SUCCEEDED(s) (s==edk_SUCCEEDED)
00293 #define DKUTIL_FAILED(s) (s)//(s != edk_SUCCEEDED)
00294 #define DKUTIL_FAILED_BOOL(s) (s != edk_SUCCEEDED)
00295 #define DKUTIL_SUCCEEDED_BOOL(s) (s==edk_SUCCEEDED)
00296
00297
00298
00299 enum{
00301 enuExtendVaListLength = 256,
00303 enuDefaultExpandSize = 100,
00304 };
00305
00306
00307
00308
00309
00310
00311 typedef void (*VOIDFUNC)(void);
00312 typedef void (*VOIDARGFUNC)(void *);
00313 typedef void (*VOIDARGFUNCFLAG)(void *,int);
00314
00315
00316 #if 0
00317
00318
00319
00321 typedef void (*OGG_CALLBACK_DU)(char *ptr,size_t permit_num,size_t offset);
00322
00323
00324
00325
00326 typedef BOOL (*ISTYPE_DU)(void);
00327 typedef void (*NAMETYPE_DU)(char *,size_t);
00328 typedef long (*CPUCLOCK_DU)(void);
00329
00330 typedef struct dCPUInfoObject{
00331 ISTYPE_DU isMMX;
00332 ISTYPE_DU isMMX2;
00333 ISTYPE_DU isSSE;
00334 ISTYPE_DU isSSE2;
00335 ISTYPE_DU is3DNOW;
00336 ISTYPE_DU isE3DNOW;
00337 ISTYPE_DU isFPU;
00338 ISTYPE_DU isTSC;
00339 ISTYPE_DU isCPUID;
00340 CPUCLOCK_DU GetCPUClock;
00341 NAMETYPE_DU CopyCPUName;
00342 NAMETYPE_DU CopyCPUType;
00343 NAMETYPE_DU CopyCPUInfo;
00344 }DKINGYOUTILITY2_CPU_INFO;
00345
00346
00347
00348
00349 enum edkCSTL{
00350 edkCSTL_push_back = 1,
00351 edkCSTL_push_front,
00352 edkCSTL_insert,
00353 }
00354
00356 struct dkutil_CSTLContainer{
00358 void *(*begin)(void);
00360 void *(*end)(void);
00362 void *(*next)(int);
00364 void *(*first_data)(void);
00366 void *(*next_data)(int);
00375
00376 int (*insert)(int flag,void *data,size_t size,const void *priority,size_t priority_size);
00377 };
00378
00379
00380
00382 typedef void (*SLIST_PUSH_DU)(size_t,const char *,size_t);
00384 typedef void (*SLIST_POP_DU)(size_t,void);
00386 typedef char *(*SLIST_GET_ITERATOR_DU)(size_t,void);
00388 typedef char *(SLIST_NEXT_DU)(size_t,const char *);
00389
00391 typedef struct dSingleListObject{
00392 size_t handle;
00393 int (*push_back)(struct dSingleListObject *,const char *,size_t);
00394 int (*push_front)(struct dSingleListObject *,const char *,size_t);
00395 int (*pop_front)(struct dSingleListObject *);
00396 int (*clear)(struct dSingleListObject *);
00397 char *(*begin)(struct dSingleListObject *);
00398 char *(*end)(struct dSingleListObject *);
00399 char *(*next)(struct dSingleListObject *,char *);
00400 int (*destructor)(struct dSingleListObject *);
00401 int (*constructor)(struct dSingleListObject *);
00402 char *(*reference_ptr)(struct dSingleListObject *,char *);
00403 void (*set_size)(struct dSingleListObject *,size_t );
00404 }DKINGYOUTILITY2_SINGLE_LIST;
00405
00406
00407
00408
00410 enum edkParsedStringType{
00411 enuDU2CSV_STRING = 1,
00413 enuDU2CSV_STRING_32MORE,
00414 enuDU2CSV_INT,
00415 enuDU2CSV_LONGLONG,
00416 enuDU2CSV_ULONGLONG,
00417 enuDU2CSV_DOUBLE,
00418 };
00419
00421 #define DCSVSTRUCTURE_PERMITSIZE_OFFSET_EXTENTION_NUM 3
00422
00423 #define DCSVSTRUCTURE_DEFAULT_STRING_BUFF_SIZE 32
00424
00425 typedef struct dCSVStructure{
00426 size_t x,y;
00427 int datatype;
00428 union{
00429 union{
00430 union{
00431 char str[DCSVSTRUCTURE_DEFAULT_STRING_BUFF_SIZE];
00432 size_t permitsize[4];
00433 };
00434 char *ptr;
00435 };
00436 int i;
00437 LONGLONG ll;
00438 ULONGLONG ull;
00439 double dbl;
00440 };
00441
00442
00443 void (*constructor)(struct dCSVStructure *,int,size_t);
00444 void (*destructor)(struct dCSVStructure *);
00445 }DKINGYOUTILITY2_CSV_STRUCTURE;
00446
00447 #endif
00448
00449 typedef struct dkc_Allocator{
00450 void (*malloc__)(size_t size);
00451 void (*free__)(void *);
00452 void (*realloc__)(void *,size_t);
00453 void (*zero_memory)(void *,size_t);
00454 }DKC_ALLOCATOR;
00455
00456
00457
00458
00459
00460
00462 #define MB(str) MessageBox(NULL,str,"Message",MB_OK)//MessageBox
00463
00464 #define MB2(s,title) MessageBox(NULL,s,title,MB_OK);
00465
00466 #define ODS(str) OutputDebugString(str)//OutputDebugString
00467
00469 #define SWAP_NUM(a,b) \
00470 a = b - a ;\
00471 b -= a ;\
00472 a += b
00473
00477 #define SWAP_NUM_EX(a,b,ex) \
00478 (ex)a = (ex)(b - a ); \
00479 (ex)b = (ex)(b - a ); \
00480 (ex)a = (ex)(a + b )
00481
00489
00490 #define SM_OFFSET(p_type,field) ((unsigned int)&(((p_type)NULL)->field))
00491
00493 #define SET_RECT(rect, l, t, r, b) \
00494 {\
00495 rect##.left = l;\
00496 rect##.top = t;\
00497 rect##.right = r;\
00498 rect##.bottom = b;\
00499 }
00500
00501 #define NULL_CHAR_ARRAY(s) memset((void *)s,0,sizeof(s))
00502
00503
00504
00505
00506 #ifdef __cplusplus
00507
00537
00538 #define SET_VA_LIST(buff,buffnum,origin) \
00539 {\
00540 va_list VaList;\
00541 va_start( VaList , origin ) ;\
00542 int r;\
00543 r = _vsnprintf( buff ,buffnum - 1, origin , VaList );\
00544 if(0 > r){\
00545 buff[buffnum - 1] = '\0';\
00546 }else{\
00547 buff[r+1] = '\0';\
00548 }\
00549 va_end( VaList ); \
00550 }
00551
00552
00553 # define DKUTIL_SAFE_REALLOC(b,s) ::realloc(b,s)
00554 # define DKUTIL_SAFE_MALLOC(s) ::malloc(s)
00555 # define DKUTIL_SAFE_FREE(a) if(a){::free(a);a=NULL;}
00556
00558 # define DKUTIL_STRUCTURE_INIT(s) ::memset(&(s),0,sizeof(s))
00559
00560 # define DKUTIL_MEMZERO(mem,size) ::memset(mem,0,size)
00561 #else // for c lang
00562
00563
00564
00565 #define DKUTIL_SAFE_REALLOC(b,s) realloc(b,s)
00566 #define DKUTIL_SAFE_MALLOC(s) malloc(s)
00567 #define DKUTIL_SAFE_FREE(a) if(a){free(a);a=NULL;}
00568 #define DKUTIL_STRUCTURE_INIT(s) memset(&(s),0,sizeof(s))
00569
00570 # define DKUTIL_MEMZERO(mem__,size__) memset(mem__,0,size__)
00571 #endif
00572
00573
00574 #define SET_VA_LIST_C(VaList,r,buff,buffnum,origin) \
00575 {\
00576 va_start( VaList , origin ) ;\
00577 r = _vsnprintf( buff ,buffnum - 1, origin , VaList );\
00578 if(0 > r){\
00579 buff[buffnum - 1] = '\0';\
00580 }else{\
00581 buff[r+1] = '\0';\
00582 }\
00583 va_end( VaList ); \
00584 }
00585
00587 #define DKUTIL_ARRAY_NUMOF(array) (sizeof(array)/sizeof(array[0]))
00588
00589 #define DKUTIL_NAMELINK(X,Y) X##Y
00590
00591 #define DKUTIL_MAKESIGNATURE(X) DKUTIL_NAMELINK(X,__LINE__)
00592
00593 #define DKUTIL_MAKE_UINT_ID(id) ((((UINT)(id) & 0xFF) << 24) | \
00594 (((UINT)(id) & 0xFF00) << 8) | \
00595 (((UINT)(id) & 0xFF0000) >> 8) | \
00596 (((UINT)(id) & 0xFF000000) >> 24))
00597
00599 #define DKUTIL_FLAG_DOWN(x,n) {x &= ~n;}//{(x & n) ? x |= (x^n) : 0;}//{x |= (x^n);}
00600
00601 #define DKUTIL_FLAG_UP(x,n) {x |= n;}
00602
00604
00605 #define DKUTIL_FLAG_UP_N(x,n) DKUTIL_FLAG_UP(x,(1 << n))
00606
00607
00608 #define DKUTIL_FLAG_DOWN_N(x,n) DKUTIL_FLAG_DOWN(x,( 1<<n ))
00609
00610
00611 #endif // end of include once