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

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

?? share.cpp

?? 飛鴿傳書的代碼 是在LINUX平臺上的 好DD哦
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	memset(&lvC, 0, sizeof(lvC));
	lvC.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;

	char	*title[] = { "No", "Files", "Size", "All/done/trans", "Users", NULL };
	int	size[] = { 30, 110, 70, 100, 100 };
	int	fmt[] = { LVCFMT_RIGHT, LVCFMT_LEFT, LVCFMT_RIGHT, LVCFMT_RIGHT, LVCFMT_LEFT };
	for (lvC.iSubItem = 0; title[lvC.iSubItem]; lvC.iSubItem++)
	{
		lvC.pszText = title[lvC.iSubItem];
		lvC.fmt = fmt[lvC.iSubItem];
		lvC.cx = size[lvC.iSubItem];
		SendDlgItemMessage(SHARE_LIST, LVM_INSERTCOLUMN, lvC.iSubItem, (LPARAM)&lvC);
	}

 	shareListView.CreateByWnd(GetDlgItem(SHARE_LIST));
	SetAllList();

	SendDlgItemMessage(MODIFY_CHECK, BM_SETCHECK, (cfg->fileTransOpt & FT_STRICTDATE) ? TRUE : FALSE, 0);

	if (rect.left == CW_USEDEFAULT)
	{
		GetWindowRect(&rect);
		int xsize = rect.right - rect.left, ysize = rect.bottom - rect.top;
		int	cx = ::GetSystemMetrics(SM_CXFULLSCREEN), cy = ::GetSystemMetrics(SM_CYFULLSCREEN);
		int	x = (cx - xsize)/2;
		int y = (cy - ysize)/2;
		MoveWindow((x < 0) ? 0 : x % (cx - xsize), (y < 0) ? 0 : y % (cy - ysize), xsize, ysize, FALSE);
	}
	else
		MoveWindow(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, FALSE);
	Show();
	::SetFocus(shareListView.hWnd);

	return	TRUE;
}

BOOL TShareStatDlg::Refresh(void)
{
	if (hWnd == NULL)
		return	FALSE;
	SetAllList();
	return	TRUE;
}

BOOL TShareStatDlg::SetAllList(void)
{
	SendDlgItemMessage(SHARE_LIST, LVM_DELETEALLITEMS, 0, 0);

	LV_ITEM	lvi;
	memset(&lvi, 0, sizeof(lvi));
	int	cnt = 0;

	for (ShareInfo *info=shareMng->Top(); info; info=shareMng->Next(info))
	{
		if (info->hostCnt == 0)
			continue;
		lvi.iItem = cnt++;
		lvi.mask = LVIF_TEXT|LVIF_PARAM;
		lvi.pszText = LPSTR_TEXTCALLBACK;
		lvi.lParam = (LPARAM)info->packetNo;
		SendDlgItemMessage(SHARE_LIST, LVM_INSERTITEM, 0, (LPARAM)&lvi);
	}
	return	TRUE;
}

BOOL TShareStatDlg::DelList(int cnt)
{
	LV_ITEM	lvi;
	memset(&lvi, 0, sizeof(lvi));
	lvi.iItem = cnt;
	lvi.mask = LVIF_PARAM;
	SendDlgItemMessage(SHARE_LIST, LVM_GETITEM, 0, (LPARAM)&lvi);
	SendDlgItemMessage(SHARE_LIST, LVM_DELETEITEM, cnt, 0);
	ShareInfo *info = shareMng->Search(lvi.lParam);

	if (info == NULL)
		return	FALSE;

	for (cnt=info->fileCnt * info->hostCnt -1; cnt >= 0; cnt--)
		if (info->transStat[cnt] == ShareMng::TRANS_BUSY)
			return	FALSE;

	shareMng->DestroyShare(info);

	return	TRUE;
}

BOOL TShareStatDlg::EvNotify(UINT ctlID, NMHDR *pNmHdr)
{
	if (pNmHdr->code == LVN_GETDISPINFO)
	{
		LV_DISPINFO	*dispInfo = (LV_DISPINFO *)pNmHdr;
		ShareInfo		*info = shareMng->Search(dispInfo->item.lParam);
		ShareCntInfo	cntInfo;
		char			buf[MAX_BUF] = "";
		int				len = 0, cnt;
		dispInfo->item.pszText = lvBuf;

		switch (dispInfo->item.iSubItem) {
		case 0: wsprintf(lvBuf, "%d", dispInfo->item.iItem); break;
		case 1:
			for (cnt=0; cnt < info->fileCnt && len < sizeof(lvBuf); cnt++)
			{
				ForcePathToFname(info->fileInfo[cnt]->Fname(), lvBuf);
				len += wsprintf(buf + len, "%s ", lvBuf);
			}
			strncpyz(lvBuf, buf, sizeof(lvBuf));
			break;
		case 2:
			shareMng->GetShareCntInfo(&cntInfo, info);
			MakeSizeString(lvBuf, cntInfo.totalSize, MSS_SPACE);
			if (cntInfo.dirCnt)
				wsprintf(lvBuf + strlen(lvBuf), "/%dDIR", cntInfo.dirCnt);
			break;
		case 3:
			shareMng->GetShareCntInfo(&cntInfo, info);
			wsprintf(lvBuf, "%d / %d/ %d", cntInfo.fileCnt, cntInfo.doneCnt, cntInfo.transferCnt);
			break;
		case 4:
			for (cnt=0; cnt < info->hostCnt && len < sizeof(lvBuf); cnt++)
				len += wsprintf(buf + len, "%.14s(%.10s) ", *info->host[cnt]->nickName ? info->host[cnt]->nickName : info->host[cnt]->hostSub.userName, info->host[cnt]->hostSub.hostName);
			strncpyz(lvBuf, buf, sizeof(lvBuf));
			break;
		default: return	FALSE;
		}
		return	TRUE;
	}

	return	FALSE;
}

BOOL TShareStatDlg::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hWndCtl)
{
	switch (wID)
	{
	case IDOK:		EndDialog(TRUE); break;
	case IDCANCEL:	EndDialog(FALSE); break;
	case DEL_BUTTON:
		{
			for (int cnt=SendDlgItemMessage(SHARE_LIST, LVM_GETITEMCOUNT, 0, 0)-1; cnt >= 0; cnt--)
			{
				if ((SendDlgItemMessage(SHARE_LIST, LVM_GETITEMSTATE, cnt, LVIS_SELECTED) & LVIS_SELECTED) == 0)
					continue;
				DelList(cnt);
			}
			SetAllList();
		}
		break;
	case MODIFY_CHECK:
		cfg->fileTransOpt = SendDlgItemMessage(MODIFY_CHECK, BM_GETCHECK, 0, 0) ? FT_STRICTDATE : 0;
		cfg->WriteRegistry(CFG_GENERAL);
		break;
	default: break;
	}
	return	TRUE;
}

#define PRIOR_BUTTON	2000
#define NEXT_BUTTON		2001
#define LUMP_CHECK		2002
#define RESULT_STATIC	2003

TSaveCommonDlg::TSaveCommonDlg(ShareInfo *_shareInfo, Cfg *_cfg, TWin *_parentWin) : TDlg((UINT)0, _parentWin)
{
	parentWin = _parentWin;
	shareInfo = _shareInfo;
	cfg = _cfg;
	offset = 0;

	for (int cnt=0; cnt < shareInfo->fileCnt; cnt++)
		shareInfo->fileInfo[cnt]->SetSelected(FALSE);
}

int TSaveCommonDlg::Exec(void)
{
	modalFlg = TRUE;

	char	fname[MAX_BUF];
	FileInfo *fileInfo = shareInfo->fileInfo[offset];

	// 嵟廔曐懚僨傿儗僋僩儕偑柍偔側偭偰偄傞応崌丄彮偟偝偐偺傏傞
	for (int cnt=0; cnt < 5; cnt++)
		if (*cfg->lastSaveDir && GetFileAttributes(cfg->lastSaveDir) == 0xffffffff)
			if (PathToDir(cfg->lastSaveDir, cfg->lastSaveDir) == FALSE)
				break;

	if (*cfg->lastSaveDir && strstr(fileInfo->Fname(), ":\\") == NULL) {
		MakePath(fname, cfg->lastSaveDir, fileInfo->Fname());
		fname[MAX_PATH -1] = 0;
	}
	else strncpyz(fname, fileInfo->Fname(), MAX_PATH);

	while (1)
	{
	// 僼傽僀儖僟僀傾儘僌
		TApp::AddWin(this);
		BOOL	ret = OpenFileDlg(parentWin, OpenFileDlg::NODEREF_SAVE, (LPOFNHOOKPROC)TApp::WinProc).Exec(fname, SAVEFILE_MSGSTR, OPENFILEALL_MSGSTR, cfg->lastSaveDir);
		TApp::DelWin(this);
		hWnd = NULL;

		if (ret == FALSE)
			return	FALSE;
		fileInfo = shareInfo->fileInfo[offset];

		PathToDir(fname, cfg->lastSaveDir);
		ForcePathToFname(fname, fname);
		fileInfo->SetFname(fname);
		fileInfo->SetSelected(TRUE);

	// 忋彂偒妋擣
		for (int cnt=0; cnt < shareInfo->fileCnt; cnt++)
		{
			if (shareInfo->fileInfo[cnt]->IsSelected() == FALSE)
				continue;
			MakePath(fname, cfg->lastSaveDir, shareInfo->fileInfo[cnt]->Fname());
			if (::GetFileAttributes(fname) != 0xffffffff)
			{
				if ((ret = parentWin->MessageBox(OVERWRITE_MSGSTR, ATTENTION_MSGSTR, MB_OKCANCEL|MB_ICONEXCLAMATION) == IDOK) == FALSE)
					for (int cnt2=0; cnt2 < shareInfo->fileCnt; cnt2++)
						shareInfo->fileInfo[cnt2]->SetSelected(FALSE);
				break;
			}
		}
		if (ret)
			return	cfg->WriteRegistry(CFG_GENERAL), TRUE;
	}
	// not reach
}

BOOL TSaveCommonDlg::EvCreate(LPARAM lParam)
{
	RECT	ok_rect = { 0, 0, 50, 20 }, cl_rect;
	HWND	pWnd = ::GetParent(hWnd);

	::ShowWindow(::GetDlgItem(pWnd, 0x441), SW_HIDE);
	::ShowWindow(::GetDlgItem(pWnd, 0x470), SW_HIDE);

//	if (shareInfo->fileCnt == 1)
//		return	TRUE;

	if (::GetWindowRect(::GetDlgItem(pWnd, IDOK), &ok_rect) == FALSE)
		return	TRUE;

	int	ok_xsize = ok_rect.right - ok_rect.left;
	int	ok_ysize = ok_rect.bottom - ok_rect.top;

// 儃僞儞崅偝偺2攞暘峀偘傞
	SetWindowLong(GWL_STYLE, GetWindowLong(GWL_STYLE)|WS_CLIPSIBLINGS);
	::GetClientRect(pWnd, &cl_rect);
	GetWindowRect(&rect);
	MoveWindow(0, 0, cl_rect.right, (rect.bottom - rect.top) + ok_ysize * 5 / 2, FALSE);
	GetWindowRect(&rect);

	int		cx = 20, cy = ok_ysize;

	::CreateWindow(STATIC_CLASS, "", WS_CHILD|WS_VISIBLE|SS_LEFT, cx, 0, rect.right, ok_ysize, hWnd, (HMENU)RESULT_STATIC, TApp::hI, NULL);

	DWORD	flg = (shareInfo->fileCnt == 1 ? WS_DISABLED : 0)|WS_CHILD|WS_VISIBLE;
	::CreateWindow(BUTTON_CLASS, PREVBUTTON_MSGSTR, flg | BS_PUSHBUTTON, cx, cy, ok_xsize, ok_ysize, hWnd, (HMENU)PRIOR_BUTTON, TApp::hI, NULL);
	::CreateWindow(BUTTON_CLASS, NEXTBUTTON_MSGSTR, flg | BS_PUSHBUTTON, cx+=ok_xsize+20, cy, ok_xsize, ok_ysize, hWnd, (HMENU)NEXT_BUTTON, TApp::hI, NULL);

	::CreateWindow(BUTTON_CLASS, "", WS_CHILD|WS_VISIBLE|BS_CHECKBOX, cx+=ok_xsize+20, cy, ok_xsize * 2, ok_ysize, hWnd, (HMENU)LUMP_CHECK, TApp::hI, NULL);

	HFONT	hDlgFont = (HFONT)::SendDlgItemMessage(pWnd, IDOK, WM_GETFONT, 0, 0L);
	if (hDlgFont)
	{
		SendDlgItemMessage(RESULT_STATIC, WM_SETFONT, (UINT)hDlgFont, 0L);
		SendDlgItemMessage(PRIOR_BUTTON, WM_SETFONT, (UINT)hDlgFont, 0L);
		SendDlgItemMessage(NEXT_BUTTON, WM_SETFONT, (UINT)hDlgFont, 0L);
		SendDlgItemMessage(LUMP_CHECK, WM_SETFONT, (UINT)hDlgFont, 0L);
	}
	SetInfo();

	return	TRUE;
}

BOOL TSaveCommonDlg::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl)
{
	switch (wID) {
	case PRIOR_BUTTON:
		if (offset > 0)
			offset--;
		SetInfo();
		return	TRUE;

	case NEXT_BUTTON:
		if (offset < shareInfo->fileCnt -1)
			offset++;
		SetInfo();
		return	TRUE;

	case LUMP_CHECK:
		{
			BOOL checked = ::SendMessage((HWND)hwndCtl, BM_GETCHECK, 0, 0) == 0;
			::SendMessage((HWND)hwndCtl, BM_SETCHECK, checked, 0);
			for (int cnt=0; cnt < shareInfo->fileCnt; cnt++)
				shareInfo->fileInfo[cnt]->SetSelected(checked);
		}
		return	TRUE;
	}
	return	FALSE;
}

BOOL TSaveCommonDlg::EventUser(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	return	FALSE;
}

BOOL TSaveCommonDlg::SetInfo(void)
{
	char	buf[MAX_BUF], sizestr[MAX_LISTBUF];

	::SetDlgItemText(::GetParent(hWnd), 0x480, shareInfo->fileInfo[offset]->Fname());

	if (GET_MODE(shareInfo->fileInfo[offset]->Attr()) == IPMSG_FILE_DIR)
		strcpy(sizestr, DIRSAVE_MSGSTR);
	else
		MakeSizeString(sizestr, shareInfo->fileInfo[offset]->Size());

	wsprintf(buf, FILEINFO_MSGSTR, offset + 1, shareInfo->fileCnt, shareInfo->fileInfo[offset]->Fname(), sizestr);
	SetDlgItemText(RESULT_STATIC, buf);

	_int64	total_size = 0;
	for (int cnt=0; cnt < shareInfo->fileCnt; cnt++)
		total_size += shareInfo->fileInfo[cnt]->Size();
	MakeSizeString(sizestr, total_size);
	wsprintf(buf, LUMPBUTTON_MSGSTR, sizestr, shareInfo->fileCnt);
	SetDlgItemText(LUMP_CHECK, buf);

	return	TRUE;
}


/*
	僼傽僀儖嫟桳乮揧晅乯忣曬傪僄儞僐乕僪
*/
BOOL EncodeShareMsg(ShareInfo *info, char *buf, int bufsize)
{
	int		offset=0;
	char	fname[MAX_PATH];

	*buf = 0;
	for (int cnt=0; cnt < info->fileCnt; cnt++)
	{
		ForcePathToFname(info->fileInfo[cnt]->Fname(), fname);
		info->fileInfo[cnt]->SetId(cnt);
		offset += wsprintf(buf + offset, (info->fileInfo[cnt]->Size() >> 32) ? "%d:%s:%x%08x:%x:%s" : "%d:%s:%x%x:%x:", cnt, fname, (int)(info->fileInfo[cnt]->Size() >> 32), (int)info->fileInfo[cnt]->Size(), info->fileInfo[cnt]->Mtime());
//		if (GET_MODE(info->fileInfo[cnt]->Attr()) == IPMSG_FILE_DIR)
			offset += wsprintf(buf + offset, "%x:", info->fileInfo[cnt]->Attr());
		offset += wsprintf(buf + offset, "%c", FILELIST_SEPARATOR);

		if (offset + MAX_BUF > bufsize)
			break;
	}
	return	TRUE;
}

/*
	僼傽僀儖柤偵 ':' 傪娷傓応崌丄"::" 偲僄僗働乕僾偝傟偰偄傞偑丄
	Windows 偱偼巊偊側偄偺偱丄';' 偵抲偒姺偊傞
*/
void ConvertShareMsgEscape(char *str)
{
	char	*ptr;
	while ((ptr = strstr(str, "::")) != NULL)
	{
		*ptr++ = ';';
		memmove(ptr, ptr + 1, strlen(ptr));
	}
}

/*
	僼傽僀儖嫟桳乮揧晅乯忣曬傪僨僐乕僪
	拲堄丗攋夡撉弌偟丅巊梡偑廔傢傝師戞 FreeDecodeShareMsg 傪屇傃弌偡偙偲丅
*/
ShareInfo *DecodeShareMsg(char *buf)
{
	ShareInfo	*shareInfo = new ShareInfo;
	FileInfo	*fileInfo = NULL;
	char		*tok, *p, *p2, *p3;
	char		*file = separate_token(buf, FILELIST_SEPARATOR, &p);

	for (int cnt=0; file; cnt++, file=separate_token(NULL, FILELIST_SEPARATOR, &p))
	{
		ConvertShareMsgEscape(file);	// "::" -> ';'
		if ((tok = separate_token(file, ':', &p2)) == NULL)
			break;
		fileInfo = new FileInfo(atoi(tok));

		if ((tok = separate_token(NULL, ':', &p2)) == NULL || strlen(tok) >= MAX_PATH)
			break;
		while ((p3 = strchr(tok, '?')) != NULL)	// UNICODE 傑偱偺巄掕
			*p3 = '_';
		fileInfo->SetFname(tok);

		if ((tok = separate_token(NULL, ':', &p2)) == NULL)
			break;
		fileInfo->SetSize(hex2ll(tok));

		if ((tok = separate_token(NULL, ':', &p2)) == NULL)
			break;
		fileInfo->SetMtime(strtoul(tok, 0, 16));

		if ((tok = separate_token(NULL, ':', &p2)))
		{
			fileInfo->SetAttr(strtoul(tok, 0, 16));
			u_int	attr_type = GET_MODE(fileInfo->Attr());
			if (attr_type != IPMSG_FILE_DIR && attr_type != IPMSG_FILE_REGULAR)
			{
				delete fileInfo;
				continue;
			}
		}
		else fileInfo->SetAttr(IPMSG_FILE_REGULAR);

		if ((shareInfo->fileCnt % BIG_ALLOC) == 0)
			shareInfo->fileInfo = (FileInfo **)realloc(shareInfo->fileInfo, (shareInfo->fileCnt + BIG_ALLOC) * sizeof(FileInfo *));

		shareInfo->fileInfo[shareInfo->fileCnt++] = fileInfo;
		fileInfo = NULL;
	}
	if (fileInfo)	// 僨僐乕僪拞偵敳偗偨
		delete fileInfo;

	if (shareInfo->fileCnt <= 0)
	{
		delete shareInfo;
		return	NULL;
	}
	return	shareInfo;
}

/*
	僨僐乕僪忣曬偺奐曻
*/
BOOL FreeDecodeShareMsg(ShareInfo *info)
{
	while (info->fileCnt-- > 0)
		delete info->fileInfo[info->fileCnt];
	free(info->fileInfo);
	delete info;
	return	TRUE;
}

/*
	僨僐乕僪忣曬撪偺僼傽僀儖忣曬嶍彍
*/
BOOL FreeDecodeShareMsgFile(ShareInfo *info, int index)
{
	if (index >= info->fileCnt)
		return	FALSE;
	delete info->fileInfo[index];
	memmove(info->fileInfo + index, info->fileInfo + index +1, sizeof(FileInfo *) * (--info->fileCnt - index));
	return	TRUE;
}

ShareInfo::ShareInfo(int _packetNo)
{
	packetNo = _packetNo;
	host = NULL;
	transStat = NULL;
	fileInfo = NULL;
	hostCnt = fileCnt = 0;
}

void ShareInfo::LinkList(ShareInfo *top)
{
	prior = top->prior;
	next = top;
	top->prior->next = this;
	top->prior = this;
}

BOOL GetFileInfomation(const char *path, WIN32_FIND_DATA *fdata)
{
	HANDLE	fh;

	if ((fh = ::FindFirstFile(path, fdata)) != INVALID_HANDLE_VALUE)
	{
		::FindClose(fh);
		return	TRUE;
	}

	memset(fdata, 0, sizeof(WIN32_FIND_DATA));

	if ((fh = ::CreateFile(path, GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0)) != INVALID_HANDLE_VALUE)
	{
		BY_HANDLE_FILE_INFORMATION	info;
		BOOL	info_ret = ::GetFileInformationByHandle(fh, &info);
		::CloseHandle(fh);
		if (info_ret)
			return	memcpy(fdata, &info, (char *)&info.dwVolumeSerialNumber - (char *)&info), TRUE;
	}

	return	(fdata->dwFileAttributes = ::GetFileAttributes(path)) == 0xffffffff ? FALSE : TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品1区2区| 成人午夜电影小说| 一区二区三区在线观看视频| 中文一区在线播放| 欧美国产精品中文字幕| 久久美女高清视频| 国产人久久人人人人爽| 国产精品美女一区二区在线观看| 中文字幕免费不卡| 日韩一区在线看| 亚洲一区二区在线视频| 亚洲综合激情另类小说区| 亚洲成av人综合在线观看| 蜜臀av在线播放一区二区三区| 久久福利视频一区二区| 国产夫妻精品视频| 91麻豆文化传媒在线观看| 欧美视频中文字幕| 欧美一级高清片| 国产人妖乱国产精品人妖| 亚洲欧美日韩系列| 日av在线不卡| 国产suv精品一区二区三区 | 3atv在线一区二区三区| 日韩限制级电影在线观看| 欧美国产精品一区二区三区| 亚洲免费观看高清| 热久久免费视频| 99麻豆久久久国产精品免费 | 欧美一区二区三区视频免费播放| 精品国产乱码久久久久久图片 | 欧美三级乱人伦电影| 日韩欧美一级在线播放| 自拍视频在线观看一区二区| 亚洲成av人片一区二区| 国产激情91久久精品导航| 欧美中文字幕一区二区三区亚洲| 精品美女被调教视频大全网站| 亚洲人成亚洲人成在线观看图片| 日韩高清不卡一区二区三区| k8久久久一区二区三区| 欧美一区二区二区| 亚洲精品视频免费看| 国产一区二区日韩精品| 欧美喷潮久久久xxxxx| 中文字幕一区不卡| 狠狠网亚洲精品| 欧美日本乱大交xxxxx| 中文字幕一区在线观看| 精品一区二区在线视频| 欧美日精品一区视频| 国产精品久久久久久久久搜平片| 久久精品国产77777蜜臀| 91国偷自产一区二区三区观看| 久久精品在线免费观看| 美女视频黄久久| 欧美日韩激情一区二区三区| 中文字幕亚洲不卡| 懂色av一区二区在线播放| 欧美一区二区三区视频免费播放| 亚洲狠狠爱一区二区三区| 99国产精品一区| 欧美国产丝袜视频| 国产一区二区三区美女| 精品三级在线观看| 奇米影视一区二区三区小说| 欧美日韩一级二级三级| 亚洲已满18点击进入久久| 99久久国产免费看| 中文字幕一区免费在线观看| 成人免费视频免费观看| 中文字幕的久久| 成人动漫av在线| 17c精品麻豆一区二区免费| 成人一级片在线观看| 日本一区二区在线不卡| 成人国产精品视频| 中文字幕一区不卡| 91成人看片片| 五月婷婷激情综合| 日韩一级在线观看| 另类小说视频一区二区| 精品乱人伦一区二区三区| 国产一区二区在线免费观看| 久久蜜桃av一区二区天堂| 成人综合婷婷国产精品久久| 国产精品乱码人人做人人爱| 一本到不卡免费一区二区| 亚洲欧美经典视频| 欧美日韩一区不卡| 玖玖九九国产精品| 国产欧美视频一区二区三区| 99久久伊人精品| 亚洲一区二区三区视频在线| 欧美一区二区三区免费| 国产福利91精品| 亚洲精品日日夜夜| 日韩精品一区二区三区在线播放 | 2024国产精品| 成人精品免费视频| 亚洲一区二区三区免费视频| 日韩三级高清在线| 国产丶欧美丶日本不卡视频| 国产精品国产三级国产aⅴ入口 | 北岛玲一区二区三区四区| 亚洲激情在线播放| 欧美成人在线直播| 成人av小说网| 丝瓜av网站精品一区二区| 国产亚洲一区二区三区在线观看| 92精品国产成人观看免费| 奇米影视7777精品一区二区| 中文字幕精品在线不卡| 欧美高清性hdvideosex| 国产91精品一区二区麻豆网站| 一区二区三区在线免费| 国产视频一区在线播放| 欧美在线免费播放| 国产成a人亚洲| 视频一区视频二区中文字幕| 中文字幕制服丝袜成人av| 欧美一区二区在线免费观看| av亚洲精华国产精华精华| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲国产精品久久久久婷婷884 | 欧美成人video| 91色视频在线| 国产凹凸在线观看一区二区| 青青草精品视频| 亚洲综合一区在线| 亚洲欧洲精品成人久久奇米网| 日韩欧美一二三区| 精品国内二区三区| 婷婷开心久久网| 国产亚洲欧美一级| 欧美一区二区久久| 三级一区在线视频先锋| 国产精品无码永久免费888| 国产精品色哟哟| 一区二区三区精密机械公司| 免费成人在线观看| 成人看片黄a免费看在线| 欧洲一区二区av| 日韩欧美激情一区| 中文字幕乱码一区二区免费| 亚洲一区免费在线观看| 久久99精品久久久| 92国产精品观看| 欧美一区二区三区免费视频| 欧美激情一区二区在线| 亚洲午夜激情av| 国产精品资源在线看| 欧美视频在线播放| 久久人人超碰精品| 一区二区在线观看视频在线观看| 欧美96一区二区免费视频| 99久久久精品免费观看国产蜜| 91精品久久久久久久久99蜜臂| 欧美国产日韩亚洲一区| 日韩激情视频网站| 91农村精品一区二区在线| 欧美不卡激情三级在线观看| 亚洲精品va在线观看| 国产99精品在线观看| 欧美浪妇xxxx高跟鞋交| 国产精品五月天| 看电视剧不卡顿的网站| 欧美日韩中文另类| 亚洲色图欧美激情| 国产伦精品一区二区三区在线观看| 欧洲中文字幕精品| 欧美激情一区不卡| 精品一区二区三区久久| 欧美日本韩国一区| 亚洲欧洲国产日韩| 国产麻豆视频一区二区| 69精品人人人人| 一区二区三区日韩精品视频| 成人免费看的视频| 精品国产露脸精彩对白| 奇米综合一区二区三区精品视频| 欧美午夜一区二区三区免费大片| 中文字幕在线观看一区二区| 国产99精品国产| 国产夜色精品一区二区av| 韩国成人福利片在线播放| 欧美电影精品一区二区| 日韩 欧美一区二区三区| 欧美美女一区二区| 一二三四社区欧美黄| 91在线观看高清| 中文字幕一区二区不卡| 成人av在线看| 国产精品美女久久久久久| 波多野结衣欧美| 国产精品伦理一区二区| 99国产麻豆精品| 亚洲乱码国产乱码精品精的特点| 色欧美乱欧美15图片| 亚洲卡通动漫在线|