メインページ | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcDefined.h

説明を見る。
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 //ここらへんって32ビット環境依存だから^^;;;;;注意してね^^;;;
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 (0xffffffff) unsigned long の最大値 
00037 INT_MAX 2147483647 (signed)  int の最大値 
00038 INT_MIN -2147483647-1 (signed)  int の最小値 
00039 LONG_MAX 2147483647 (signed)  long の最大値 
00040 LONG_MIN -2147483647-1 (signed)  long の最小値 
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{//OSのバージョンを取得するための列挙
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,//これを削除しないこと。この0のままにしておくこと。
00139     edkInt,
00141     edkUInt,
00143     edkLongLong,
00145     edkULongLong,
00147     edkDouble,
00149     edkString,
00150 };
00151 
00152 
00153 
00155 enum{
00157     enuSTRLENGTH_INT_DU = 1,//ここは絶対に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     //edk_FileCheated_Change,
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 //CPUClockオブジェクト?型(実はオブジェクトとクラスの違いがわかってない私。
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 //SingleList Object type
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];//添え字の3にptrの確保したサイズをぶち込めばいいな!!
00397             };
00398             char *ptr;
00399         };
00400         int i;
00401         LONGLONG ll;
00402         ULONGLONG ull;
00403         double dbl;
00404     };
00405     //size_t access_permit;//本当はstrとptrのunion内に入れたいけど
00406     //ポインタは48BITとかあるらしいので、外部で我慢。
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 //dKingyoUtility2と同じ マクロとか
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 //#define DKUTIL_FLAG_DOWN_N(x,n) {x &= (x^ ( 1<<n ) );}
00570 //#define DKUTIL_FLAG_UP_N(x,n) {x |= (1 << n);}
00571 #endif // end of include once

dkutil_cに対してSun Jul 18 22:45:21 2004に生成されました。 doxygen 1.3.6