亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? common.h

?? linux-下的fetion-0.8.1。包括所有源代碼
?? H
字號:
/*** \file common.h* \author dengdd <dedodong@163.com>* \date 2008/1/1* * This file includes macro definitions and typedefs that commonly used by libfetion.*\verbatimCopyright (C) 2008 dengdd.All rights reserved by dengdd.This file is part of libfetion, a cross-operating-system library to operate China mobile's fetion IM.\endverbatim*/#ifndef _LIBFETION_COMMON_H#define _LIBFETION_COMMON_H#ifdef __LIBFETION_LIB__#include "event.h"#ifdef WIN32#include "../build/config-win32.h"#else //no WIN32#include "../fxconfig.h"#endif  //end #ifdef WIN32#else  // no __LIBFETION_LIB__#include "libfetion/fxconfig.h"#include "libfetion/event.h"#endif#ifdef _MSC_VER#pragma warning( push )#pragma warning( disable : 4005 )#endif#define ENABLE(FEATURE) (defined( ENABLE_##FEATURE ) && ENABLE_##FEATURE)/*** \defgroup macros_types Macros and data types commonly used* @{*//*** \defgroup basic_types Basic data types* @{*//*** \var typedef unsigned char Uint8* \brief A type definition for an 8-bit unsigned character.*/typedef unsigned char   Uint8;/*** \var typedef signed char Sint8* \brief A type definition for an 8-bit signed character.*/typedef signed char     Sint8;/*** \var typedef unsigned short Uint16* \brief A type definition for a 16-bit unsigned integer.*/typedef unsigned short  Uint16;/*** \var typedef signed short Sint16* \brief A type definition for a 16-bit signed integer.*/typedef signed short    Sint16;/*** \var typedef unsigned int Uint32* \brief A type definition for a 32-bit unsigned integer.*/typedef unsigned int    Uint32;/*** \var typedef signed int Sint32* \brief A type definition for a 32-bit signed integer.*/typedef signed int      Sint32;/* Figure out how to support 64-bit datatypes */#if !defined(__STRICT_ANSI__)#if defined(__GNUC__)#define FETION_HAS_64BIT_TYPE	long long#endif#if defined(__CC_ARM)#define FETION_HAS_64BIT_TYPE	long long#endif#if defined(_MSC_VER)#define FETION_HAS_64BIT_TYPE __int64#endif#endif /* !__STRICT_ANSI__ *//* The 64-bit datatype isn't supported on all platforms */#ifdef FETION_HAS_64BIT_TYPE/*** \var typedef unsigned long long Uint64* \brief A type definition for a 64-bit unsigned integer.** \warning Only available under GNU C.*/typedef unsigned FETION_HAS_64BIT_TYPE Uint64;/*** \var typedef signed long long Sint64* \brief A type definition for a 64-bit signed integer.** \warning Only available under GNU C.*/typedef signed FETION_HAS_64BIT_TYPE Sint64;#else/* This is really just a hack to prevent the compiler from complaining */typedef struct {	Uint32 hi;	Uint32 lo;} Uint64, Sint64;#endif/* Make sure the types really have the right sizes */#define FETION_COMPILE_TIME_ASSERT(name, x)               \	typedef int FETION_dummy_ ## name[(x) * 2 - 1]FETION_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);FETION_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1);FETION_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2);FETION_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2);FETION_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4);FETION_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4);FETION_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8);FETION_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);#undef FETION_COMPILE_TIME_ASSERT/** @} end of basic_types *//*** \defgroup endian_info Endianness information* @{*//*** \def FETION_LIL_ENDIAN* \brief Little endianness.*/#define FETION_LIL_ENDIAN  1234/*** \def FETION_BIG_ENDIAN* \brief Big endianness.*/#define FETION_BIG_ENDIAN  4321/* Pardon the mess, I'm trying to determine the endianness of this host.*    I'm doing it by preprocessor defines rather than some sort of configure*    script so that application code can use this too.  The "right" way would*    be to dynamically generate this file on install, but that's a lot of work.*//*** \def FETION_BYTEORDER* \brief The byte order (endianness) of the target system.** This macro will be either defined to FETION_LIL_ENDIAN or FETION_BIG_ENDIAN.* You can use the code like below** \code* #if FETION_BYTEORDER == FETION_LIL_ENDIAN*     ... // code for little endian system.* #else*     ... // code for big endian system.* #endif* \endcode** to write endianness independent code.*/#if  defined(__i386__) || defined(__ia64__) || \	(defined(__alpha__) || defined(__alpha)) || \	defined(__arm__) || \	(defined(__CC_ARM) && !defined(__BIG_ENDIAN)) || \	(defined(__mips__) && defined(__MIPSEL__)) || \	defined(__LITTLE_ENDIAN__) || \	defined(WIN32)#define FETION_BYTEORDER   FETION_LIL_ENDIAN#else#define FETION_BYTEORDER   FETION_BIG_ENDIAN#endif/** @} end of endian_info *//*** \defgroup simple_types Simple and common types and macros* @{*/#if !defined(__NODLL__) && defined (WIN32) #if defined(__LIBFETION_LIB__)#define FX_EXPORT       __declspec(dllexport)#else//fixme: in windows we usual usr static library.//#define FX_EXPORT       __declspec(dllimport) #define FX_EXPORT#endif //defined(__LIBFETION_LIB__)#else#define FX_EXPORT#endif //!defined(__NODLL__) && (defined (WIN32) || defined (__NUCLEUS_MNT__))/*** \var typedef int BOOL* \brief A type definition for boolean value.*/#ifndef _HAVE_TYPE_BOOL#ifndef BOOLtypedef int BOOL;#endif#endif/*** \def FALSE* \brief FALSE value, defined as 0*/#ifndef FALSE#define FALSE   (0)#endif/*** \def TRUE* \brief TRUE value, defined as 1*/#ifndef TRUE#define TRUE    (1)#endif/*** \def NULL* \brief A value indicates null pointer.*/#ifndef NULL#ifdef __cplusplus#define NULL        (0L)#else /* !__cplusplus */#define NULL        ((void*) 0)#endif /* !__cplusplus */#endif/** @} end of simple_types *//*** \defgroup win32_types Win32-like data types and macros* @{*//*** \var typedef unsigned char BYTE* \brief A type definition for unsigned character (byte).*/#ifndef _HAVE_TYPE_BYTEtypedef unsigned char   BYTE;#endif/*** \var typedef signed char SBYTE* \brief A type definition for signed character.*/typedef signed char     SBYTE;/*** \var typedef unsigned short WORD * \brief A type definition for unsigned short integer (word).*/#ifndef _HAVE_TYPE_WORDtypedef unsigned short  WORD;#endif/*** \var typedef signed short SWORD * \brief A type definition for signed short integer.*/typedef signed short    SWORD;/*** \var typedef unsigned long DWORD* \brief A type definition for unsigned long integer (double word).*/#ifndef _HAVE_TYPE_DWORDtypedef unsigned long   DWORD;#endif/*** \var typedef signed long SDWORD* \brief A type definition for signed long integer.*/typedef signed long     SDWORD;/*** \var typedef unsigned int UINT* \brief A type definition for unsigned integer.*/#ifndef _HAVE_TYPE_UINTtypedef unsigned int    UINT;#endif/*** \var typedef long LONG* \brief A type definition for long integer.*/#ifndef _HAVE_TYPE_LONGtypedef long            LONG;#endif/*** \var typedef unsigned int WPARAM* \brief A type definition for the first message paramter.*/#if defined(_linux_) && defined(_i686_)typedef unsigned long    WPARAM;#elsetypedef unsigned int    WPARAM;#endif/*** \var typedef unsigned long LPARAM* \brief A type definition for the second message paramter.*/#ifdef WIN32 #if _MSC_VER >= 1300 typedef __w64 long LPARAM;#elsetypedef long   LPARAM;#endif#else  //no win32typedef unsigned long   LPARAM;#endif#ifdef WIN32#else/*** \def LOBYTE(w)* \brief Returns the low byte of the word \a w.** \sa MAKEWORD*/#define LOBYTE(w)           ((BYTE)(w))/*** \def HIBYTE(w)* \brief Returns the high byte of the word \a w.** \sa MAKEWORD*/#define HIBYTE(w)           ((BYTE)(((WORD)(w) >> 8) & 0xFF))/*** \def MAKEWORD(low, high)* \brief Makes a word from \a low byte and \a high byte.*/#define MAKEWORD(low, high) ((WORD)(((BYTE)((low) & 0xff )) | (((WORD)((BYTE) ((high) & 0xff ))) << 8)))/*** \def LOWORD(l)* \brief Returns the low word of the double word \a l** \sa MAKELONG*/#define LOWORD(l)           ((WORD)(DWORD)(l))/*** \def HIWORD(l)* \brief Returns the high word of the double word \a l** \sa MAKELONG*/#define HIWORD(l)           ((WORD)((((DWORD)(l)) >> 16) & 0xFFFF))/*** \def LOSWORD(l)* \brief Returns the low signed word of the double word \a l** \sa MAKELONG*/#define LOSWORD(l)          ((SWORD)(DWORD)(l))/*** \def HISWORD(l)* \brief Returns the high signed word of the double word \a l** \sa MAKELONG*/#define HISWORD(l)          ((SWORD)((((DWORD)(l)) >> 16) & 0xFFFF))/*** \def MAKELONG(low, high)* \brief Makes a double word from \a low word and \a high word.*/#define MAKELONG(low, high) ((DWORD)(((WORD)(low)) | (((DWORD)((WORD)(high))) << 16)))#endif  //#ifdef WIN32/** @} end of win32_types *//*** \defgroup misc_macros Miscellaneous macros* @{*//*** \def TABLESIZE(table)* \brief A macro returns the number of elements in a \a table.*/#define TABLESIZE(table)    (sizeof(table)/sizeof(table[0]))/* MAX/MIN/ABS macors *//*** \def MAX(x, y)* \brief A macro returns the maximum of \a x and \a y.*/#ifndef MAX#define MAX(x, y)           (((x) > (y))?(x):(y))#endif/*** \def MIN(x, y)* \brief A macro returns the minimum of \a x and \a y.*/#ifndef MIN#define MIN(x, y)           (((x) < (y))?(x):(y))#endif/*** \def ABS(x)* \brief A macro returns the absolute value of \a x.*/#ifndef ABS#define ABS(x)              (((x)<0) ? -(x) : (x))#endif/*** \def CLAMP(x, low, high)* \brief A macro returns the middle value  of \a x, \a low and \a high.*/#ifndef CLAMP#define CLAMP(x, low, high)  (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))#endif/*** \def ISSPACE(c)* \brief A macro returns the absolute value of \a c.*/#define ISSPACE(c)		((c) == ' ' || (c) == '\f' || (c) == '\n' || \	(c) == '\r' || (c) == '\t' || (c) == '\v')/*** \def ISUPPER(c)* \brief A macro judge the value of \a c is a upper character.*/#define ISUPPER(c)		((c) >= 'A' && (c) <= 'Z')/*** \def ISLOWER(c)* \brief A macro judge the value of \a c is a lower character.*/#define ISLOWER(c)		((c) >= 'a' && (c) <= 'z')/*** \def ISALPHA(c)* \brief A macro judge the value of \a c is a character.*/#define ISALPHA(c)		(ISUPPER (c) || ISLOWER (c))/*** \def TOUPPER(c)* \brief A macro returns the is a upper character. of value \a c.*/#define	TOUPPER(c)		(ISLOWER (c) ? (c) - 'a' + 'A' : (c))/*** \def TOLOWER(c)* \brief A macro returns the is a lower character. of value \a c.*/#define	TOLOWER(c)		(ISUPPER (c) ? (c) - 'A' + 'a' : (c))/** @} end of misc_macros *//** @} end of macros_types */#ifndef HAVE_TIMEtypedef unsigned int time_t;struct tm {	int    tm_sec;   /* seconds [0,61] */	int    tm_min;   /* minutes [0,59] */	int    tm_hour;  /* hour [0,23] */	int    tm_mday;  /* day of month [1,31] */	int    tm_mon;   /* month of year [0,11] */	int    tm_year;  /* years since 1900 */	int    tm_wday;  /* day of week [0,6] (Sunday = 0) */	int    tm_yday;  /* day of year [0,365] */	int    tm_isdst; /* daylight savings flag */};#endif/*** \defgroup cb_func Event CallBack Function* @{*//*** \var typedef void (*EventListener) (int message, WPARAM wParam, LPARAM lParam, void* args)* brief the callback function of fetion event.*** \param message The fetion event type.* \sa events*/typedef void (*EventListener) (int message, WPARAM wParam, LPARAM lParam, void* args);/** @} end of cb_func */#ifdef _MSC_VER#pragma warning( pop )#endif#endif  //_LIBFETION_COMMON_H

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av综合在线| 亚洲电影在线播放| 国产一区二区三区四区五区美女| 久久综合久久鬼色| 久久精品国产精品亚洲红杏| 日韩午夜在线观看视频| 久久se这里有精品| 久久丝袜美腿综合| 丁香婷婷综合激情五月色| 中文字幕在线观看一区| 91麻豆免费在线观看| 亚洲综合激情小说| 欧美卡1卡2卡| 国产一区二区三区四区五区入口| 日本一二三不卡| 91香蕉视频mp4| 日韩国产欧美在线视频| 久久久蜜桃精品| 不卡影院免费观看| 日韩在线一二三区| 久久久精品黄色| 91搞黄在线观看| 青青草国产成人99久久| 国产精品视频线看| 欧美日韩在线播放| 国产精品一级片在线观看| 亚洲欧美在线aaa| 欧美日韩高清一区二区三区| 国模一区二区三区白浆| 亚洲欧美电影院| 日韩精品一区二区三区三区免费| 成人免费视频播放| 青青青伊人色综合久久| 国产精品成人在线观看| 正在播放亚洲一区| 99精品视频一区| 奇米四色…亚洲| 最新高清无码专区| 欧美变态口味重另类| 91视频国产资源| 狠狠色丁香九九婷婷综合五月| 亚洲人亚洲人成电影网站色| 精品久久久影院| 欧美三级韩国三级日本一级| 成人在线综合网站| 男人操女人的视频在线观看欧美| 亚洲欧美日韩在线| 久久综合999| 宅男噜噜噜66一区二区66| 91麻豆成人久久精品二区三区| 久久99精品久久只有精品| 亚洲精品伦理在线| 久久精品视频在线免费观看 | 国产精品少妇自拍| 91精品国产色综合久久| 99精品热视频| a级精品国产片在线观看| 六月丁香婷婷色狠狠久久| 亚洲小说春色综合另类电影| 日本一区二区久久| 精品国产乱子伦一区| 欧美日韩国产一区| 在线一区二区三区四区| av福利精品导航| 粗大黑人巨茎大战欧美成人| 国产乱码精品一区二区三区av | 日韩精品一区二区三区在线播放| 在线观看91精品国产入口| aa级大片欧美| 成人网页在线观看| 国产成人免费在线观看不卡| 久久精品国产秦先生| 欧美aⅴ一区二区三区视频| 午夜精品久久久久久| 亚洲一区二区三区四区五区中文| 中文字幕日韩精品一区| 国产视频911| 国产欧美日韩久久| 欧美韩国一区二区| 国产精品国产三级国产| 中文字幕视频一区二区三区久| 欧美激情一区二区在线| 中文字幕的久久| 亚洲人妖av一区二区| 亚洲欧美视频一区| 亚洲综合丁香婷婷六月香| 一个色综合网站| 亚洲综合在线视频| 午夜一区二区三区在线观看| 亚洲国产sm捆绑调教视频 | 日韩欧美专区在线| 日韩欧美国产成人一区二区| 日韩欧美三级在线| 2021中文字幕一区亚洲| 国产蜜臀av在线一区二区三区| 亚洲三级在线免费| 一区二区三区日韩欧美| 丝袜美腿高跟呻吟高潮一区| 丝袜美腿亚洲综合| 国产一区二区精品久久99| 懂色av一区二区在线播放| eeuss鲁片一区二区三区在线观看| 91网站在线播放| 欧美日韩国产综合视频在线观看| 日韩午夜中文字幕| 国产精品欧美极品| 亚洲丶国产丶欧美一区二区三区| 日韩电影在线免费观看| 精品一区二区三区免费视频| jlzzjlzz欧美大全| 欧美一区二视频| 国产日韩综合av| 亚洲成人免费电影| 国产米奇在线777精品观看| 91捆绑美女网站| 777色狠狠一区二区三区| 久久精品无码一区二区三区| 亚洲综合av网| 国产一区二区三区蝌蚪| 色94色欧美sute亚洲线路一ni| 91精品国产色综合久久不卡电影 | 成人av一区二区三区| 色欲综合视频天天天| 日韩一区二区免费电影| 国产精品久久久久久久久晋中| 亚洲午夜精品一区二区三区他趣| 国产美女精品人人做人人爽| 色av综合在线| 国产亚洲精品精华液| 一区二区三区四区视频精品免费 | 久久天天做天天爱综合色| 一区二区三区四区在线免费观看 | 日韩**一区毛片| 91在线视频网址| 精品福利av导航| 亚洲第一搞黄网站| 不卡一区二区中文字幕| 日韩一区二区麻豆国产| 亚洲欧美国产77777| 懂色av中文字幕一区二区三区| 欧美一区二区私人影院日本| 亚洲欧洲国产日韩| 国产精品一区在线观看乱码| 欧美理论电影在线| 亚洲美女视频在线观看| 国产一区二区三区四区在线观看| 欧美精品丝袜中出| 亚洲综合图片区| av不卡在线播放| 国产清纯美女被跳蛋高潮一区二区久久w | 一区二区三区在线看| 国产麻豆精品一区二区| 日韩精品资源二区在线| 亚洲电影第三页| 欧美视频一区在线观看| 亚洲图片另类小说| 国产99久久久精品| 26uuu另类欧美| 久久99精品久久只有精品| 欧美一区二区视频在线观看| 亚洲影院久久精品| 91久久久免费一区二区| 亚洲欧洲成人自拍| 波多野结衣91| 亚洲欧洲国产日韩| 91论坛在线播放| 亚洲精品国产品国语在线app| 99久久精品一区| 一区二区三区免费在线观看| 91丝袜美女网| 一区二区不卡在线播放| 欧美在线播放高清精品| 亚洲女性喷水在线观看一区| 91免费观看在线| 亚洲一区二区三区中文字幕 | 91麻豆产精品久久久久久 | 久久夜色精品国产欧美乱极品| 人人狠狠综合久久亚洲| 亚洲日本青草视频在线怡红院| 成人午夜在线免费| 国产亚洲精品免费| 成人精品国产一区二区4080| 中文一区在线播放| 93久久精品日日躁夜夜躁欧美| 18欧美亚洲精品| 欧美日精品一区视频| 日本最新不卡在线| wwwwww.欧美系列| 成人白浆超碰人人人人| 亚洲精品视频免费看| 欧美日韩激情在线| 久久国产乱子精品免费女| 久久久蜜桃精品| 色婷婷久久久综合中文字幕| 亚洲一区二区在线观看视频| 欧美一区二区日韩| 国产成人小视频| 亚洲欧美色一区| 欧美一卡2卡3卡4卡| 国产精品自拍av|