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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jdd_timerapi.c

?? gif to bmp conversion
?? C
字號:
#define MODULE_NAME						"jdd"
#define FILE_NAME						"jdd_timerapi.c"
/***************************************************************************
 * $Id: jdd_timerapi.c,v 1.10 2007/09/11 14:38:35 kumardevhtmlbrow Exp $
 * $Revision: 1.10 $
 * $DateTime: $
 * 
 * IMPORTANT NOTICE
 *
 * Please note that any and all title and/or intellectual property rights 
 * in and to this Software or any part of this (including without limitation 
 * any images, photographs, animations, video, audio, music, text and/or 
 * "applets," incorporated into the Software), herein mentioned to as 
 * "Software", the accompanying printed materials, and any copies of the 
 * Software, are owned by Jataayu Software (P) Ltd., Bangalore ("Jataayu") 
 * or Jataayu's suppliers as the case may be. The Software is protected by 
 * copyright, including without limitation by applicable copyright laws, 
 * international treaty provisions, other intellectual property laws and 
 * applicable laws in the country in which the Software is being used. 
 * You shall not modify, adapt or translate the Software, without prior 
 * express written consent from Jataayu. You shall not reverse engineer, 
 * decompile, disassemble or otherwise alter the Software, except and 
 * only to the extent that such activity is expressly permitted by 
 * applicable law notwithstanding this limitation. Unauthorized reproduction 
 * or redistribution of this program or any portion of it may result in severe 
 * civil and criminal penalties and will be prosecuted to the maximum extent 
 * possible under the law. Jataayu reserves all rights not expressly granted. 
 * 
 * THIS SOFTWARE IS PROVIDED TO YOU "AS IS" WITHOUT WARRANTY OF ANY 
 * KIND AND ANY AND ALL REPRESENTATION AND WARRANTIES, EITHER EXPRESS 
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF 
 * MERCHANTABILITY ACCURACY OF INFORMATIONAL CONTENT, AND/OR FITNESS 
 * FOR A PARTICULAR PURPOSE OR USE, TITLE OR INFRINGEMENT ARE EXPRESSLY 
 * DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. YOU ASSUME THE 
 * ENTIRE RISK AS TO THE ACCURACY AND THE USE OF THIS SOFTWARE. JATAAYU 
 * SHALL NOT BE LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, INDIRECT, 
 * EXEMPLARY, SPECIAL OR PUNITIVE DAMAGES INCLUDING WITHOUT LIMITATION 
 * ANY LOSS OF DATA, OR; LOSS OF PROFIT, SAVINGS BUSINESS OR GOODWILL 
 * OR OTHER SIMILAR LOSS RESULTING FROM OR OUT OF THE USE OR INABILITY 
 * TO USE THIS SOFTWARE, EVEN IF JATAAYU HAS BEEN ADVISED OF THE 
 * POSSIBILITY OF SUCH DAMAGE, OR FOR ANY CLAIM BY ANY THIRD PARTY.
 *
 ***************************************************************************
 *
 * Revision Details
 * ----------------
 * $Log: jdd_timerapi.c,v $
 * Revision 1.10  2007/09/11 14:38:35  kumardevhtmlbrow
 * Visual Studio 2005 change update
 *
 * Revision 1.9  2007/06/15 10:49:21  sriramdevhtmlbrow
 * Updated copyright information
 *
 *  
 ***************************************************************************/


/***************************************************************************
* System Include Files
**************************************************************************/



/***************************************************************************
* User Include Files
**************************************************************************/
# include <time.h>
# include <ddl.h>

#ifdef JDD_LOG_ENABLED
#define __MODULE_ID__					TIMER_MODULE
#else
#define __MODULE_ID__					0
#endif

# include <jcal.h>

//#include <mmicontrolstructures.h>


/***************************************************************************
* Type Definitions
**************************************************************************/

#define	TimerClass			TEXT ("TimerDDL")

/***************************************************************************
* Macros
**************************************************************************/


/***************************************************************************
* Global Variable declarations and definitions
**************************************************************************/

HWND hDummyWnd ;

/***************************************************************************
* Local Function Prototypes
**************************************************************************/
LRESULT CALLBACK TimerWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

typedef struct _win32_timer
{
	JC_TIMER_CALLBACK	timerCallback ;
	JC_UINT32			uiCallbackArg ;
	JC_BOOLEAN			bIsSuspended ;
} JC_WIN32_TIMER ;


/***************************************************************************
* All Local Function Definitions
**************************************************************************/

void CALLBACK timerProc (HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
{
	JC_WIN32_TIMER *pTimer ;

	PARAM_INTENTIONALLY_NOT_USED (dwTime) ;
	PARAM_INTENTIONALLY_NOT_USED (uMsg) ;
	PARAM_INTENTIONALLY_NOT_USED (hwnd) ;
	pTimer = (JC_WIN32_TIMER *) idEvent ;
	if (NULL != pTimer && E_FALSE == pTimer->bIsSuspended)
	{
		JC_TIMER_CALLBACK timerCallback = pTimer->timerCallback ;
		timerCallback (pTimer->uiCallbackArg, (JC_UINT32) pTimer) ;
	}
	return ;
}

LRESULT CALLBACK TimerWndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    return DefWindowProc(hWnd, message, wParam, lParam) ;
}

JC_RETCODE jdd_TimerInitialize (void)
{
	WNDCLASS wc;

	wc.style			= 0 ;
	wc.lpfnWndProc		= (WNDPROC)TimerWndProc;
	wc.cbClsExtra		= 0;
	wc.cbWndExtra		= 0;
	wc.hInstance		= NULL;
	wc.hIcon			= NULL;
	wc.hCursor			= NULL;
	wc.hbrBackground	= (HBRUSH)(COLOR_WINDOW + 1);
	wc.lpszMenuName		= NULL;
	wc.lpszClassName	= TimerClass ;

	RegisterClass (&wc) ;
	
	hDummyWnd = CreateWindow(TimerClass, TEXT("jTimerDDL"), 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
	return JC_OK ;
}

// This function creates a timer and sets the expiry time. 
JC_RETCODE jdd_TimerCreate (JC_UINT32 uiTimerValueMilliSec, 
							JC_TIMER_CALLBACK timerCallback, 
							JC_UINT32 uiCallbackArg,
							JC_INT8 *psTimerName,
							JC_UINT32 *puiTimerID)
{
	JC_UINT64 ulTimer = 0 ;
	JC_WIN32_TIMER *pTimer ;

	PARAM_INTENTIONALLY_NOT_USED (psTimerName) ;

	pTimer = (JC_WIN32_TIMER *) jdd_MemAlloc (1, sizeof (JC_WIN32_TIMER)) ;
	if (pTimer == NULL)
	{
		return JC_ERR_MEMORY_ALLOCATION ;
	}

	pTimer->timerCallback = timerCallback ;
	pTimer->uiCallbackArg = uiCallbackArg ;
	pTimer->bIsSuspended = E_FALSE ;
	ulTimer = SetTimer ( hDummyWnd, (JC_UINT32)pTimer, uiTimerValueMilliSec, timerProc) ;
	if (0 == ulTimer)
	{
		return JC_ERR_TIMER_CREATE ;
	}
	
	*puiTimerID = (JC_UINT32)pTimer ;
	
	return JC_OK ;
}

// This function destroys the created timer and frees any resource associated with the timer.

JC_RETCODE jdd_TimerDestroy (JC_UINT32 uiTimerID) 
{

	JC_INT32 bDelTimer = 0 ;

	bDelTimer = KillTimer (hDummyWnd, uiTimerID) ;
	if (0 == bDelTimer)
	{
		return JC_ERR_TIMER_DESTROY ;
	}
	jdd_MemFree ((void *)uiTimerID) ;
	return JC_OK ;
}

// This function resets a created timer to new values. 

JC_RETCODE jdd_TimerReset (JC_UINT32 uiTimerID,
						   JC_UINT32 uiTimerValueMilliSec, 
							JC_TIMER_CALLBACK timerCallback, 
							JC_UINT32 uiCallbackArg)
{
	PARAM_INTENTIONALLY_NOT_USED (uiTimerID) ;
	PARAM_INTENTIONALLY_NOT_USED (uiTimerValueMilliSec) ;
	PARAM_INTENTIONALLY_NOT_USED (timerCallback) ;
	PARAM_INTENTIONALLY_NOT_USED (uiCallbackArg) ;
	return JC_ERR_NOT_IMPLEMENTED ;
}

// This function stops the ticking timer. But the timer is not destroyed. 
// To use the timer after stop is done, the timer has to be reset.
JC_RETCODE jdd_TimerStop (JC_UINT32 uiTimerID) 
{
	PARAM_INTENTIONALLY_NOT_USED (uiTimerID) ;
	return JC_ERR_NOT_IMPLEMENTED ;
}

// This function suspends the created timer. 

JC_RETCODE jdd_TimerSuspend (JC_UINT32 uiTimerID)
{
	JC_WIN32_TIMER *pTimer ;
	
	pTimer = (JC_WIN32_TIMER *) uiTimerID ;
	if (NULL != pTimer)
	{
		pTimer->bIsSuspended = E_TRUE ;
	}
	return JC_OK ;
}

// This function resumes a suspended timer.
JC_RETCODE jdd_TimerResume (JC_UINT32 uiTimerID)
{
	JC_WIN32_TIMER *pTimer ;
	
	pTimer = (JC_WIN32_TIMER *) uiTimerID ;
	if (NULL != pTimer)
	{
		pTimer->bIsSuspended = E_FALSE ;
	}
	return JC_OK ;
}

// This function causes the currently executing thread to sleep for the specified number of milliseconds.
void jdd_TimerSystemSleep (JC_UINT32 value) 
{
	Sleep (value) ;
}

// This function returns the current time of the system.
JC_INT64 jdd_TimerGetCurrentTime (void)
{
	time_t timeval = 0 ;
	return time (&timeval) ;
}


// This function returns the number of milliseconds that have elapsed since the system was started.
JC_UINT32 jdd_TimerSystemGetTickCount (void) 
{
	return GetTickCount () ;
}	


void jdd_TimerGetGMTime ( const JC_INT64 *plTime, 
											ST_TIME *pstTime ) 
{
	struct tm *pTmStruct ;
	pTmStruct = gmtime( ( const time_t *) plTime ) ;
	if ((JC_NULL != pstTime) && (JC_NULL != pTmStruct))
	{
		/* memcpy could have solved, but not used with a fear that ST_TIME structure may get changed in future*/
		pstTime->iSec					= pTmStruct->tm_sec ;
		pstTime->iMin					= pTmStruct->tm_min ;
		pstTime->iHour					= pTmStruct->tm_hour ;
		pstTime->iDayOfMonth			= pTmStruct->tm_mday ;
		pstTime->iMonth					= pTmStruct->tm_mon ;
		pstTime->iYear					= pTmStruct->tm_year ;
		pstTime->iDayOfTheWeek			= pTmStruct->tm_wday ;
		pstTime->iDayInTheYear			= pTmStruct->tm_yday ;
		pstTime->iDayLightSavingTime	= pTmStruct->tm_isdst ;
	}
}

JC_INT64 jdd_TimerGetMKTime( ST_TIME *pstTime )
{
	struct tm tmStruct ;

	/* memcpy could have solved, but not used with a fear that ST_TIME structure may get changed in future*/
	tmStruct.tm_sec		= pstTime->iSec ;
	tmStruct.tm_min		= pstTime->iMin ;
	tmStruct.tm_hour	= pstTime->iHour ;  
	tmStruct.tm_mday	= pstTime->iDayOfMonth ;
	tmStruct.tm_mon		= pstTime->iMonth	;
	tmStruct.tm_year	= pstTime->iYear	;
	tmStruct.tm_wday	= pstTime->iDayOfTheWeek	;
	tmStruct.tm_yday	= pstTime->iDayInTheYear ;
	tmStruct.tm_isdst	= pstTime->iDayLightSavingTime ;
	
	return ( JC_INT64) mktime( &tmStruct) ;

}

void jdd_TimerGetCurrentLocalTime( const JC_INT64 *plTime, 
									  ST_TIME *pstTime ) 
{
	struct tm *pTmStruct ;
	pTmStruct = localtime( ( const time_t *) plTime ) ;
	if ((JC_NULL != pstTime ) && (JC_NULL != pTmStruct))
	{
		/* memcpy could have solved, but not used with a fear that ST_TIME structure may get changed in future*/
		pstTime->iSec					= pTmStruct->tm_sec ;
		pstTime->iMin					= pTmStruct->tm_min ;
		pstTime->iHour					= pTmStruct->tm_hour ;
		pstTime->iDayOfMonth			= pTmStruct->tm_mday ;
		pstTime->iMonth					= pTmStruct->tm_mon ;
		pstTime->iYear					= pTmStruct->tm_year ;
		pstTime->iDayOfTheWeek			= pTmStruct->tm_wday ;
		pstTime->iDayInTheYear			= pTmStruct->tm_yday ;
		pstTime->iDayLightSavingTime	= pTmStruct->tm_isdst ;
	}
}

JC_INT64  jdd_TimerGetGMTLocalTimeDiff(void)
{
	return _timezone ;
}

/* END OF FILE */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久99| 国产麻豆一精品一av一免费| 精品粉嫩超白一线天av| 在线视频国产一区| 色婷婷精品大视频在线蜜桃视频| 国产99久久久国产精品潘金网站| 国产在线精品视频| 国产精品自在欧美一区| 国产成人av资源| 成人av集中营| 欧洲国内综合视频| 欧美日韩国产综合草草| 欧美日韩精品电影| 欧美男生操女生| 日韩欧美一二三区| 久久精品人人做人人综合| 国产精品三级视频| 午夜久久久影院| 久久99在线观看| 成人99免费视频| 在线观看视频91| 日韩欧美另类在线| 中文字幕一区二区三区蜜月| 亚洲柠檬福利资源导航| 天天av天天翘天天综合网| 久久精品国产一区二区三 | 色综合天天视频在线观看| 91美女在线观看| 欧美日本在线视频| 国产欧美一区二区精品仙草咪| 国产欧美1区2区3区| 国产精品电影一区二区| 一区二区三区丝袜| 亚洲一区二区三区四区五区黄| 亚洲r级在线视频| 偷拍一区二区三区| 久久精品国产精品青草| 国产高清成人在线| 99re6这里只有精品视频在线观看| 成人avav在线| 欧美三级三级三级| 成人午夜在线播放| 日本二三区不卡| 欧美三级韩国三级日本三斤| 日韩一级在线观看| 久久先锋影音av鲁色资源网| 久久久精品免费观看| 国产精品第四页| 亚洲一区二区3| 国产在线视频一区二区三区| 高清不卡一区二区在线| 色哟哟一区二区| 日韩视频在线观看一区二区| 国产午夜精品久久久久久久| 久久久久久电影| 中文字幕免费在线观看视频一区| 亚洲色图视频免费播放| 亚洲一区二区三区四区在线观看 | 亚洲午夜一区二区三区| 免费人成精品欧美精品| jiyouzz国产精品久久| 欧美日韩aaa| 亚洲国产精品av| 视频在线观看一区| 99视频精品免费视频| 欧美一区二区三区播放老司机| 国产欧美精品区一区二区三区 | 亚洲永久精品大片| 久久99精品国产.久久久久| 一本色道久久综合亚洲精品按摩| 精品蜜桃在线看| 亚洲自拍偷拍九九九| 国产精品888| 欧美一区二区三区四区久久 | 91在线观看地址| 精品国产成人在线影院| 亚洲高清不卡在线观看| www..com久久爱| 久久久久久亚洲综合影院红桃| 亚洲一区二区av在线| 91免费观看国产| 国产精品全国免费观看高清 | 制服视频三区第一页精品| 亚洲三级在线观看| 国产成人在线看| 欧美岛国在线观看| 青青青伊人色综合久久| 欧美图片一区二区三区| 成人欧美一区二区三区1314 | 久久精品人人爽人人爽| 蜜桃久久av一区| 日韩免费观看高清完整版在线观看 | 美腿丝袜一区二区三区| 欧美日韩一区二区三区四区 | 亚洲一区在线电影| 成人97人人超碰人人99| 国产精品每日更新在线播放网址| 国产精品香蕉一区二区三区| 欧美成va人片在线观看| 精品一区中文字幕| 欧美成人一区二区三区片免费| 日韩电影在线免费看| 欧美日本乱大交xxxxx| 五月激情综合网| 欧美日韩中文另类| 日韩高清一级片| 欧美一二三区精品| 一区二区三区免费在线观看| 国产99久久久精品| 亚洲免费av高清| 成人晚上爱看视频| 亚洲日本va午夜在线电影| 色综合天天狠狠| 日日摸夜夜添夜夜添精品视频| 欧美日韩国产经典色站一区二区三区| 亚洲综合激情小说| 日韩一级片在线播放| 精品一区二区日韩| 中文天堂在线一区| 色哟哟一区二区在线观看| 午夜精品成人在线视频| 日本精品视频一区二区三区| 亚洲电影一级黄| 日韩欧美一区中文| 高清在线不卡av| 亚洲va天堂va国产va久| 日韩精品一区二区三区视频在线观看| 国产一区二区免费看| 亚洲精选免费视频| 日韩视频在线永久播放| 不卡一区二区三区四区| 亚洲一区在线观看视频| 日韩午夜激情av| 99久精品国产| 亚洲电影你懂得| 日韩情涩欧美日韩视频| av电影天堂一区二区在线观看| 亚洲成人av一区二区| 国产欧美日产一区| 7777女厕盗摄久久久| 成人国产精品免费| 麻豆国产一区二区| 一区二区成人在线| 国产精品午夜免费| 欧美不卡一区二区| 欧美日韩免费视频| 麻豆国产精品官网| 国产拍揄自揄精品视频麻豆| 欧美在线观看视频一区二区| 国内精品伊人久久久久av一坑| 亚洲国产欧美日韩另类综合| 国产精品午夜在线观看| 欧美大度的电影原声| 欧美午夜影院一区| 99久久久精品| 高清不卡在线观看| 国产精品一级在线| 蜜桃av噜噜一区| 日韩电影在线观看一区| 亚洲h在线观看| 国产午夜精品一区二区三区嫩草| 欧美欧美午夜aⅴ在线观看| 色哟哟国产精品免费观看| 成人高清视频免费观看| 国产aⅴ精品一区二区三区色成熟| 视频一区在线视频| 亚洲成av人片一区二区| 亚洲老司机在线| 亚洲天堂成人在线观看| 国产午夜精品一区二区三区嫩草| 日韩免费性生活视频播放| 91麻豆精品国产91久久久久久 | 91视频国产资源| 久久99国产乱子伦精品免费| 亚洲国产精品久久不卡毛片| 亚洲国产一区二区视频| 香蕉久久一区二区不卡无毒影院| 一个色在线综合| 亚洲成人在线观看视频| 亚洲精品国产高清久久伦理二区| 国产午夜精品一区二区三区四区| 亚洲精品一区二区三区99| 久久婷婷一区二区三区| 久久精品一级爱片| 国产精品久久久久久久久快鸭 | 日本一不卡视频| 一区二区三区电影在线播| 亚洲精品美国一| 日韩激情视频网站| 久久成人18免费观看| 国产一区二三区好的| 成人av影院在线| 欧美在线免费视屏| 日韩欧美一级在线播放| 久久综合久色欧美综合狠狠| 欧美激情在线一区二区| 国产欧美日本一区视频| 日韩电影免费在线看| 国产美女一区二区| 91视频一区二区|