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

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

?? senddlg.cpp

?? IPmessage局域網(wǎng)信息
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
// 岞奐尞偺 import
	if (!pCryptImportKey(target_csp, data, len, 0, 0, &hExKey))
		return GetLastErrorMsg("CryptImportKey"), FALSE;

// 僙僢僔儑儞僉乕偺嶌惉
	if (capa & (IPMSG_BLOWFISH_128ALL)) {	// blow fish
		// blowfish 梡儔儞僟儉尞嶌惉
		if (!pCryptGenRandom(target_csp, len = 128/8, data))
			return	GetLastErrorMsg("CryptGenRandom"), FALSE;

		// blowfish 梡尞偺僙僢僩
		CBlowFish	bl;
		bl.Initialize(data, len, CBlowFish::CBC);

		//尞偺埫崋壔
		if (!pCryptEncrypt(hExKey, 0, TRUE, 0, data, (DWORD *)&len, MAX_BUF))
			return GetLastErrorMsg("CryptEncrypt"), FALSE;
		bin2hexstr_bigendian(data, len, (char *)skey);	// 尞傪hex暥帤楍偵

		// 儊僢僙乕僕埫崋壔
		if (capa & IPMSG_BLOWFISH_128)	// UNIX 宍幃偺夵峴偵曄姺
			MsgMng::LocalNewLineToUnix(msgstr, (char *)data, MAX_CRYPTLEN);
		else
			strncpyz((char *)data, msgstr, MAX_CRYPTLEN); // beta1-4 only
		msgLen = bl.Encode(data, data, strlen(msgstr)+1);
	}
	else {	// RC2
		if (!pCryptGenKey(target_csp, CALG_RC2, CRYPT_EXPORTABLE, &hKey))
			return	GetLastErrorMsg("CryptGenKey"), FALSE;

		if (capa & IPMSG_RC2_128) {		// 僉乕桳岠挿傪128bit偵
			DWORD	val = 128;
			if (!pCryptSetKeyParam(hKey, KP_EFFECTIVE_KEYLEN, (BYTE *)&val, 0))
				return	GetLastErrorMsg("CryptSetKeyParam"), FALSE;
		}
		pCryptExportKey(hKey, hExKey, SIMPLEBLOB, 0, NULL, (DWORD *)&len);
		if (!pCryptExportKey(hKey, hExKey, SIMPLEBLOB, 0, data, (DWORD *)&len))
			return GetLastErrorMsg("CryptExportKey"), FALSE;

		len -= SKEY_HEADER_SIZE;
		((host->hostStatus & IPMSG_ENCRYPTOPT) ? bin2hexstr_bigendian : bin2hexstr)(data + SKEY_HEADER_SIZE, len, (char *)skey);

		if (capa & (IPMSG_RC2_128|IPMSG_RC2_40))	// UNIX 宍幃偺夵峴偵曄姺
			MsgMng::LocalNewLineToUnix(msgstr, (char *)data, MAX_CRYPTLEN);
		else
			strncpyz((char *)data, msgstr, MAX_CRYPTLEN);	// beta1-4 only
		msgLen = strlen((char *)data) + 1;

	// 儊僢僙乕僕偺埫崋壔
		if (!pCryptEncrypt(hKey, 0, TRUE, 0, data, &msgLen, MAX_UDPBUF))
			return GetLastErrorMsg("CryptEncrypt RC2"), FALSE;
		pCryptDestroyKey(hKey);
	}
	wsprintf(buf, "%X:%s:", capa, skey);
	bin2hexstr(data, (int)msgLen, buf + strlen(buf));
	pCryptDestroyKey(hExKey);

	return TRUE;
}

/*
	捠忢憲怣Sub routine
*/
BOOL TSendDlg::SendMsgSub(void)
{
	BOOL	makeNomalMsg = TRUE;	// 旕埫崋僷働僢僩嶌惉

	for (int cnt=0; cnt < sendEntryNum; cnt++)
	{
		if (sendEntry[cnt].Status() == ST_GETCRYPT) {
			char	spec_str[MAX_BUF];
			int		spec = IPMSG_RSA_512|IPMSG_RC2_40;

			if (cfg->pubKey.Key())
				spec |= IPMSG_RSA_1024 | IPMSG_RC2_128 | IPMSG_BLOWFISH_128 /* | IPMSG_BLOWFISH_64 | IPMSG_BLOWFISH_256 */;
			wsprintf(spec_str, "%x", spec);
			msgMng->Send(&sendEntry[cnt].Host()->hostSub, IPMSG_GETPUBKEY, spec_str);
		}
		if (sendEntry[cnt].Status() == ST_MAKECRYPTMSG) {
			MakeEncryptPacket(sendEntry + cnt);		// ST_MAKECRYPTMSG -> ST_SENDMSG
		}
		if (sendEntry[cnt].Status() == ST_MAKEMSG) {
			sendEntry[cnt].SetStatus(ST_SENDMSG);
			if (makeNomalMsg)
				msgMng->MakeMsg(msgBuf, packetNo, command & ~IPMSG_ENCRYPTOPT, msg.msgBuf, shareStr, &packetLen), makeNomalMsg = FALSE;
		}
		if (sendEntry[cnt].Status() == ST_SENDMSG) {
			const char	*str = sendEntry[cnt].Msg() ? sendEntry[cnt].Msg() : msgBuf;
			int		len = sendEntry[cnt].Msg() ? sendEntry[cnt].MsgLen() : packetLen;

			msgMng->UdpSend(sendEntry[cnt].Host()->hostSub.addr, sendEntry[cnt].Host()->hostSub.portNo, str, len);
		}
	}

	return	TRUE;
}

inline char *strtoupper(char *buf, const char *org)
{
	BOOL dbcsFlg = FALSE;

	for (int cnt=0; buf[cnt] = org[cnt]; cnt++) {
		if (dbcsFlg)
			dbcsFlg = FALSE;
		else if (IsDBCSLeadByte(org[cnt]))
			dbcsFlg = TRUE;
		else
			buf[cnt] = toupper(org[cnt]);
	}
	return	buf;
}

/*
	専嶕
*/
BOOL TSendDlg::FindHost(char *findStr, BOOL isAllfind)
{
	int		startNo = hostListView.GetFocusIndex() + 1;
	char	find_buf[MAX_NAMEBUF], buf[MAX_NAMEBUF];

	if (*findStr == '\0')
		return	FALSE;

	strtoupper(find_buf, findStr);

	for (int cnt=0; cnt < memberCnt; cnt++) {
		int		index = (cnt + startNo) % memberCnt;
		if (*hostArray[index]->nickName)
			strtoupper(buf, hostArray[index]->nickName);
		else
			strtoupper(buf, hostArray[index]->hostSub.userName);

		if (strstr(buf, find_buf) || isAllfind &&
			(strstr(strtoupper(buf, hostArray[index]->groupName), find_buf)
			|| strstr(strtoupper(buf, hostArray[index]->hostSub.hostName), find_buf)
			|| strstr(strtoupper(buf, hostArray[index]->hostSub.userName), find_buf))) {
			SelectHost(&hostArray[index]->hostSub, TRUE);
			return	TRUE;
		}
	}
	return	FALSE;
}

/*
	憲怣廔椆捠抦
	packet_no偑丄偙偺 SendDialog偺憲偭偨憲怣packet偱偁傟偽丄TRUE
*/
BOOL TSendDlg::SendFinishNotify(HostSub *hostSub, ULONG packet_no)
{
	for (int cnt=0; cnt < sendEntryNum; cnt++)
	{
		if (sendEntry[cnt].Status() == ST_SENDMSG && sendEntry[cnt].Host()->hostSub.addr == hostSub->addr && sendEntry[cnt].Host()->hostSub.portNo == hostSub->portNo && (packet_no == packetNo || packet_no == 0))
		{
			sendEntry[cnt].SetStatus(ST_DONE);

			if (IsSendFinish() == TRUE && hWnd)		//嵞憲MessageBox傪徚偡
			{
				HWND	hMessageWnd = ::GetNextWindow(hWnd, GW_HWNDPREV);
				if (hMessageWnd && ::GetWindow(hMessageWnd, GW_OWNER) == hWnd)
					::PostMessage(hMessageWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
			}
			return	TRUE;
		}
	}
	return	FALSE;
}

/*
	憲怣廔椆捠抦
	packet_no偑丄偙偺 SendDialog偺憲偭偨憲怣packet偱偁傟偽丄TRUE
*/
BOOL TSendDlg::SendPubKeyNotify(HostSub *hostSub, BYTE *pubkey, int len, int e, int capa)
{
	for (int cnt=0; cnt < sendEntryNum; cnt++)
	{
		if (sendEntry[cnt].Status() == ST_GETCRYPT && sendEntry[cnt].Host()->hostSub.addr == hostSub->addr && sendEntry[cnt].Host()->hostSub.portNo == hostSub->portNo)
		{
			sendEntry[cnt].Host()->pubKey.Set(pubkey, len, e, capa);
			MakeEncryptPacket(sendEntry + cnt);
			msgMng->UdpSend(sendEntry[cnt].Host()->hostSub.addr, sendEntry[cnt].Host()->hostSub.portNo, sendEntry[cnt].Msg(), sendEntry[cnt].MsgLen());
			return	TRUE;
		}
	}
	return	FALSE;
}

/*
	憲怣(妋擣)拞偐偳偆偐
*/
BOOL TSendDlg::IsSending(void)
{
	return	timerID ? TRUE : FALSE;
}

/*
	憲怣廔椆偟偨偐偳偆偐
*/
BOOL TSendDlg::IsSendFinish(void)
{
	BOOL	finish = TRUE;

	for (int cnt=0; cnt < sendEntryNum; cnt++)
	{
		if (sendEntry[cnt].Status() != ST_DONE)
		{
			finish = FALSE;
			break;
		}
	}

	return	finish;
}

/*
	Font 愝掕
*/
void TSendDlg::SetFont(void)
{
	HFONT	hDlgFont;

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

	if (*cfg->SendEditFont.lfFaceName == 0)	//弶婜僨乕僞僙僢僩
		cfg->SendEditFont = orgFont;
	if (*cfg->SendListFont.lfFaceName == 0) {
		cfg->SendListFont = orgFont;
#ifdef JAPANESE
		strcpy(cfg->SendListFont.lfFaceName, PROPORTIONAL_FONT);
#endif
	}

	if (*cfg->SendListFont.lfFaceName && (hDlgFont = ::CreateFontIndirect(&cfg->SendListFont)) != NULL)
	{
		SendDlgItemMessage(HOST_LIST, WM_SETFONT, (WPARAM)hDlgFont, 0);
		if (hListFont)
			::DeleteObject(hListFont);
		hListFont = hDlgFont;
	}

	if (*cfg->SendEditFont.lfFaceName && (hDlgFont = ::CreateFontIndirect(&cfg->SendEditFont)) != NULL)
	{
		SendDlgItemMessage(SEND_EDIT, WM_SETFONT, (WPARAM)hDlgFont, 0);
		if (hEditFont)
			::DeleteObject(hEditFont);
		hEditFont = hDlgFont;
	}

	static HIMAGELIST	himlState;
	static int			lfHeight;
	static HICON		hiconItem[MAX_ICON];

	if (himlState == NULL || lfHeight != cfg->SendListFont.lfHeight) {
		if (hiconItem[0] == NULL) {
			hiconItem[0] = ::LoadIcon(TApp::hI, (LPCSTR)IPMSGV1ABS_ICON);
			hiconItem[1] = ::LoadIcon(TApp::hI, (LPCSTR)IPMSGV1_ICON);
			hiconItem[2] = ::LoadIcon(TApp::hI, (LPCSTR)FILEABS_ICON);
			hiconItem[3] = ::LoadIcon(TApp::hI, (LPCSTR)FILE_ICON);
			hiconItem[4] = ::LoadIcon(TApp::hI, (LPCSTR)ABSENCE_ICON);
		}
		if (himlState)
			ImageList_Destroy(himlState);
		lfHeight = cfg->SendListFont.lfHeight;
		himlState = ImageList_Create(abs(cfg->SendListFont.lfHeight) / 4, abs(cfg->SendListFont.lfHeight), TRUE, 1, 1);
		for (int cnt=0; cnt < MAX_ICON; cnt++)
			ImageList_AddIcon(himlState, hiconItem[cnt]);
	}
	SendDlgItemMessage(HOST_LIST, LVM_SETIMAGELIST, LVSIL_STATE, (LPARAM)himlState);
	if (SendDlgItemMessage(HOST_LIST, LVM_GETIMAGELIST, LVSIL_STATE, 0))
		lvStateEnable = TRUE;
	else {
		SendDlgItemMessage(HOST_LIST, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)himlState);
		lvStateEnable = FALSE;
	}
}

/*
	Size 愝掕
*/
void TSendDlg::SetSize(void)
{
	WINDOWPLACEMENT wp;
	wp.length = sizeof(wp);

	::GetWindowPlacement(GetDlgItem(HOST_LIST), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[host_item]);

	::GetWindowPlacement(GetDlgItem(MEMBERCNT_TEXT), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[member_item]);

	::GetWindowPlacement(GetDlgItem(REFRESH_BUTTON), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[refresh_item]);

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

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

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

	::GetWindowPlacement(GetDlgItem(SECRET_CHECK), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[secret_item]);

	::GetWindowPlacement(GetDlgItem(PASSWORD_CHECK), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[passwd_item]);

	::GetWindowPlacement(GetDlgItem(SEPARATE_STATIC), &wp);
	RectToWinPos(&wp.rcNormalPosition, &item[separate_item]);

	GetWindowRect(&rect);
	orgRect = rect;

	int	cx = ::GetSystemMetrics(SM_CXFULLSCREEN), cy = ::GetSystemMetrics(SM_CYFULLSCREEN);
	int	xsize = rect.right - rect.left + cfg->SendXdiff, ysize = rect.bottom - rect.top + cfg->SendYdiff;
	int	x = cfg->SendXpos, y = cfg->SendYpos;

	if (cfg->SendSavePos == 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;

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

void TSendDlg::PopupContextMenu(void)
{
	HMENU	hMenu = ::CreatePopupMenu();
	HMENU	hPriorityMenu = ::CreateMenu();
	HMENU	hGroupMenu = ::CreateMenu();
	DWORD	pos = ::GetMessagePos();
	int		cnt;
	char	buf[MAX_BUF];
	int		selectNum = (int)SendDlgItemMessage(HOST_LIST, LVM_GETSELECTEDCOUNT, 0, 0);
//	char	*appendStr = selectNum > 0 ? MOVETO_MSGSTR : SELECT_MSGSTR;
	char	*appendStr = selectNum > 0 ? MOVETO_MSGSTR : MOVETO_MSGSTR;
	u_int	flag = selectNum <= 0 ? MF_GRAYED : 0;

	if (hMenu == NULL || hPriorityMenu == NULL || hGroupMenu == NULL)
		return;

// priority menu
	for (cnt=cfg->PriorityMax; cnt >= 0; cnt--)
	{
		char	*ptr = buf;
#ifndef JAPANESE
		ptr += wsprintf(ptr, "%s ", appendStr);
#endif
		if (cnt == 0)
			ptr += wsprintf(ptr, NODISP_MSGSTR);
		else if (cnt == 1)
			ptr += wsprintf(ptr, DEFAULTDISP_MSGSTR);
		else
			ptr += wsprintf(ptr, DISPPRIORITY_MSGSTR, cfg->PriorityMax - cnt + 1);
#ifdef JAPANESE
		ptr += wsprintf(ptr, " %s ", appendStr);
#endif
		wsprintf(ptr, cnt == 1 ? MEMBERCOUNTDEF_MSGSTR : MEMBERCOUNT_MSGSTR, hosts->PriorityHostCnt(cnt * PRIORITY_OFFSET, PRIORITY_OFFSET), cfg->priorityHosts.PriorityHostCnt(cnt * PRIORITY_OFFSET, PRIORITY_OFFSET));
		::AppendMenu(hPriorityMenu, MF_STRING|flag, MENU_PRIORITY_START + cnt * PRIORITY_OFFSET, buf);
	}

	::AppendMenu(hPriorityMenu, MF_SEPARATOR, 0, 0);
	::AppendMenu(hPriorityMenu, MF_STRING|(hiddenDisp ? MF_CHECKED : 0), MENU_PRIORITY_HIDDEN, TMPNODISPDISP_MSGSTR);
	::AppendMenu(hPriorityMenu, MF_STRING, MENU_PRIORITY_RESET, RESETPRIORITY_MSGSTR);
	::AppendMenu(hMenu, MF_POPUP, (UINT)hPriorityMenu, SORTFILTER_MSGSTR);
//	::AppendMenu(hMenu, MF_SEPARATOR, 0, 0);

// group select
	int	rowMax = ::GetSystemMetrics(SM_CYSCREEN) / ::GetSystemMetrics(SM_CYMENU) -1;

	for (cnt=0; cnt < memberCnt; cnt++)
	{
		int		menuMax = ::GetMenuItemCount(hGroupMenu), cnt2;

		for (cnt2=0; cnt2 < menuMax; cnt2++)
		{
			::GetMenuString(hGroupMenu, cnt2, buf, sizeof(buf), MF_BYPOSITION);
			if (strcmp(buf, hostArray[cnt]->groupName) == 0)
				break;
		}
		if (cnt2 == menuMax && *hostArray[cnt]->groupName)
			::AppendMenu(hGroupMenu, MF_STRING|((menuMax % rowMax || menuMax == 0) ? 0 : MF_MENUBREAK), MENU_GROUP_START + menuMax, hostArray[cnt]->groupName);
	}
	::AppendMenu(hMenu, MF_POPUP|(::GetMenuItemCount(hGroupMenu) ? 0 : MF_GRAYED), (UINT)hGroupMenu, GROUPSELECT_MSGSTR);
//	::AppendMenu(hMenu, MF_SEPARATOR, 0, 0);

	SetMainMenu(hMenu);
	::TrackPopupMenu(hMenu, TPM_RIGHTBUTTON, LOWORD(pos), HIWORD(pos), 0, hWnd, NULL);
	::DestroyMenu(hMenu);
}

void TSendDlg::SetMainMenu(HMENU hMenu)
{
	::AppendMenu(hMenu, MF_STRING, MENU_FINDDLG, FINDDLG_MSGSTR);
	::AppendMenu(hMenu, MF_STRING, MENU_FILEADD, FILEATTACHMENU_MSGSTR);
	::AppendMenu(hMenu, MF_STRING, MENU_FOLDERADD, FOLDERATTACHMENU_MSGSTR);
	::AppendMenu(hMenu, MF_SEPARATOR, 0, 0);
	::AppendMenu(hMenu, MF_STRING, MENU_SAVECOLUMN, SAVECOLUMN_MSGSTR);

	::AppendMenu(hMenu, MF_POPUP, (UINT)::LoadMenu(TApp::hI, (LPCSTR)SENDFONT_MENU), FONTSET_MSGSTR);
	::AppendMenu(hMenu, MF_POPUP, (UINT)::LoadMenu(TApp::hI, (LPCSTR)SIZE_MENU), SIZESET_MSGSTR);
	::AppendMenu(hMenu, MF_STRING, MENU_SAVEPOS, SAVEPOS_MSGSTR);
	::AppendMenu(hMenu, MF_STRING, MENU_MEMBERDISP, MEMBERDISP_MSGSTR);
}

BOOL SetFileButton(TDlg *dlg, int buttonID, ShareInfo *info)
{
	char	buf[MAX_BUF] = "", fname[MAX_PATH];
	int		offset = 0;
	for (int cnt=0; cnt < info->fileCnt; cnt++)
	{
		if (dlg->ResId() == SEND_DIALOG)
			ForcePathToFname(info->fileInfo[cnt]->Fname(), fname);
		else
			strncpyz(fname, info->fileInfo[cnt]->Fname(), MAX_PATH);
		offset += wsprintf(buf + offset, "%s ", fname);
		if (offset + MAX_PATH >= sizeof(buf))
			break;
	}
	dlg->SetDlgItemText(buttonID, buf);
	::ShowWindow(dlg->GetDlgItem(buttonID), info->fileCnt ? SW_SHOW : SW_HIDE);
	::EnableWindow(dlg->GetDlgItem(buttonID), info->fileCnt ? TRUE : FALSE);
	return	TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲裸体xxx| 国产日韩精品一区| 日本视频中文字幕一区二区三区| 欧美日韩的一区二区| 亚洲成人免费视频| 欧美岛国在线观看| 欧美久久久久久久久中文字幕| 偷拍日韩校园综合在线| 日韩欧美亚洲一区二区| 国产一区亚洲一区| 中文字幕在线不卡| 在线观看国产精品网站| 捆绑调教一区二区三区| 久久久久九九视频| 在线中文字幕一区| 日本欧美一区二区| 国产精品免费丝袜| 欧美私人免费视频| 国产精品白丝jk黑袜喷水| 国产精品女上位| 欧美精品久久天天躁| 国产一区二区精品久久99| 成人欧美一区二区三区小说 | 首页国产丝袜综合| 久久婷婷国产综合国色天香| 99久久精品免费看| 奇米影视一区二区三区| 中文av一区特黄| 欧美精品久久99久久在免费线| 国产一区二区在线观看视频| 一区二区三区四区五区视频在线观看 | 国产精品女人毛片| 欧美熟乱第一页| 国产成人综合精品三级| 亚洲亚洲精品在线观看| 欧美精品一区二区三区蜜臀| 欧美探花视频资源| 成人av一区二区三区| 免费在线一区观看| 亚洲欧洲日韩在线| 久久综合网色—综合色88| 日本韩国精品在线| 丁香一区二区三区| 久久不见久久见中文字幕免费| 亚洲欧洲美洲综合色网| 精品国产一区二区三区av性色| 欧美少妇一区二区| 91麻豆国产精品久久| 国产精品一区2区| 蜜臀av国产精品久久久久| 一区二区三区在线观看视频 | 欧美系列亚洲系列| 波多野结衣精品在线| 久久激情五月婷婷| 亚洲va欧美va天堂v国产综合| 亚洲色图视频网| 久久久影视传媒| 欧美mv日韩mv国产| 91麻豆精品国产自产在线| 一本色道久久综合亚洲91| 风流少妇一区二区| 韩国理伦片一区二区三区在线播放| 亚洲第一电影网| 亚洲国产精品尤物yw在线观看| 亚洲婷婷在线视频| 国产精品免费丝袜| 国产精品蜜臀在线观看| 国产色婷婷亚洲99精品小说| 久久久99精品久久| 久久久久亚洲蜜桃| 久久综合色综合88| xnxx国产精品| www国产精品av| 久久久亚洲午夜电影| 欧美精品一区二区高清在线观看| 日韩欧美国产综合| 2023国产一二三区日本精品2022| 日韩精品一区二区三区视频播放 | 风间由美一区二区av101| 国产永久精品大片wwwapp| 极品少妇xxxx精品少妇偷拍| 国产在线精品一区二区夜色| 国产美女精品人人做人人爽| 国产不卡一区视频| 97久久超碰国产精品电影| 91网上在线视频| 在线观看成人免费视频| 欧美日韩成人一区二区| 91精品国产色综合久久| www国产精品av| 国产精品久久毛片av大全日韩| 亚洲视频 欧洲视频| 亚洲一区二区成人在线观看| 石原莉奈在线亚洲三区| 美女网站视频久久| 高清视频一区二区| 色综合久久久久久久久久久| 欧美日韩和欧美的一区二区| 欧美一区二区成人6969| 国产视频一区二区在线观看| 亚洲欧洲综合另类| 天天av天天翘天天综合网色鬼国产| 蜜乳av一区二区| 成人教育av在线| 欧美视频在线一区| 久久综合久久99| 亚洲免费观看高清| 麻豆一区二区三| 91丝袜呻吟高潮美腿白嫩在线观看| 日本道色综合久久| 日韩精品一区二区三区视频播放 | 洋洋成人永久网站入口| 手机精品视频在线观看| 精品亚洲国产成人av制服丝袜| 国产成人在线电影| 欧美性极品少妇| 久久精品亚洲一区二区三区浴池| 亚洲日本一区二区| 久久精品国产免费| 色综合天天综合给合国产| 日韩免费观看2025年上映的电影 | www..com久久爱| 欧美群妇大交群中文字幕| 国产亚洲精品超碰| 午夜精品123| av一区二区三区| 精品国产区一区| 一区二区三区蜜桃| 国产91精品久久久久久久网曝门| 欧美日韩在线观看一区二区 | 精品国产人成亚洲区| 一区二区欧美精品| 国产一区二区在线视频| 欧美精品日韩精品| 亚洲视频一二区| 国产精品99久久久久久有的能看 | 在线日韩一区二区| 国产欧美一区二区三区鸳鸯浴| 亚洲r级在线视频| 色综合视频在线观看| 国产亚洲欧美一级| 久久国产乱子精品免费女| 欧美美女一区二区| 亚洲免费毛片网站| 99久久婷婷国产综合精品| 亚洲精品一区二区精华| 首页欧美精品中文字幕| 精品视频一区 二区 三区| 亚洲日本一区二区三区| 不卡免费追剧大全电视剧网站| 精品国产91乱码一区二区三区| 亚洲成av人片在线| 欧美日韩中文字幕精品| 亚洲一区二区三区免费视频| 91蝌蚪porny| 亚洲欧美区自拍先锋| 99精品视频一区二区三区| 中文字幕欧美激情| 成人综合婷婷国产精品久久蜜臀 | 国产亚洲精品福利| 国产综合成人久久大片91| 日韩一区二区三区视频| 日产国产欧美视频一区精品| 欧美日韩精品一区二区三区蜜桃| 亚洲福中文字幕伊人影院| 在线观看日韩毛片| 亚洲高清不卡在线| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲一区在线电影| 欧美色男人天堂| 一区二区在线观看免费| 91女人视频在线观看| 伊人夜夜躁av伊人久久| 欧美三级日韩三级| 日韩黄色小视频| 欧美一卡二卡三卡四卡| 精品在线一区二区三区| 久久综合色天天久久综合图片| 国产99精品国产| 亚洲欧美综合在线精品| 91久久国产综合久久| 偷拍亚洲欧洲综合| 精品999久久久| 成人免费av网站| 亚洲一区日韩精品中文字幕| 91精品在线一区二区| 国产一区在线观看视频| 中文字幕在线一区| 欧美亚洲国产一区二区三区va | 日韩欧美高清在线| 国产乱码精品一区二区三| 中文字幕欧美一| 欧美色欧美亚洲另类二区| 久久精品国产成人一区二区三区| 久久午夜国产精品| 色婷婷亚洲婷婷| 日本欧美在线观看| 国产免费成人在线视频| 欧美图片一区二区三区| 国产美女在线精品|