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

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

?? mainwin.cpp

?? spring+hibenate+struts開發(fā)
?? CPP
?? 第 1 頁 / 共 5 頁
字號(hào):

/*
	晄嵼捠抦 Information 梫媮 Packet庴怣張棟
*/
void TMainWin::MsgGetAbsenceInfo(MsgBuf *msg)
{
	msgMng->Send(&msg->hostSub, IPMSG_SENDABSENCEINFO, cfg->AbsenceCheck ? cfg->AbsenceStr[cfg->AbsenceChoice] : NOTABSENCE_MSGSTR);
}

/*
	晄嵼捠抦 Information 捠抦 Packet庴怣張棟
*/
void TMainWin::MsgSendAbsenceInfo(MsgBuf *msg)
{
	MsgInfoSub(msg);
}

/*
	揧晅僼傽僀儖攋婞捠抦 Packet庴怣張棟
*/
void TMainWin::MsgReleaseFiles(MsgBuf *msg)
{
	int	packet_no = atoi(msg->msgBuf);

	shareMng->EndHostShare(packet_no, &msg->hostSub);
}

/*
	憲怣Dialog惗惉丅偨偩偟丄摨堦偺寎寕憲怣Dialog偑奐偄偰偄傞応崌偼丄
	偦偺Dialog傪 Active偵偡傞偺傒丅
*/
BOOL TMainWin::SendDlgOpen(HWND hRecvWnd, MsgBuf *msg)
{
	TSendDlg *sendDlg;

	if (hRecvWnd)
	{
		for (sendDlg = (TSendDlg *)sendList.TopObj(); sendDlg != NULL; sendDlg = (TSendDlg *)sendList.NextObj(sendDlg))
			if (sendDlg->GetRecvWnd() == hRecvWnd && sendDlg->IsSending() != TRUE)
				return	ActiveDlg(sendDlg), TRUE;
	}

	if ((sendDlg = new TSendDlg(msgMng, shareMng, &hosts, cfg, logmng, hRecvWnd, msg)) == NULL)
		return	FALSE;

	sendList.AddObj(sendDlg);
	sendDlg->Create(), sendDlg->Show();
	ControlIME(sendDlg, TRUE);

// test
	if (hosts.HostCnt() == 0 && cfg->ListGet == FALSE)
		BroadcastEntrySub(inet_addr("127.0.0.1"), htons(portNo), IPMSG_BR_ENTRY);

	return	TRUE;
}

/*
	憲怣Dialog Hide捠抦(WM_SENDDLG_HIDE)張棟丅
	揱偊偰偒偨憲怣Dialog偵懳墳偡傞丄庴怣Dialog傪攋婞
*/
void TMainWin::SendDlgHide(TSendDlg *sendDlg)
{
	ControlIME(sendDlg, FALSE);

	if (sendDlg->GetRecvWnd() && cfg->NoErase == FALSE)
	{
		TRecvDlg *recvDlg;

		for (recvDlg = (TRecvDlg *)recvList.TopObj(); recvDlg != NULL; recvDlg = (TRecvDlg *)recvList.NextObj(recvDlg))
		{
			if (recvDlg->hWnd == sendDlg->GetRecvWnd() && recvDlg->IsClosable())
			{
				recvDlg->EvCommand(0, IDCANCEL, 0);
				break;
			}
		}
	}
}

/*
	憲怣Dialog Exit捠抦(WM_SENDDLG_EXIT)張棟丅
	揱偊偰偒偨憲怣Dialog 偍傛?zhèn)褢螇瀭穫閹髳MDialog偺攋婞
*/
void TMainWin::SendDlgExit(TSendDlg *sendDlg)
{
	if (sendDlg->IsSending() == FALSE)	// 憲怣拞偺応崌偼 HIDE 偱幚峴嵪傒
		ControlIME(sendDlg, FALSE);
	sendList.DelObj(sendDlg);
	delete sendDlg;
}

/*
	庴怣Dialog傪惗惉
*/
BOOL TMainWin::RecvDlgOpen(MsgBuf *msg)
{
	TRecvDlg *recvDlg;

	if ((recvDlg = new TRecvDlg(msgMng, msg, &hosts, cfg, logmng)) == NULL)
		return	FALSE;
	if (recvDlg->Status() == FALSE)		// 埫崋暥偺暅崋偵幐攕偟偨
	{
		delete recvDlg;
		return	FALSE;
	}

	recvList.AddObj(recvDlg);

	if (cfg->NoBeep == FALSE)
	{
		char	*soundFile = cfg->SoundFile;
#if 0
		Host	*host = hosts.GetHostByAddr(&msg->hostSub);

		if (host)
		{
			int priorityLevel = (host->priority - DEFAULT_PRIORITY) / PRIORITY_OFFSET;

			if (priorityLevel >= 0 && priorityLevel < cfg->PriorityMax)
			{
				if (cfg->PrioritySound[priorityLevel])
					soundFile = cfg->PrioritySound[priorityLevel];
			}
		}
#endif
		if (*soundFile == '\0' || PlaySound(soundFile, 0, SND_FILENAME|SND_ASYNC) != TRUE)
			if (MessageBeep(MB_OK) != TRUE)
				MessageBeep((UINT)~0);
	}

	if (cfg->NoPopupCheck || (cfg->AbsenceNonPopup && cfg->AbsenceCheck))
	{
		if (reverseTimerStatus == 0)
		{
			ReverseIcon(TRUE);
			if (::SetTimer(hWnd, IPMSG_REVERSEICON, IPMSG_TIMERINTERVAL, NULL))
				reverseTimerStatus = IPMSG_REVERSEICON;
		}
	}
	else {
		recvDlg->Create();
		recvDlg->Show();
		recvDlg->SetForceForegroundWindow();
	}

	return	TRUE;
}

/*
	庴怣Dialog傪攋婞
*/
void TMainWin::RecvDlgExit(TRecvDlg *recvDlg)
{
	recvList.DelObj(recvDlg);
	delete recvDlg;
}

/*
	妋擣Dialog傪攋婞
*/
void TMainWin::MsgDlgExit(TMsgDlg *msgDlg)
{
	msgList.DelObj(msgDlg);
	delete msgDlg;
}

/*
	Setup/About/Absence Dialog傪惗惉
*/
void TMainWin::MiscDlgOpen(TDlg *dlg)
{
	if (dlg->hWnd == NULL)
		dlg->Create(), dlg->Show();
	else
		ActiveDlg(dlg);
}

/*
	TaskTray偵巜掕icon傪搊榐
*/
BOOL TMainWin::TaskBar(int nimMode, HICON hSetIcon, LPCSTR tip)
{
	NOTIFYICONDATA	tn;

	memset(&tn, 0, sizeof(tn));
	tn.cbSize = sizeof(tn);
	tn.hWnd = hWnd;
	tn.uID = IPMSG_DEFAULT_PORT;		// test
	tn.uFlags = NIF_MESSAGE|(hSetIcon ? NIF_ICON : 0)|(tip ? NIF_TIP : 0);
	tn.uCallbackMessage = WM_IPMSG_NOTIFY;
	tn.hIcon = hSetIcon;
	if (tip)
		strcpy(tn.szTip, tip);

	return	::Shell_NotifyIcon(nimMode, &tn);
}

/*
	MainWindow or TaskTray Icon 傪 click偟偨帪偺 Popup Menu惗惉
*/
void TMainWin::Popup(UINT resId)
{
	HMENU	hMenu = ::LoadMenu(TApp::hI, (LPCSTR)resId);
	HMENU	hSubMenu = ::GetSubMenu(hMenu, 0);	//偐側(cè)傜偢丄嵟弶偺崁栚偵掕媊
	DWORD	val = ::GetMessagePos();
	POINTS	pos = MAKEPOINTS(val);

	if (hMenu == NULL || hSubMenu == NULL)
		return;

	ShareCntInfo	info;
	shareMng->GetShareCntInfo(&info);

	char	buf[MAX_LISTBUF] = DOWNLOAD_MSGSTR;
	if (info.packetCnt)
		wsprintf(buf + strlen(buf), "(%d/%d)", info.fileCnt, info.transferCnt);
	::InsertMenu(hSubMenu, 0, MF_BYPOSITION|MF_SEPARATOR, NULL, NULL);
	::InsertMenu(hSubMenu, 0, MF_BYPOSITION|MF_STRING, MENU_SHARE, buf);

	AddAbsenceMenu(hSubMenu, 2);

	SetForegroundWindow();		//偲偭偰傕戝帠両

	::TrackPopupMenu(hSubMenu, TPM_RIGHTBUTTON, pos.x, pos.y, 0, hWnd, NULL);

	::DestroyMenu(hMenu);
}

/*
	NonPopup忬懺偵側(cè)偭偰偄偨庴怣Dialog偑偁傟偽丄弌尰偝偣傞
*/
BOOL TMainWin::PopupCheck(void)
{
	BOOL		result = FALSE; 
	TRecvDlg	*recvDlg;

	for (recvDlg = (TRecvDlg *)recvList.TopObj(); recvDlg != NULL; recvDlg = (TRecvDlg *)recvList.NextObj(recvDlg))
	{
		if (recvDlg->hWnd == 0)
		{
			recvDlg->Create(), recvDlg->Show();
			result = TRUE;
		}
	}

	if (result)
	{
		::KillTimer(hWnd, IPMSG_REVERSEICON);
		reverseTimerStatus = 0;
		SetIcon(cfg->AbsenceCheck == FALSE ? hMainIcon : hRevIcon);
	}

	return	result;
}

/*
	慡Window傪慜柺偵傕偭偰偔傞丅hide == TRUE偺応崌丄慡Window傪 hide偵
*/
void TMainWin::ActiveChildWindow(BOOL active)
{
	ActiveDlg(aboutDlg, active);
	ActiveDlg(setupDlg, active);
	ActiveDlg(absenceDlg, active);
	ActiveDlg(shareStatDlg, active);
	ActiveListDlg(&recvList, active);
	ActiveListDlg(&sendList, active);
	ActiveListDlg(&msgList, active);

	if (active == FALSE)
		SetForegroundWindow();
}

/*
	HostData偺copy
*/
inline void TMainWin::SetHostData(Host *destHost, HostSub *hostSub, ULONG command, time_t update_time, char *nickName, char *groupName, int priority)
{
	destHost->hostStatus = GET_OPT(command);
	destHost->hostSub = *hostSub;
	destHost->updateTime = update_time;
	destHost->priority = priority;
	strncpyz(destHost->nickName, nickName, sizeof(destHost->nickName));
	strncpyz(destHost->groupName, groupName, sizeof(destHost->groupName));
}

/*
	Host捛壛張棟
*/
void TMainWin::AddHost(HostSub *hostSub, ULONG command, char *nickName, char *groupName)
{
	Host	*host, *tmp_host, *priorityHost;
	time_t	now_time = Time();
	int		priority = DEFAULT_PRIORITY;

	if (GET_MODE(command) == IPMSG_BR_ENTRY && (command & IPMSG_DIALUPOPT) && !IsSameHost(hostSub, msgMng->GetLocalHost()))
	{
		for (AddrObj *obj = (AddrObj *)cfg->DialUpList.TopObj(); obj != NULL; obj = (AddrObj *)cfg->DialUpList.NextObj(obj))
			if (obj->addr == hostSub->addr && obj->portNo == hostSub->portNo)
				break;

		if (obj == NULL)
		{
			obj = new AddrObj;
			obj->addr	= hostSub->addr;
			obj->portNo	= hostSub->portNo;
			cfg->DialUpList.AddObj(obj);
		}
	}

	if ((priorityHost = cfg->priorityHosts.GetHostByName(hostSub)) != NULL)
	{
		priority = priorityHost->priority;
//		command |= priorityHost->hostStatus & IPMSG_ENCRYPTOPT;
	}

	if ((host = hosts.GetHostByName(hostSub)) != NULL)
	{
		if (host->hostSub.addr != hostSub->addr || host->hostSub.portNo != hostSub->portNo)
		{
			if ((tmp_host = hosts.GetHostByAddr(hostSub)) != NULL)
			{
				for (TSendDlg *sendDlg = (TSendDlg *)sendList.TopObj(); sendDlg != NULL; sendDlg = (TSendDlg *)sendList.NextObj(sendDlg))
					sendDlg->DelHost(tmp_host);
				hosts.DelHost(tmp_host);
				if (tmp_host->RefCnt() == 0)
					delete tmp_host;
			}
			hosts.DelHost(host);
			host->hostSub.addr = hostSub->addr;
			host->hostSub.portNo = hostSub->portNo;
			hosts.AddHost(host);
		}
		if (((command ^ host->hostStatus) & (IPMSG_ABSENCEOPT|IPMSG_FILEATTACHOPT|IPMSG_ENCRYPTOPT)) || strcmp(host->nickName, nickName) || strcmp(host->groupName, groupName))
		{
			SetHostData(host, hostSub, command, now_time, nickName, groupName, priority);
			for (TSendDlg *sendDlg = (TSendDlg *)sendList.TopObj(); sendDlg != NULL; sendDlg = (TSendDlg *)sendList.NextObj(sendDlg))
				sendDlg->ModifyHost(host);
		}
		else {
			host->hostStatus = GET_OPT(command);
			host->updateTime = now_time;
		}
		return;
	}

	if ((host = hosts.GetHostByAddr(hostSub)) != NULL)
	{
		for (TSendDlg *sendDlg = (TSendDlg *)sendList.TopObj(); sendDlg != NULL; sendDlg = (TSendDlg *)sendList.NextObj(sendDlg))
			sendDlg->DelHost(host);
		hosts.DelHost(host);
		if (host->RefCnt() == 0)
			delete host;
	}

	if ((host = priorityHost) == NULL)
		host = new Host;

	SetHostData(host, hostSub, command, now_time, nickName, groupName, priority);
	hosts.AddHost(host);
//	if (priorityHost == NULL)
//		cfg->priorityHosts.AddHost(host);

	SetCaption();

	for (TSendDlg *sendDlg = (TSendDlg *)sendList.TopObj(); sendDlg != NULL; sendDlg = (TSendDlg *)sendList.NextObj(sendDlg))
		sendDlg->AddHost(host);
}

/*
	慡Host偺嶍彍張棟
*/
void TMainWin::DelAllHost(void)
{
	for (TSendDlg *sendDlg = (TSendDlg *)sendList.TopObj(); sendDlg != NULL; sendDlg = (TSendDlg *)sendList.NextObj(sendDlg))
		sendDlg->DelAllHost();

	while (hosts.HostCnt() > 0)
		DelHostSub(hosts.GetHost(0));
}

/*
	摿掕Host偺嶍彍張棟
*/
void TMainWin::DelHost(HostSub *hostSub)
{
	Host *host;

	if ((host = hosts.GetHostByAddr(hostSub)) != NULL)
		DelHostSub(host);
}

/*
	摿掕Host偺嶍彍張棟Sub
*/
void TMainWin::DelHostSub(Host *host)
{
	for (TSendDlg *sendDlg = (TSendDlg *)sendList.TopObj(); sendDlg != NULL; sendDlg = (TSendDlg *)sendList.NextObj(sendDlg))
		sendDlg->DelHost(host);

	for (AddrObj *obj = (AddrObj *)cfg->DialUpList.TopObj(); obj != NULL; obj = (AddrObj *)cfg->DialUpList.NextObj(obj))
	{
		if (obj->addr == host->hostSub.addr && obj->portNo == host->hostSub.portNo)
		{
			cfg->DialUpList.DelObj(obj);
			delete obj;
			break;
		}
	}
	hosts.DelHost(host);
	if (host->RefCnt() == 0)
		delete host;
	else if (host->pubKey.Key())
		host->pubKey.UnSet();
	SetCaption();
}

/*
	峏怴Button梡張棟丅強(qiáng)桳HostList偺嶍彍丄偍傛?zhèn)褝腅ntry Packet憲弌丅
	側(cè)偍丄unRemoveFlg == TRUE偺応崌偼丄嶍彍張棟傪峴傢側(cè)偄
*/
void TMainWin::RefreshHost(BOOL unRemoveFlg)
{
	time_t	now_time = Time();

	if (cfg->ListGet && entryTimerStatus != 0 || refreshStartTime + IPMSG_ENTRYMINSEC >= now_time)
		return;

	if (unRemoveFlg != TRUE)
	{
		if (cfg->UpdateTime == 0 || refreshStartTime + cfg->UpdateTime < now_time) {
			DelAllHost();
		}
		else {
			for (int cnt=0; cnt < hosts.HostCnt(); )
			{
				if (hosts.GetHost(cnt)->updateTime + cfg->UpdateTime < now_time)
					DelHostSub(hosts.GetHost(cnt));
				else
					cnt++;
			}
		}
	}
	refreshStartTime = now_time;
	EntryHost();
}

/*
	Main Window or TaskTray梡 Caption偺愝掕
*/
void TMainWin::SetCaption(void)
{
	char	buf[MAX_LISTBUF];

	wsprintf(buf, "IPMsg(%d)", hosts.HostCnt());

	if (IsNewShell())
		TaskBar(NIM_MODIFY, NULL, buf);
	else
		::SetWindowText(hWnd, buf);
}

/*
	IPMSG_ENTRY/IPMSG_EXIT/IPMSG_ABSENCE僷働僢僩憲弌
*/
void TMainWin::BroadcastEntry(ULONG mode)
{
	for (TBroadcastObj *brobj=cfg->broadcastList.Top(); brobj; brobj=cfg->broadcastList.Next(brobj))
		BroadcastEntrySub(brobj->Addr(cfg->ResolveOpt & RS_REALTIME), htons(portNo), IPMSG_NOOPERATION);
	BroadcastEntrySub((ULONG)~0, htons(portNo), IPMSG_NOOPERATION);

	this->Sleep(cfg->DelayTime);

	UINT host_status = mode | HostStatus();

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩黄色小视频| 国产精品青草综合久久久久99| 国产超碰在线一区| 日本美女一区二区| 日本不卡的三区四区五区| 五月天丁香久久| 午夜免费欧美电影| 日本欧美韩国一区三区| 美洲天堂一区二卡三卡四卡视频| 蜜臀精品一区二区三区在线观看| 日本在线不卡一区| 一区二区三区小说| 日韩美女啊v在线免费观看| 综合在线观看色| 一区二区三区四区视频精品免费| 亚洲九九爱视频| 亚洲国产精品久久艾草纯爱 | 91丨porny丨首页| 91视频免费播放| 欧美日韩一区久久| 91麻豆产精品久久久久久 | 国产精品久久久久一区| 91精选在线观看| 91精品国产综合久久婷婷香蕉 | 欧美日韩一区二区欧美激情| 欧美日韩黄色一区二区| 69堂精品视频| 国产人伦精品一区二区| 亚洲欧洲日韩女同| 视频一区二区中文字幕| 精品一二三四区| youjizz国产精品| 欧美精品自拍偷拍| 欧美精品一区二区在线观看| 国产精品久久国产精麻豆99网站| 亚洲男人天堂av| 久久成人精品无人区| 91看片淫黄大片一级在线观看| 在线不卡的av| 五月天亚洲精品| 国产成人在线色| 91精品欧美福利在线观看| 国产欧美一区二区精品性色| 亚洲高清免费在线| 国产精品一区二区黑丝| 欧美色男人天堂| 中文在线一区二区| 久久精品国产99久久6| 91国偷自产一区二区三区成为亚洲经典| 欧美一区二区三区色| 一区二区三区自拍| 国产成人亚洲综合色影视| 宅男在线国产精品| 中文字幕在线观看一区| 韩国精品在线观看| 欧美一区二区三区视频免费| 一区二区三区视频在线观看| 成人手机在线视频| 欧美成人女星排名| 亚洲不卡在线观看| 色噜噜久久综合| 国产精品国产三级国产a| 久久爱另类一区二区小说| 欧美日韩精品欧美日韩精品一| 亚洲天堂2016| 成人毛片老司机大片| 国产亚洲一区二区在线观看| 久久99国产乱子伦精品免费| 宅男在线国产精品| 一区二区三区欧美视频| 国产成人亚洲综合a∨猫咪| 精品欧美黑人一区二区三区| 日韩精品电影一区亚洲| 欧美日韩成人一区二区| 亚洲图片欧美综合| 欧美熟乱第一页| 亚洲成人精品影院| 欧美日韩国产另类一区| 性欧美大战久久久久久久久| 欧美亚洲愉拍一区二区| 亚洲高清视频在线| 欧美日韩一级片在线观看| 午夜视频在线观看一区| 欧美午夜电影在线播放| 亚洲国产精品久久艾草纯爱 | 亚洲国产日韩在线一区模特| 91最新地址在线播放| 亚洲女性喷水在线观看一区| 亚洲精品欧美激情| 国产精品一区不卡| 美女视频网站黄色亚洲| 男人操女人的视频在线观看欧美| 色婷婷亚洲精品| 亚洲成人综合视频| 日韩午夜中文字幕| 人禽交欧美网站| 精品电影一区二区| av电影在线观看一区| 亚洲天堂成人网| 欧美日韩国产综合久久| 美脚の诱脚舐め脚责91| 日本一区二区三区电影| 在线精品视频小说1| 麻豆成人在线观看| 国产精品盗摄一区二区三区| 欧美日韩亚洲国产综合| 精品一区二区在线免费观看| 日本一二三不卡| 欧美吻胸吃奶大尺度电影 | 久久夜色精品一区| jvid福利写真一区二区三区| 亚洲黄色小说网站| 日韩一区二区三区电影| 成人精品一区二区三区中文字幕| 一级精品视频在线观看宜春院| 欧美一区二区三区系列电影| aaa亚洲精品| 美女www一区二区| 1000部国产精品成人观看| 日韩欧美一区二区免费| 91在线观看免费视频| 久久机这里只有精品| 亚洲中国最大av网站| 久久久国产精品麻豆| 欧美人伦禁忌dvd放荡欲情| 国产不卡在线视频| 久久se这里有精品| 亚洲高清三级视频| 亚洲人妖av一区二区| 亚洲精品一线二线三线| 欧美日韩视频在线第一区| 成人av综合在线| 激情综合亚洲精品| 天堂av在线一区| 亚洲精品成人在线| 亚洲国产岛国毛片在线| 日韩欧美国产午夜精品| 欧美日韩视频在线观看一区二区三区| www.66久久| 国产精品亚洲第一区在线暖暖韩国| 中文字幕第一区二区| 精品一区二区在线播放| 亚洲国产精品麻豆| 亚洲午夜久久久久| 日韩一区有码在线| 欧美久久久影院| 日韩欧美一区在线| 国产乱人伦偷精品视频免下载| 日韩美女一区二区三区四区| 国产精品一二三区在线| 激情综合色丁香一区二区| 亚洲伊人色欲综合网| 精品女同一区二区| 色狠狠av一区二区三区| 免费在线看成人av| 国产精品久久久久久亚洲伦 | 亚洲摸摸操操av| 欧美日韩精品一区二区在线播放| 丁香激情综合国产| 国产91富婆露脸刺激对白| 丰满亚洲少妇av| 99久久伊人网影院| 91美女片黄在线观看| 色综合一个色综合| 欧美性一二三区| 欧美精品99久久久**| 日韩欧美一级二级三级久久久| 3d动漫精品啪啪一区二区竹菊| 制服视频三区第一页精品| 欧美成人伊人久久综合网| 久久久久久一二三区| 中文字幕一区二区视频| 日韩理论片在线| 日韩黄色免费电影| jlzzjlzz亚洲女人18| 972aa.com艺术欧美| 欧美日产在线观看| 欧美精品一区二区高清在线观看 | 尤物av一区二区| 奇米色一区二区| 高清shemale亚洲人妖| 97久久精品人人爽人人爽蜜臀| 欧美色精品天天在线观看视频| 91麻豆精品国产自产在线 | 日本欧美在线观看| 国产成人综合在线观看| 91精品1区2区| 欧美α欧美αv大片| 亚洲免费在线播放| 久久精品国产精品亚洲综合| 岛国精品一区二区| 欧美老女人第四色| 中文字幕的久久| 欧美a一区二区| 色偷偷久久人人79超碰人人澡| 日韩免费一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 蓝色福利精品导航| 在线亚洲精品福利网址导航| 久久久精品一品道一区|