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

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

?? recvdlg.cpp

?? 現在很流行的傳送平臺
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
	}
	return	TRUE;
}

BOOL TRecvDlg::EvSysCommand(WPARAM uCmdType, WORD xPos, WORD yPos)
{
	switch (uCmdType)
	{
	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)	// 嵞擖傛偗
		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;

// 僒僀僘偑彫偝偔側傞応崌偺挷惍抣偼丄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, WORD xPos, WORD yPos)
{
	PopupContextMenu();
	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();
		return	TRUE;
	}
	return	FALSE;
}

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

	SetMainMenu(hMenu);
	::TrackPopupMenu(hMenu, TPM_LEFTALIGN|TPM_RIGHTBUTTON, LOWORD(pos), HIWORD(pos), 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(int 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;
}

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(), 0);
	fileObj->conInfo->complete = TRUE;
	msgMng->MakeMsg(tcpbuf, fileObj->isDir ? IPMSG_GETDIRFILES : IPMSG_GETFILEDATA, buf);
	msgMng->ConnectDone(hWnd, fileObj->conInfo);

	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() == TRUE)
		{
			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 偵側傞偺傪杊偖偩偗乯
	fileObj->hThread = ~0;	// 旝柇側椞堟傪旔偗傞
	// thread 撪偱偼 MT 懳墳偑昁梫側 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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线观看视频在线| 欧美一区二区三区在线观看视频 | 欧美久久一区二区| 精品成人佐山爱一区二区| 自拍偷拍亚洲激情| 男女激情视频一区| 99国产精品久久久| 欧美videos大乳护士334| 一区二区视频免费在线观看| 黄色小说综合网站| 欧美视频在线不卡| 中文字幕亚洲一区二区va在线| 午夜视频在线观看一区| 成人伦理片在线| 26uuu国产一区二区三区| 亚洲午夜羞羞片| 99re亚洲国产精品| 欧美经典一区二区三区| 免费观看在线综合| 制服丝袜亚洲精品中文字幕| 综合久久久久综合| 成人免费视频视频| 久久精品一区二区三区不卡| 蜜臀久久99精品久久久画质超高清| 日本韩国欧美三级| 综合欧美一区二区三区| av网站一区二区三区| 国产欧美日韩另类视频免费观看| 国产毛片一区二区| 久久日韩粉嫩一区二区三区| 精东粉嫩av免费一区二区三区| 精品国一区二区三区| 亚洲一区二区中文在线| 色欧美乱欧美15图片| 综合久久久久久| 91免费观看在线| 亚洲特级片在线| 97se亚洲国产综合自在线| 国产精品全国免费观看高清| 国产成人综合视频| 久久久www成人免费毛片麻豆 | 亚洲视频1区2区| 99精品在线观看视频| 国产精品久久久久一区| 91在线免费看| 亚洲精品成人精品456| 欧美三区免费完整视频在线观看| 亚洲综合偷拍欧美一区色| 色婷婷av一区二区三区gif| 亚洲资源在线观看| 8x福利精品第一导航| 美女网站视频久久| 国产亚洲精久久久久久| 不卡一卡二卡三乱码免费网站| 日韩理论片网站| 欧美日韩综合在线| 麻豆成人在线观看| 国产欧美va欧美不卡在线| av亚洲产国偷v产偷v自拍| 一卡二卡三卡日韩欧美| 日韩欧美在线网站| 国产成人在线网站| 亚洲三级理论片| 69久久夜色精品国产69蝌蚪网| 精品一区二区三区视频在线观看 | 亚洲欧美日韩一区二区三区在线观看| 色综合久久88色综合天天6| 亚洲成人免费电影| 久久青草欧美一区二区三区| 91视频www| 日日夜夜精品视频天天综合网| 久久久三级国产网站| 日本国产一区二区| 久久精品国产亚洲a| 国产精品福利一区| 91精品欧美久久久久久动漫| 粉嫩嫩av羞羞动漫久久久| 亚洲午夜久久久久久久久电影网| 精品美女一区二区| 91老师国产黑色丝袜在线| 蜜臀久久久99精品久久久久久| 国产精品免费视频观看| 欧美日韩精品一区二区三区| 国产精品系列在线观看| 亚洲国产va精品久久久不卡综合| 久久久精品综合| 欧美无乱码久久久免费午夜一区| 国产精品一区一区| 日本亚洲一区二区| 亚洲欧美一区二区三区极速播放| 精品美女在线观看| 91.成人天堂一区| 日本韩国精品在线| gogogo免费视频观看亚洲一| 毛片一区二区三区| 亚洲成人777| 亚洲精品乱码久久久久久黑人 | 亚洲欧美在线观看| 精品美女在线播放| 91精品国产91久久久久久一区二区| 97久久精品人人做人人爽| 国产一区在线观看麻豆| 免费成人美女在线观看| 亚洲夂夂婷婷色拍ww47| 国产精品免费视频一区| 久久久久久亚洲综合影院红桃 | 五月婷婷久久丁香| 一区二区三区在线视频免费观看| 国产欧美日韩不卡免费| 欧美一区二区三区视频在线观看| 日本韩国精品一区二区在线观看| 91在线视频在线| 成人的网站免费观看| 国产成人综合在线观看| 国产剧情一区二区| 国产专区欧美精品| 黄页网站大全一区二区| 激情五月婷婷综合| 极品美女销魂一区二区三区免费| 日本不卡一二三| 日本怡春院一区二区| 美女脱光内衣内裤视频久久网站| 日本午夜精品视频在线观看| 五月激情综合网| 日韩精品三区四区| 美女被吸乳得到大胸91| 麻豆精品精品国产自在97香蕉| 久久99国内精品| 国产综合成人久久大片91| 国产成a人亚洲精| 99精品视频在线免费观看| 91免费观看视频在线| 欧洲国内综合视频| 91精品国产综合久久福利| 日韩三级视频在线观看| 欧美大胆人体bbbb| 欧美经典三级视频一区二区三区| 国产精品成人在线观看| 亚洲女子a中天字幕| 日韩激情一二三区| 韩国av一区二区| 国产精品亚洲а∨天堂免在线| 99国产精品久久久久久久久久| 欧美视频你懂的| 日韩欧美一二三四区| 国产女人aaa级久久久级| 亚洲人成亚洲人成在线观看图片| 婷婷开心久久网| 国产裸体歌舞团一区二区| 日本高清不卡aⅴ免费网站| 欧美人动与zoxxxx乱| 精品国产一区二区在线观看| 国产精品三级av在线播放| 亚洲一区二区在线观看视频| 六月丁香综合在线视频| 成人免费高清视频| 7777精品伊人久久久大香线蕉经典版下载| 日韩免费视频一区| 一区在线观看免费| 免费欧美在线视频| av在线播放不卡| 欧美r级在线观看| 亚洲精品中文在线| 国产一区二区三区四| 欧美日免费三级在线| 国产精品无码永久免费888| 亚洲成人自拍偷拍| 高清视频一区二区| 日韩精品一区二区三区中文不卡| 亚洲天堂成人网| 国产精品一区二区在线观看不卡 | 欧美一区二区三区四区视频| 一区在线播放视频| 国产美女在线精品| 欧美精品日韩精品| 亚洲婷婷综合久久一本伊一区| 麻豆91在线播放免费| 在线视频你懂得一区二区三区| 国产亚洲欧美激情| 日本人妖一区二区| 欧美视频一区二区三区四区| 国产精品少妇自拍| 美女一区二区三区| 在线电影欧美成精品| 樱花草国产18久久久久| 波多野结衣91| 国产日产精品一区| 久久99精品久久久久婷婷| 欧美日韩在线播放一区| 亚洲精品免费看| 91在线观看免费视频| 国产精品免费视频观看| 成人综合婷婷国产精品久久蜜臀 | 4438x亚洲最大成人网| 亚洲最大的成人av| 91麻豆免费看片| 亚洲视频在线观看三级| www.爱久久.com| 亚洲欧洲美洲综合色网| 成人黄色在线看|