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

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

?? senddlg.cpp

?? 飛鴿傳書的代碼 是在LINUX平臺上的 好DD哦
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
		capa = IPMSG_RSA_512 | IPMSG_RC2_40;
	else
		return	FALSE;

// KeyBlob 嶌惉
	host->pubKey.KeyBlob(data, sizeof(data), &len);

// 岞奐尞偺 import
	if (!pCryptImportKey(target_csp, data, len, 0, 0, &hExKey))
		return GetLastErrorMsg("CryptImportKey"), FALSE;

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

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

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

		// UNIX 宍幃偺夵峴偵曄姺
		MsgMng::LocalNewLineToUnix(msgstr, (char *)data, MAX_CRYPTLEN);

		// 儊僢僙乕僕埫崋壔
		msgLen = bl.Encrypt(data, data, strlen(msgstr)+1);
	}
	else {	// RC2
		if (!pCryptGenKey(target_csp, CALG_RC2, CRYPT_EXPORTABLE, &hKey))
			return	GetLastErrorMsg("CryptGenKey"), 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;
		bin2hexstr_bigendian(data + SKEY_HEADER_SIZE, len, (char *)skey);

		// UNIX 宍幃偺夵峴偵曄姺
		if (capa & IPMSG_RC2_40)
			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_BLOWFISH_128;
			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() && 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(POINTS pos)
{
	HMENU	hMenu = ::CreatePopupMenu();
	HMENU	hPriorityMenu = ::CreateMenu();
	HMENU	hGroupMenu = ::CreateMenu();
	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, pos.x, pos.y, 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一区二区三区免费野_久草精品视频
欧美日韩一区二区三区不卡| eeuss鲁片一区二区三区| 精品亚洲国内自在自线福利| 久久综合色之久久综合| 欧美理论在线播放| 色94色欧美sute亚洲线路一久 | 丝袜美腿一区二区三区| 亚洲丝袜自拍清纯另类| 国产女人水真多18毛片18精品视频| 日韩欧美在线123| 99精品视频一区| 欧美亚洲愉拍一区二区| 555www色欧美视频| 亚洲三级电影全部在线观看高清| 日韩一卡二卡三卡| 91亚洲国产成人精品一区二三| 国产另类ts人妖一区二区| 99视频精品在线| 欧美另类久久久品| 91浏览器在线视频| 911精品产国品一二三产区| 欧美一区二区二区| 国产午夜精品一区二区三区视频| 国产精品热久久久久夜色精品三区 | 美女一区二区久久| 国产精品 欧美精品| 91美女在线看| 欧美日韩国产在线观看| 久久久美女毛片| 日韩理论片一区二区| 日本视频一区二区三区| 国产成人av影院| 一本一道久久a久久精品综合蜜臀| 成人午夜免费视频| 在线观看亚洲成人| 精品国产污网站| 精品日韩一区二区| 亚洲免费毛片网站| 日本aⅴ亚洲精品中文乱码| 粉嫩嫩av羞羞动漫久久久| 色天天综合色天天久久| 91激情五月电影| 久久久久高清精品| 亚洲成人一区二区| 成人精品视频网站| 欧美人牲a欧美精品| 综合久久久久久| 国产精品一区二区三区四区| 欧美日韩www| 欧美成人一级视频| 亚洲妇熟xx妇色黄| 91小视频免费观看| 国产亚洲一区二区三区四区| 午夜私人影院久久久久| 97久久精品人人爽人人爽蜜臀| ww久久中文字幕| 免费xxxx性欧美18vr| 欧美亚洲国产一区二区三区va| 欧美国产一区视频在线观看| 老司机免费视频一区二区| 欧美日韩一级二级| 一区二区国产视频| 色菇凉天天综合网| 一区二区三区在线视频免费| 成人a区在线观看| 国产视频一区在线观看| 精品一区二区综合| 精品久久久久一区| 久色婷婷小香蕉久久| 日韩一区二区三区视频在线观看 | 欧美高清视频在线高清观看mv色露露十八| 国产色产综合产在线视频| 国产精品一色哟哟哟| 久久人人爽人人爽| 国产伦精品一区二区三区在线观看| 91精品福利在线一区二区三区 | 欧美一区二区三区在| 天堂一区二区在线| 69堂成人精品免费视频| 亚洲成人综合在线| 欧美日韩精品福利| 亚洲成人激情综合网| 欧美老人xxxx18| 午夜视频在线观看一区二区| 欧美一区二区三区爱爱| 日本不卡不码高清免费观看| 91精品国产乱码久久蜜臀| 免费在线成人网| 久久精品视频网| 99久久精品国产一区二区三区| 一区二区三区在线视频免费| 欧美丰满美乳xxx高潮www| 免费观看日韩电影| 亚洲国产精品黑人久久久| 91原创在线视频| 午夜精品一区二区三区电影天堂| 欧美精品久久99| 成人在线综合网站| 亚洲一区二区3| 精品久久久久久综合日本欧美| 国产传媒日韩欧美成人| 一区二区久久久久| 精品国产精品网麻豆系列| 成人精品在线视频观看| 亚洲福利视频三区| 久久精品人人做人人爽97| 在线欧美日韩精品| 国产一区二区不卡在线| 亚洲综合网站在线观看| 日韩免费高清视频| 色综合视频在线观看| 美女视频一区二区三区| 国产精品高潮久久久久无| 制服丝袜日韩国产| 97精品久久久久中文字幕| 日韩成人av影视| 亚洲欧美日韩国产另类专区| 欧美一区二区三区免费在线看| 成人免费视频播放| 九九在线精品视频| 亚洲亚洲精品在线观看| 中文字幕免费不卡| 精品国产一区久久| 欧美日本国产视频| 91一区二区三区在线观看| 国产在线乱码一区二区三区| 亚洲高清久久久| 亚洲丝袜自拍清纯另类| 久久精品视频一区二区三区| 日韩三级电影网址| 欧美人妇做爰xxxⅹ性高电影| 处破女av一区二区| 老鸭窝一区二区久久精品| 亚洲国产精品久久人人爱| 亚洲欧美日韩中文播放 | 91麻豆精品久久久久蜜臀| 91美女片黄在线观看91美女| 国产在线精品国自产拍免费| 日本vs亚洲vs韩国一区三区二区 | 91蜜桃网址入口| av电影在线观看一区| 国产成人在线观看| 国产最新精品精品你懂的| 日韩精品乱码免费| 亚洲va天堂va国产va久| 亚洲一区二区三区四区五区黄| 国产精品久久精品日日| 中文一区二区在线观看| 欧美国产欧美综合| 久久久久亚洲综合| 精品国产不卡一区二区三区| 日韩欧美在线影院| 欧美成人一区二区三区片免费| 欧美日本国产视频| 精品视频在线视频| 欧美另类高清zo欧美| 欧美日韩国产一级二级| 欧美精选午夜久久久乱码6080| 欧美日韩免费观看一区二区三区| 91福利在线播放| 7777精品伊人久久久大香线蕉最新版| 制服丝袜日韩国产| 精品国产91乱码一区二区三区| 久久综合色播五月| 国产精品美女久久久久久| 亚洲日本免费电影| 性做久久久久久免费观看| 日本欧美一区二区在线观看| 另类小说视频一区二区| 国产激情一区二区三区四区 | 久久精品夜夜夜夜久久| 成人免费小视频| 亚洲一区二区在线免费看| 日韩av中文字幕一区二区| 国产精品一二三区在线| 99精品欧美一区| 欧美一区午夜精品| 国产精品三级久久久久三级| 一区二区三区中文字幕电影 | 555www色欧美视频| 国产亚洲精品久| 亚洲欧美另类小说| 久久国产精品色| av成人免费在线| 日韩三级.com| 亚洲欧洲日产国码二区| 日韩福利电影在线| 成人晚上爱看视频| 欧美丰满嫩嫩电影| 中文字幕不卡一区| 天天综合天天做天天综合| 成人久久18免费网站麻豆| 欧美体内she精视频| 久久综合一区二区| 夜夜亚洲天天久久| 亚洲三级在线免费观看| 一区二区免费看| 国产乱色国产精品免费视频| 成人黄色小视频在线观看| 91精品免费在线观看|