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

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

?? recvdlg.cpp

?? spring+hibenate+struts開發(fā)
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
	case MENU_SAVEPOS:
	case MENU_SAVESIZE:
	case MENU_NORMALSIZE:
	case MENU_EDITFONT: case MENU_HEADFONT:
	case MENU_DEFAULTFONT:
		return	EvCommand(0, uCmdType, 0);
	}

	return	FALSE;
}

/*
	User掕媊 Event CallBack
*/
BOOL TRecvDlg::EventUser(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
	case WM_TCPEVENT:
		TcpEvent(wParam, lParam);
		return	TRUE;
	case WM_RECVDLG_FILEBUTTON:
		SetTransferButtonText();
		return	TRUE;
	}
	return	FALSE;
}

/*
	WM_TIMER event call back
	憲怣妋擣/嵞憲梡
*/
BOOL TRecvDlg::EvTimer(WPARAM _timerID, TIMERPROC proc)
{
	if (retryCnt++ < cfg->RetryMax * 2)
	{
		msgMng->UdpSend(msg.hostSub.addr, msg.hostSub.portNo, readMsgBuf);
		return	TRUE;
	}

	::KillTimer(hWnd, IPMSG_RECV_TIMER);
	if (timerID == 0)	// 嵞擖傛?zhèn)?		return	FALSE;
	timerID = 0;

	if (::IsWindowVisible(hWnd) == FALSE)
		::PostMessage(GetMainWnd(), WM_RECVDLG_EXIT, 0, (LPARAM)this);

	return	TRUE;
}

BOOL TRecvDlg::EvSize(UINT fwSizeType, WORD nWidth, WORD nHeight)
{
	if (fwSizeType != SIZE_RESTORED && fwSizeType != SIZE_MAXIMIZED)
		return	FALSE;

	GetWindowRect(&rect);
	int	xdiff = (rect.right - rect.left) - (orgRect.right - orgRect.left);
	int ydiff = (rect.bottom - rect.top) - (orgRect.bottom - orgRect.top);

	HDWP	hdwp = ::BeginDeferWindowPos(max_recvitem);	// MAX item number
	WINPOS	*wpos;
	BOOL	isFileBtn = IsWindowEnabled(GetDlgItem(FILE_BUTTON));
	UINT	dwFlg = (IsNewShell() ? SWP_SHOWWINDOW : SWP_NOREDRAW) | SWP_NOZORDER;
	UINT	dwHideFlg = SWP_HIDEWINDOW | SWP_NOZORDER;
	if (hdwp == NULL)
		return	FALSE;

// 僒僀僘偑彫偝偔側(cè)傞応崌偺挷惍抣偼丄Try and Error(^^;
	wpos = &item[title_item];
	if ((hdwp = ::DeferWindowPos(hdwp, GetDlgItem(RECV_TITLE), NULL, wpos->x, wpos->y, wpos->cx + xdiff, wpos->cy, dwFlg)) == NULL)
		return	FALSE;

	wpos = &item[head_item];
	if ((hdwp = ::DeferWindowPos(hdwp, GetDlgItem(RECV_HEAD), NULL, wpos->x, wpos->y, wpos->cx + xdiff, wpos->cy, dwFlg)) == NULL)
		return	FALSE;

	wpos = &item[head2_item];
	if ((hdwp = ::DeferWindowPos(hdwp, GetDlgItem(RECV_HEAD2), NULL, wpos->x, wpos->y, wpos->cx + xdiff, wpos->cy, dwFlg)) == NULL)
		return	FALSE;

	wpos = &item[file_item];
	if ((hdwp = ::DeferWindowPos(hdwp, GetDlgItem(FILE_BUTTON), NULL, wpos->x, wpos->y, wpos->cx + xdiff, wpos->cy, (isFileBtn && openFlg) ? dwFlg : dwHideFlg)) == NULL)
		return	FALSE;

	wpos = &item[open_item];
	if ((hdwp = ::DeferWindowPos(hdwp, GetDlgItem(OPEN_BUTTON), NULL, wpos->x, wpos->y, wpos->cx + xdiff, wpos->cy + ydiff, openFlg ? dwHideFlg : dwFlg)) == NULL)
		return	FALSE;

	wpos = &item[edit_item];
	if ((hdwp = ::DeferWindowPos(hdwp, GetDlgItem(RECV_EDIT), NULL, wpos->x, (isFileBtn ? wpos->y : item[file_item].y), wpos->cx + xdiff, wpos->cy + ydiff + (isFileBtn ? 0 : wpos->y - item[file_item].y), openFlg ? dwFlg : dwHideFlg)) == NULL)
		return	FALSE;

	wpos = &item[ok_item];
	if ((hdwp = ::DeferWindowPos(hdwp, GetDlgItem(IDOK), NULL, wpos->x + (xdiff >= 0 ? xdiff / 2 : xdiff * 3 / 4), wpos->y + ydiff, wpos->cx + (xdiff >= 0 ? 0 : xdiff / 4), wpos->cy, dwFlg)) == NULL)
		return	FALSE;

	wpos = &item[cancel_item];
	if ((hdwp = ::DeferWindowPos(hdwp, GetDlgItem(IDCANCEL), NULL, wpos->x + (xdiff >= 0 ? xdiff / 2 : xdiff * 3 / 8), wpos->y + ydiff, wpos->cx + (xdiff >= 0 ? 0 : xdiff * 1 / 4), wpos->cy, dwFlg)) == NULL)
		return	FALSE;

	wpos = &item[quote_item];
	if ((hdwp = ::DeferWindowPos(hdwp, GetDlgItem(QUOTE_CHECK), NULL, wpos->x + (xdiff >= 0 ? xdiff / 2 : xdiff), wpos->y + ydiff, wpos->cx, wpos->cy, openFlg ? dwFlg : dwHideFlg)) == NULL)
		return	FALSE;

	EndDeferWindowPos(hdwp);

	if (!IsNewShell())
		::InvalidateRgn(hWnd, NULL, TRUE);

	return	TRUE;
}


BOOL TRecvDlg::EvGetMinMaxInfo(MINMAXINFO *info)
{
	info->ptMinTrackSize.x = (orgRect.right - orgRect.left) * 2 / 3;
	info->ptMinTrackSize.y = (orgRect.bottom - orgRect.top) * 2 / 3;

	return	TRUE;
}

/*
	Context Menu event call back
*/
BOOL TRecvDlg::EvContextMenu(HWND childWnd, POINTS pos)
{
	PopupContextMenu(pos);
	return	TRUE;
}

BOOL TRecvDlg::IsSamePacket(MsgBuf *test_msg)
{
	if (test_msg->packetNo == msg.packetNo && test_msg->hostSub.addr == msg.hostSub.addr && test_msg->hostSub.portNo == msg.hostSub.portNo)
		return	TRUE;
	else
		return	FALSE;
}

void TRecvDlg::SetFont(void)
{
	HFONT	hDlgFont;
	LOGFONT	*editFont;

	if ((hDlgFont = (HFONT)SendMessage(WM_GETFONT, 0, 0L)) == NULL)
		return;
	if (::GetObject(hDlgFont, sizeof(LOGFONT), (LPSTR)&orgFont) == NULL)
		return;

	if (*cfg->RecvHeadFont.lfFaceName == 0)	//弶婜僨乕僞僙僢僩
		cfg->RecvHeadFont = orgFont;
	if (*cfg->RecvEditFont.lfFaceName == 0)	//弶婜僨乕僞僙僢僩
		cfg->RecvEditFont = orgFont;

	if (*cfg->RecvHeadFont.lfFaceName && (hDlgFont = ::CreateFontIndirect(&cfg->RecvHeadFont)) != NULL)
	{
		SendDlgItemMessage(RECV_HEAD, WM_SETFONT, (UINT)hDlgFont, 0L);
		SendDlgItemMessage(RECV_HEAD2, WM_SETFONT, (UINT)hDlgFont, 0L);
		if (hHeadFont)
			::DeleteObject(hHeadFont);
		hHeadFont = hDlgFont;
	}

	editFont = &cfg->RecvEditFont;

	if (editFont->lfFaceName && (hDlgFont = ::CreateFontIndirect(editFont)) != NULL)
	{
		SendDlgItemMessage(RECV_EDIT, WM_SETFONT, (UINT)hDlgFont, 0L);
		if (hEditFont)
			::DeleteObject(hEditFont);
		hEditFont = hDlgFont;
	}
}

void TRecvDlg::SetSize(void)
{
	WINDOWPLACEMENT wp;
	wp.length = sizeof(wp);

	::GetWindowPlacement(GetDlgItem(RECV_TITLE), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[title_item]);

	::GetWindowPlacement(GetDlgItem(RECV_HEAD), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[head_item]);

	::GetWindowPlacement(GetDlgItem(RECV_HEAD2), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[head2_item]);

	::GetWindowPlacement(GetDlgItem(FILE_BUTTON), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[file_item]);

	::GetWindowPlacement(GetDlgItem(OPEN_BUTTON), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[open_item]);

	::GetWindowPlacement(GetDlgItem(RECV_EDIT), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[edit_item]);

	::GetWindowPlacement(GetDlgItem(IDOK), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[ok_item]);

	::GetWindowPlacement(GetDlgItem(IDCANCEL), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[cancel_item]);

	::GetWindowPlacement(GetDlgItem(QUOTE_CHECK), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[quote_item]);

	GetWindowRect(&rect);
	orgRect = rect;
	int	cx = ::GetSystemMetrics(SM_CXFULLSCREEN), cy = ::GetSystemMetrics(SM_CYFULLSCREEN);
	int	xsize = rect.right - rect.left + cfg->RecvXdiff, ysize = rect.bottom - rect.top + cfg->RecvYdiff;
	int	x = cfg->RecvXpos, y = cfg->RecvYpos;

	if (cfg->RecvSavePos == 0)
	{
		x = (cx - xsize)/2 + (rand() % (cx/4)) - cx/8;
		y = (cy - ysize)/2 + (rand() % (cy/4)) - cy/8;
	}
	if (x + xsize > cx)
		x = cx - xsize;
	if (y + ysize > cy)
		y = cy - ysize;

	MoveWindow((x < 0) ? 0 : x, (y < 0) ? 0 : y, xsize, ysize, TRUE);
}

/*
	Menu Event CallBack
*/
BOOL TRecvDlg::EventInitMenu(UINT uMsg, HMENU hMenu, UINT uPos, BOOL fSystemMenu)
{
	switch (uMsg)
	{
	case WM_INITMENU:
		{
			::ModifyMenu(hMenu, MENU_SAVEPOS, MF_BYCOMMAND|(cfg->RecvSavePos ? MF_CHECKED :  0), MENU_SAVEPOS, SAVEPOS_MSGSTR);
		}
		return	TRUE;
	}
	return	FALSE;
}

/*
	Color Event CallBack
*/
BOOL TRecvDlg::EventCtlColor(UINT uMsg, HDC hDcCtl, HWND hWndCtl, HBRUSH *result)
{
#if 0
	switch (uMsg) {
	case WM_CTLCOLORDLG:
		{ static HBRUSH hb; if (hb == NULL) hb = ::CreateSolidBrush(0x222222); *result = hb; }
		break;
	case WM_CTLCOLOREDIT:
		{ static HBRUSH hb; if (hb == NULL) hb = ::CreateSolidBrush(0x222222); *result = hb; }
		SetTextColor(hDcCtl, 0xeeeeee);
		SetBkColor(hDcCtl, 0x222222);
		break;
	case WM_CTLCOLORSTATIC:
		{ static HBRUSH hb; if (hb == NULL) hb = ::CreateSolidBrush(0x222222); *result = hb; }
		SetTextColor(hDcCtl, 0xeeeeee);
		SetBkColor(hDcCtl, 0x222222);
		break;
	}
	return	TRUE;
#else
	return	FALSE;
#endif
}

BOOL TRecvDlg::EventButton(UINT uMsg, int nHitTest, POINTS pos)
{
	switch (uMsg)
	{
	case WM_RBUTTONUP:
		if (!IsNewShell())
			PopupContextMenu(pos);
		return	TRUE;
	}
	return	FALSE;
}

void TRecvDlg::PopupContextMenu(POINTS pos)
{
	HMENU	hMenu = ::CreatePopupMenu();

	SetMainMenu(hMenu);
	::TrackPopupMenu(hMenu, TPM_LEFTALIGN|TPM_RIGHTBUTTON, pos.x, pos.y, 0, hWnd, NULL);
	::DestroyMenu(hMenu);
}

void TRecvDlg::SetMainMenu(HMENU hMenu)
{
	::AppendMenu(hMenu, MF_POPUP, (UINT)::LoadMenu(TApp::hI, (LPCSTR)RECVFONT_MENU), FONTSET_MSGSTR);
	::AppendMenu(hMenu, MF_POPUP, (UINT)::LoadMenu(TApp::hI, (LPCSTR)SIZE_MENU), SIZESET_MSGSTR);
	::AppendMenu(hMenu, MF_STRING, MENU_SAVEPOS, SAVEPOS_MSGSTR);
}

/*
	憲怣廔椆捠抦
*/
BOOL TRecvDlg::SendFinishNotify(HostSub *hostSub, ULONG packet_no)
{
	if (msg.hostSub.addr == hostSub->addr && msg.hostSub.portNo == hostSub->portNo && packet_no == packetNo) {
		if (timerID == IPMSG_RECV_TIMER) {
			::KillTimer(hWnd, IPMSG_RECV_TIMER);
			timerID = 0;
			if (::IsWindowVisible(hWnd) == FALSE)
				::PostMessage(GetMainWnd(), WM_RECVDLG_EXIT, 0, (LPARAM)this);
		}
		return	TRUE;
	}
	return	FALSE;
}

/*
	憲怣拞偼丄Show偺visible傪偼偠偔
*/
void TRecvDlg::Show(int mode)
{
	if (timerID == 0 && hWnd)
		TWin::Show(mode);
}

BOOL TRecvDlg::TcpEvent(SOCKET sd, LPARAM lParam)
{
	if (WSAGETSELECTERROR(lParam) || fileObj == NULL || fileObj->conInfo == NULL)
		return	FALSE;

	switch (LOWORD(lParam)) {
	case FD_CONNECT:	// connect done
		StartRecvFile();
		break;

	case FD_CLOSE:
		EndRecvFile();
		break;
	}
	return	TRUE;
}

BOOL TRecvDlg::ConnectRecvFile(void)
{
	memset(fileObj->conInfo, 0, sizeof(ConnectInfo));
	fileObj->conInfo->addr = msg.hostSub.addr;
	fileObj->conInfo->port = msg.hostSub.portNo;

	if (msgMng->Connect(hWnd, fileObj->conInfo) != TRUE)
		return	FALSE;

	if (fileObj->conInfo->complete)
		StartRecvFile();

	return	TRUE;
}

#define	OFFSET 0

BOOL TRecvDlg::StartRecvFile(void)
{
	char	buf[MAX_PATH], tcpbuf[MAX_BUF];
	wsprintf(buf, fileObj->isDir ? "%x:%x:" : "%x:%x:%x:", msg.packetNo, fileObj->fileInfo->Id(), OFFSET);
	fileObj->conInfo->complete = TRUE;
	msgMng->MakeMsg(tcpbuf, fileObj->isDir ? IPMSG_GETDIRFILES : IPMSG_GETFILEDATA, buf);
	msgMng->ConnectDone(hWnd, fileObj->conInfo);

//fileObj->offset = fileObj->woffset = OFFSET;

	if (::send(fileObj->conInfo->sd, tcpbuf, strlen(tcpbuf), 0) < (int)strlen(tcpbuf))
		return	EndRecvFile(), FALSE;

	fileObj->conInfo->startTick = fileObj->conInfo->lastTick = ::GetTickCount();
	if (fileObj->startTick == 0)
		fileObj->startTick = fileObj->conInfo->startTick;

	if (fileObj->isDir == FALSE)
		fileObj->curFileInfo = *fileObj->fileInfo;
	fileObj->recvBuf = new char [cfg->TransMax];

	// 0byte file 偩偗偼丄摿椺
	if (fileObj->isDir == FALSE && fileObj->curFileInfo.Size() == 0)
	{
		if (OpenRecvFile())
		{
			CloseRecvFile(TRUE);
			fileObj->status = FS_COMPLETE;
		}
		else fileObj->status = FS_ERROR;

		PostMessage(WM_TCPEVENT, fileObj->conInfo->sd, FD_CLOSE);
		return	TRUE;
	}

	DWORD	id;	// 巊傢偢乮95宯偱 error 偵側(cè)傞偺傪杊偖偩偗乯
	fileObj->hThread = (HANDLE)~0;	// 旝柇側(cè)椞堟?zhèn)饠饌瘋?	// thread 撪偱偼 MT 懳墳偑昁梫側(cè) crt 偼巊傢偢
	if ((fileObj->hThread = ::CreateThread(NULL, 0, RecvFileThread, this, 0, &id)) == NULL)
	{
		EndRecvFile();
		return	FALSE;
	}

	return	TRUE;
}

DWORD WINAPI TRecvDlg::RecvFileThread(void *_recvDlg)
{
	TRecvDlg	*recvDlg = (TRecvDlg *)_recvDlg;
	RecvFileObj	*fileObj = recvDlg->fileObj;
	fd_set		rfd;
	timeval		tv;
	int			sock_ret;
	BOOL		(TRecvDlg::*RecvFileFunc)(void) =
				fileObj->isDir ? TRecvDlg::RecvDirFile : TRecvDlg::RecvFile;

	FD_ZERO(&rfd);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
aa级大片欧美| 尤物av一区二区| 精品一区二区日韩| 日韩免费一区二区| 麻豆高清免费国产一区| 亚洲卡通动漫在线| 免费看日韩精品| 欧美视频在线播放| 精品处破学生在线二十三| 日韩欧美亚洲一区二区| 国产精品视频免费| 亚洲免费三区一区二区| 亚洲成人午夜电影| 国内偷窥港台综合视频在线播放| 欧美图区在线视频| 日韩你懂的在线观看| 中文字幕一区二区三区色视频| 91最新地址在线播放| 亚洲小少妇裸体bbw| 欧美成人精精品一区二区频| 成人美女视频在线观看18| 一区二区成人在线观看| 欧美日韩免费一区二区三区视频| 麻豆精品新av中文字幕| 国产精品对白交换视频| 欧美日韩在线免费视频| 国产精品综合一区二区三区| 国产精品不卡一区二区三区| 欧美一级二级三级乱码| 风间由美中文字幕在线看视频国产欧美| 一区二区三区精品在线观看| 日韩欧美在线一区二区三区| 色偷偷88欧美精品久久久| 美腿丝袜在线亚洲一区| 亚洲精品日韩一| 久久日韩粉嫩一区二区三区 | 亚洲视频在线观看一区| 欧美精品 国产精品| 国产成人精品免费| 婷婷六月综合网| **性色生活片久久毛片| 日韩欧美色电影| 91精品1区2区| 国产成人免费9x9x人网站视频| 日本最新不卡在线| 亚洲乱码国产乱码精品精的特点| 久久久美女毛片| 91精品国产欧美一区二区成人| 91亚洲精华国产精华精华液| 国产麻豆一精品一av一免费| 免费在线观看视频一区| 亚洲电影第三页| 亚洲精品免费在线播放| 国产丝袜欧美中文另类| 欧美电视剧免费观看| 欧美性大战久久久久久久蜜臀| 粗大黑人巨茎大战欧美成人| 激情文学综合丁香| 日本伊人午夜精品| 午夜精品影院在线观看| 亚洲精品精品亚洲| 亚洲日本在线视频观看| 欧美夫妻性生活| 欧美日本一区二区三区| 欧美性做爰猛烈叫床潮| 91黄色小视频| 日本精品免费观看高清观看| 9色porny自拍视频一区二区| 久久99国产精品尤物| 麻豆精品国产91久久久久久| 另类综合日韩欧美亚洲| 91片黄在线观看| 福利电影一区二区| 欧美激情在线免费观看| 欧美老肥妇做.爰bbww| 欧美综合视频在线观看| 久久精品国产第一区二区三区| 日韩女优毛片在线| 99re成人精品视频| 91免费视频大全| 免费成人你懂的| 国产精品区一区二区三区| 欧美日韩在线一区二区| 亚洲国产成人精品视频| 久久尤物电影视频在线观看| 精品处破学生在线二十三| 精品国产一区二区在线观看| 日韩欧美一级二级三级| 久久综合九色综合97婷婷| 国产亚洲一区二区三区四区 | 一本久久精品一区二区| 色屁屁一区二区| 欧美精品丝袜中出| 精品国产91乱码一区二区三区| 精品国产欧美一区二区| 中文字幕欧美国产| 亚洲综合丁香婷婷六月香| 性感美女久久精品| 国产麻豆91精品| 99久久综合国产精品| 欧美一a一片一级一片| 日韩欧美中文字幕公布| 精品免费一区二区三区| 国产精品毛片久久久久久久| 一区二区三区在线观看欧美| 日韩一区精品字幕| 国产精品一二三在| 色婷婷综合久久| 精品久久久久久久久久久久久久久| 国产丝袜在线精品| 亚洲成人av电影在线| 激情文学综合网| 在线精品国精品国产尤物884a| 日韩三级伦理片妻子的秘密按摩| 国产精品日日摸夜夜摸av| 亚洲成人av在线电影| 国产成人av电影在线观看| 精品污污网站免费看| 精品久久久久久最新网址| 亚洲另类色综合网站| 久久精品国产99久久6| 91亚洲午夜精品久久久久久| 日韩欧美第一区| 亚洲精品中文在线观看| 精东粉嫩av免费一区二区三区| 色老汉一区二区三区| 久久一区二区视频| 亚洲大片免费看| 成人av网站在线| 精品噜噜噜噜久久久久久久久试看| 亚洲欧美日韩中文字幕一区二区三区| 麻豆91免费观看| 91福利区一区二区三区| 国产欧美一区二区精品性| 午夜精品福利一区二区三区av| 国产伦精品一区二区三区免费| 欧美日韩在线观看一区二区| 国产精品国产a级| 国产精品1区2区3区在线观看| 欧美日韩一区二区三区四区| 中文欧美字幕免费| 久久91精品久久久久久秒播| 欧美亚男人的天堂| 亚洲视频一区在线| 成人av手机在线观看| 久久久99精品免费观看| 免费一级欧美片在线观看| 欧美日韩亚洲国产综合| 国产精品久久夜| 国产乱码字幕精品高清av| 欧美成人精品福利| 日韩av一区二区在线影视| 欧美人体做爰大胆视频| 亚洲一区免费视频| 色综合中文字幕| 亚洲欧洲日产国码二区| 成人免费黄色大片| 国产欧美综合在线| 国产福利91精品一区二区三区| 日韩视频中午一区| 婷婷综合久久一区二区三区| 欧美体内she精高潮| 一区二区成人在线| 在线观看日韩av先锋影音电影院| 日韩一区中文字幕| 99国产精品久久久久久久久久久| 亚洲国产精品成人综合| 成人免费视频一区二区| 国产精品污网站| 成人精品在线视频观看| 中文字幕第一区综合| 不卡一区在线观看| 亚洲欧洲美洲综合色网| 91麻豆成人久久精品二区三区| 亚洲免费观看高清| 欧美亚男人的天堂| 日本网站在线观看一区二区三区| 日韩三级在线免费观看| 国产精品一二三四区| 综合久久综合久久| 欧美性色aⅴ视频一区日韩精品| 日韩综合一区二区| 精品免费日韩av| 粗大黑人巨茎大战欧美成人| 亚洲欧美电影院| 欧美日韩久久久久久| 久久精品国产亚洲一区二区三区| 久久午夜色播影院免费高清 | 日韩中文字幕麻豆| 精品人在线二区三区| av午夜精品一区二区三区| 亚洲国产综合91精品麻豆| 日韩你懂的在线播放| www.一区二区| 污片在线观看一区二区| 亚洲精品在线电影| 色综合久久六月婷婷中文字幕| 日本中文字幕一区二区视频| 国产亚洲制服色| 欧美三级电影在线观看|