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

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

?? wmsgsenthistory.cpp

?? 手機發送短信的Activex控件
?? CPP
字號:
// WMsgSentHistory.cpp: implementation of the CWMsgSentHistory class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
//tts #include "WSMModule.h"
#include "WMsgSentHistory.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#define DefaultTimeOut CTimeSpan(0,0,10,0)

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CWMsgLastFrameNo::CWMsgLastFrameNo(LPCSTR lpcszPhoneNumber)
{				
	strcpy(m_szPhoneNumber, lpcszPhoneNumber);
	m_lastFrameNo = MIN_FRAME_NO;
}

int CWMsgLastFrameNo::Compare( const CWMsgLastFrameNo& toCmp) const
{
	return strcmp(m_szPhoneNumber, toCmp.m_szPhoneNumber);
}

int CWMsgLastFrameNo::operator - (const CWMsgLastFrameNo& toMinus) const
{
	return Compare(toMinus);
}

BYTE CWMsgLastFrameNo::GenerateNextFrameNo()
{
	m_lastFrameNo++;

	BOOL bRecycle = m_lastFrameNo > MAX_FRAME_NO;
	if(bRecycle)
		m_lastFrameNo = MIN_FRAME_NO;

	return m_lastFrameNo;
}

BYTE CWMsgLastFrameNo::GetFrameNo() const
{
	return m_lastFrameNo;
}

CWMsgSentHistory::CWMsgSentHistory()
{
	m_bLocked = FALSE;
	m_timeOut = DefaultTimeOut;
}

CWMsgSentHistory::~CWMsgSentHistory()
{

}

POSITION CWMsgSentHistory::FindDuplicateItem(const CWMsgSent& toCheck)
{
	enum CWMsgSent::MsgMatchType prevType = CWMsgSent::SetMatchType(CWMsgSent::PhoneNumberAndFrameNo);
	POSITION pos = Find(toCheck, NULL);
	CWMsgSent::SetMatchType(prevType);		// restore
	
	return pos;
}

BOOL CWMsgSentHistory::HasDuplicateItem(const CWMsgSent& toCheck)
{
	return FindDuplicateItem(toCheck) != NULL;
}

void CWMsgSentHistory::ResetSaveTime()
{
	Lock();

	POSITION pos = GetHeadPosition();
	MsgSaveTimeType currTime = GetSaveTime();

	while(NULL!=pos)
	{
		CWMsgSent& item = GetNext(pos);
		item.SetSaveTime(currTime);
	}

	Unlock();
}

BOOL CWMsgSentHistory::SaveMsg(CWMsgSent& msg)
{

	Lock();
	
	RemoveTimeOutItem();

	BYTE newFrameNo = GenerateNextFrameNo(msg.GetPhoneNumber());
	msg.SetFrameNo(newFrameNo);

	BOOL bHasDuplicate = HasDuplicateItem(msg);
	if ( !bHasDuplicate ) 
	{
		msg.SetSaveTime(GetSaveTime());
		AddTail(msg);
	}

	Unlock();
	
	return !bHasDuplicate;
}

BOOL CWMsgSentHistory::IsLocked() const
{
	return m_bLocked;
}

void CWMsgSentHistory::Lock()
{
	ASSERT(!IsLocked());

	m_criticalSection.Lock();
	m_bLocked = TRUE;
}

void CWMsgSentHistory::Unlock()
{
	ASSERT(IsLocked());

	m_criticalSection.Unlock();
	m_bLocked = FALSE;
}

BYTE CWMsgSentHistory::GenerateNextFrameNo(LPCSTR lpcszPhoneNumber)
{
	CWMsgLastFrameNo toFind(lpcszPhoneNumber);
	int idxPrev = m_frameNoHistory.Find(toFind);
	
	if (idxPrev >= 0) 
		return m_frameNoHistory[idxPrev].GenerateNextFrameNo();
	else 
	{
		m_frameNoHistory.Add(toFind);			// save
		return toFind.GetFrameNo();
	}
	
}

MsgSaveTimeType CWMsgSentHistory::GetSaveTime()
{
	return CTime::GetCurrentTime();
}

BOOL CWMsgSentHistory::CheckTimeOut(const MsgSaveTimeType& currTime,const CWMsgSent& toCheck) const
{
	return ( currTime - toCheck.GetSaveTime() ) > m_timeOut;
}

void CWMsgSentHistory::RemoveTimeOutItem()
{

	ASSERT(IsLocked());

	MsgSaveTimeType currTime = GetSaveTime();

	POSITION pos = GetHeadPosition();
	while(pos != NULL)
	{
		POSITION posItem = pos;					// save for delete
		CWMsgSent& historyItem = GetNext(pos);	// get element at pos and make pos point to next
		if( CheckTimeOut(currTime, historyItem) ) 
			RemoveAt(posItem);
	}
}

BOOL CWMsgSentHistory::GetACopy(CWMsgSent& toFindAndGet, BOOL bResetSaveTime)
{
	Lock();

	POSITION pos = FindDuplicateItem(toFindAndGet);

	BOOL bFound = pos != NULL;
	if (bFound)
	{
		CWMsgSent& historyItem = GetAt(pos);
		toFindAndGet = historyItem;

		if(bResetSaveTime) 
			toFindAndGet.SetSaveTime(GetSaveTime());
	}

	Unlock();

	return bFound;
}

void CWMsgSentHistory::SetTimeOut(const MsgTimeOutType& timeOut)
{
	m_timeOut = timeOut;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久网站| 一区二区三区视频在线看| 欧美日韩精品免费| 色婷婷久久综合| aa级大片欧美| 成人av第一页| 在线观看视频一区二区| 91色九色蝌蚪| 在线观看91精品国产入口| 欧洲一区在线观看| 777奇米四色成人影色区| 日韩三级视频中文字幕| 亚洲精品一区二区三区四区高清| 日韩精品一区二区三区老鸭窝 | 亚洲蜜臀av乱码久久精品蜜桃| 国产精品拍天天在线| 国产精品久久福利| 亚洲午夜在线视频| 丝袜亚洲另类丝袜在线| 久久国产麻豆精品| 成人激情动漫在线观看| 欧美三级一区二区| 欧美v亚洲v综合ⅴ国产v| 欧美韩日一区二区三区| 一区二区三区蜜桃| 精品一二三四区| 91丨porny丨国产入口| 欧美老人xxxx18| 久久午夜羞羞影院免费观看| 亚洲色图第一区| 日本中文字幕一区二区视频| 丰满亚洲少妇av| 欧美精品乱码久久久久久| 久久女同性恋中文字幕| 一区二区三区日韩欧美精品| 久久99国产精品免费| av资源网一区| 精品不卡在线视频| 怡红院av一区二区三区| 狠狠色丁香婷婷综合久久片| 在线观看av一区二区| 欧美激情一区不卡| 麻豆国产欧美一区二区三区| 色综合天天综合网国产成人综合天 | 成人动漫精品一区二区| 欧美美女一区二区三区| 亚洲欧洲无码一区二区三区| 另类成人小视频在线| 在线观看一区日韩| 中文字幕在线视频一区| 久久草av在线| 制服丝袜亚洲播放| 亚洲精品日韩一| 不卡一卡二卡三乱码免费网站| 欧美一级高清片| 丝袜美腿高跟呻吟高潮一区| 91首页免费视频| 欧美国产国产综合| 国产成人精品三级| 久久这里只精品最新地址| 日韩电影免费在线看| 欧洲色大大久久| 亚洲欧洲色图综合| aaa欧美色吧激情视频| 中文天堂在线一区| 成人av电影在线网| 国产精品国产自产拍在线| 国产乱对白刺激视频不卡| 日韩视频在线你懂得| 强制捆绑调教一区二区| 欧美日韩一区在线观看| 亚洲国产视频在线| 欧美综合天天夜夜久久| 亚洲一区在线免费观看| 欧美在线播放高清精品| 亚洲综合男人的天堂| 欧美日韩视频一区二区| 亚洲图片欧美视频| 欧美日韩精品一区二区三区| 亚洲综合小说图片| 欧美日韩国产电影| 日本午夜精品视频在线观看| 日韩欧美国产三级| 国产精品亚洲专一区二区三区 | 国产亚洲综合av| 成人午夜av在线| 国产精品久久久久久久蜜臀| 91亚洲精华国产精华精华液| 亚洲欧美国产三级| 91超碰这里只有精品国产| 久久精品国产亚洲a| 国产欧美久久久精品影院| 99精品热视频| 日韩va欧美va亚洲va久久| 欧美va在线播放| 成人精品国产一区二区4080| 一区二区视频免费在线观看| 欧美日本在线视频| 国产乱码精品一区二区三| 亚洲欧美怡红院| 欧美久久久久久久久| 国产成人av电影在线观看| 亚洲免费资源在线播放| 欧美成人官网二区| 波多野结衣中文字幕一区二区三区 | 蜜桃视频在线观看一区二区| 日韩精品一区在线观看| 972aa.com艺术欧美| 丝袜诱惑制服诱惑色一区在线观看 | 蜜桃av一区二区在线观看| 国产欧美一区二区精品性色 | 国产成人免费xxxxxxxx| 亚洲免费在线观看视频| 欧美大片在线观看一区二区| 成人av网站大全| 看电影不卡的网站| 亚洲卡通欧美制服中文| 精品国产露脸精彩对白| 日本乱人伦aⅴ精品| 国产美女精品一区二区三区| 亚洲综合成人在线视频| 国产精品每日更新| 日韩欧美亚洲一区二区| 91成人免费在线视频| 国产毛片一区二区| 麻豆精品久久精品色综合| 一区二区三区产品免费精品久久75| www国产成人| 欧美日韩高清不卡| 色综合久久88色综合天天6| 精品一区二区三区的国产在线播放| 亚洲一区二区综合| 亚洲日本一区二区| 国产日韩欧美a| 日韩免费性生活视频播放| 欧美日韩精品一区二区在线播放| 91蝌蚪porny九色| 成人听书哪个软件好| 国产综合色产在线精品| 久久99热国产| 精品亚洲成a人| 久久99精品久久久久久| 日韩成人dvd| 日韩精品电影一区亚洲| 亚洲国产视频在线| 亚洲成人7777| 日本网站在线观看一区二区三区| 亚洲一区在线看| 亚洲高清免费在线| 亚洲国产精品影院| 亚洲成a人v欧美综合天堂下载| 一区二区免费在线| 亚洲va韩国va欧美va| 亚洲成人午夜电影| 日韩av电影免费观看高清完整版 | 日韩在线a电影| 日日夜夜精品视频免费| 婷婷国产v国产偷v亚洲高清| 亚洲国产视频一区二区| 天天射综合影视| 免费成人在线影院| 国产一区二区三区不卡在线观看| 国产精品一二三四| 成人激情av网| 91精品办公室少妇高潮对白| 在线精品国精品国产尤物884a| 欧美日韩视频一区二区| 欧美大片顶级少妇| 国产欧美日韩在线| 亚洲黄一区二区三区| 亚洲成av人**亚洲成av**| 老司机午夜精品| 成av人片一区二区| 欧美日韩免费观看一区二区三区| 欧美一区二区三区性视频| 久久午夜国产精品| 亚洲日本一区二区| 美女任你摸久久| 成人h动漫精品一区二区| 欧美性猛交xxxxxx富婆| 日韩美女在线视频 | 亚洲精品成人精品456| 五月婷婷色综合| 国产在线不卡一区| heyzo一本久久综合| 欧美日韩一级二级| 国产校园另类小说区| 亚洲国产综合人成综合网站| 蜜乳av一区二区三区| 不卡电影免费在线播放一区| 欧美日韩一区二区在线观看视频| 欧美精品一区二区三| 亚洲男人天堂av| 久久国产综合精品| 欧洲日韩一区二区三区| 久久亚洲私人国产精品va媚药| 亚洲一二三专区| proumb性欧美在线观看| 日韩欧美国产午夜精品| 亚洲国产中文字幕在线视频综合|