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

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

?? miscdlg.cpp

?? FastCopy 利用緩沖技術(shù)加快文件拷貝
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
static char *miscdlg_id = 
	"@(#)Copyright (C) H.Shirouzu 2005-2007   miscdlg.cpp	Ver1.52";
/* ========================================================================
	Project  Name			: Fast/Force copy file and directory
	Create					: 2005-01-23(Sun)
	Update					: 2007-02-06(Tue)
	Copyright				: H.Shirouzu
	Reference				: 
	======================================================================== */

#include "mainwin.h"
#include <stdio.h>

// HtmlHelp WorkShop 傪僀儞僗僩乕儖偟偰丄htmlhelp.h 傪 include path 偵
// 擖傟傞偙偲丅
#define ENABLE_HTML_HELP
#if defined(ENABLE_HTML_HELP)
#include <htmlhelp.h>
#endif

/*
	About Dialog弶婜壔張棟
*/
TAboutDlg::TAboutDlg(TWin *_parent) : TDlg(ABOUT_DIALOG, _parent)
{
}

/*
	Window 惗惉帪偺 CallBack
*/
BOOL TAboutDlg::EvCreate(LPARAM lParam)
{
	char	org[MAX_PATH], buf[MAX_PATH];

	GetDlgItemText(ABOUT_STATIC, org, sizeof(org));
	sprintf(buf, org, GetVersionStr());
	SetDlgItemText(ABOUT_STATIC, buf);

	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);

	return	TRUE;
}

BOOL TAboutDlg::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hWndCtl)
{
	switch (wID)
	{
	case IDOK:
	case IDCANCEL:
		EndDialog(wID);
		return	TRUE;

	case URL_BUTTON:
		::ShellExecute(NULL, NULL, GetLoadStr(IDS_FASTCOPYURL), NULL, NULL, SW_SHOW);
		return	TRUE;
	}
	return	FALSE;
}

/*
	Setup Dialog弶婜壔張棟
*/
TSetupDlg::TSetupDlg(Cfg *_cfg, TWin *_parent) : TDlg(SETUP_DIALOG, _parent)
{
	cfg = _cfg;
}

/*
	Window 惗惉帪偺 CallBack
*/
BOOL TSetupDlg::EvCreate(LPARAM lParam)
{
	SetDlgItemInt(BUFSIZE_EDIT, cfg->bufSize);
	SetDlgItemInt(MAXTRANS_EDIT, cfg->maxTransSize);
	SetDlgItemInt(NONBUFMINNTFS_EDIT, cfg->nbMinSizeNtfs);
	SetDlgItemInt(NONBUFMINFAT_EDIT, cfg->nbMinSizeFat);
	SetDlgItemInt(HISTORY_EDIT, cfg->maxHistoryNext);
	CheckDlgButton(IGNORE_CHECK, cfg->ignoreErr);
	CheckDlgButton(ESTIMATE_CHECK, cfg->estimateMode);
	CheckDlgButton(ERRLOG_CHECK, cfg->isErrLog);
	CheckDlgButton(EMPTYDIR_CHECK, cfg->skipEmptyDir);
	CheckDlgButton(EXECCONFIRM_CHECK, cfg->execConfirm);
	CheckDlgButton(FORCESTART_CHECK, cfg->forceStart);
	CheckDlgButton(SAMEDIR_RENAME_CHECK, cfg->isSameDirRename);
	CheckDlgButton(AUTOSLOW_CHECK, cfg->isAutoSlow);
	CheckDlgButton(AUTOSLOWIO_CHECK, cfg->isAutoSlowIo);

	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);

	return	TRUE;
}

BOOL TSetupDlg::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hWndCtl)
{
	switch (wID)
	{
	case IDOK:
		cfg->bufSize = GetDlgItemInt(BUFSIZE_EDIT);
		cfg->maxTransSize = GetDlgItemInt(MAXTRANS_EDIT);
		cfg->nbMinSizeNtfs = GetDlgItemInt(NONBUFMINNTFS_EDIT);
		cfg->nbMinSizeFat = GetDlgItemInt(NONBUFMINFAT_EDIT);
		cfg->maxHistoryNext = GetDlgItemInt(HISTORY_EDIT);
		cfg->ignoreErr = IsDlgButtonChecked(IGNORE_CHECK);
		cfg->estimateMode = IsDlgButtonChecked(ESTIMATE_CHECK);
		cfg->isErrLog = IsDlgButtonChecked(ERRLOG_CHECK);
		cfg->skipEmptyDir = IsDlgButtonChecked(EMPTYDIR_CHECK);
		cfg->execConfirm = IsDlgButtonChecked(EXECCONFIRM_CHECK);
		cfg->forceStart = IsDlgButtonChecked(FORCESTART_CHECK);
		cfg->isAutoSlow = IsDlgButtonChecked(AUTOSLOW_CHECK);
		cfg->isAutoSlowIo = IsDlgButtonChecked(AUTOSLOWIO_CHECK);
		cfg->WriteIni();
		EndDialog(wID);
		return	TRUE;

	case IDCANCEL:
		EndDialog(wID);
		return	TRUE;
	}
	return	FALSE;
}


/*
	ShellExt
*/
#define CURRENT_SHEXTDLL	"fastext1.dll"
#define REGISTER_PROC		"DllRegisterServer"
#define UNREGISTER_PROC		"DllUnregisterServer"
#define ISREGISTER_PROC		"IsRegistServer"
#define SETMENUFLAGS_PROC	"SetMenuFlags"
#define GETMENUFLAGS_PROC	"GetMenuFlags"
#define UPDATEDLL_PROC		"UpdateDll"

BOOL ShellExt::Load(char *parent_dir, char *dll_name)
{
	if (hShellExtDll)
		UnLoad();

	char	path[MAX_PATH];
	MakePath(path, parent_dir, dll_name);
	if ((hShellExtDll = TLoadLibrary(path)) == NULL)
		return	FALSE;

	RegisterDllProc		= (HRESULT (WINAPI *)(void))GetProcAddress(hShellExtDll, REGISTER_PROC);
	UnRegisterDllProc	= (HRESULT (WINAPI *)(void))GetProcAddress(hShellExtDll, UNREGISTER_PROC);
	IsRegisterDllProc	= (BOOL (WINAPI *)(void))GetProcAddress(hShellExtDll, ISREGISTER_PROC);
	SetMenuFlagsProc	= (BOOL (WINAPI *)(int))GetProcAddress(hShellExtDll, SETMENUFLAGS_PROC);
	GetMenuFlagsProc	= (int (WINAPI *)(void))GetProcAddress(hShellExtDll, GETMENUFLAGS_PROC);
	UpdateDllProc		= (BOOL (WINAPI *)(void))GetProcAddress(hShellExtDll, UPDATEDLL_PROC);

	if (!RegisterDllProc || !UnRegisterDllProc || !IsRegisterDllProc || !SetMenuFlagsProc || !GetMenuFlagsProc || !UpdateDllProc) {
		::FreeLibrary(hShellExtDll);
		hShellExtDll = NULL;
		return	FALSE;
	}
	return	TRUE;
}

BOOL ShellExt::UnLoad(void)
{
	if (hShellExtDll) {
		::FreeLibrary(hShellExtDll);
		hShellExtDll = NULL;
	}
	return	TRUE;
}

/*
	ShellExt Dialog弶婜壔張棟
*/
TShellExtDlg::TShellExtDlg(Cfg *_cfg, TWin *_parent) : TDlg(SHELLEXT_DIALOG, _parent)
{
	cfg = _cfg;
}

/*
	Window 惗惉帪偺 CallBack
*/
BOOL TShellExtDlg::EvCreate(LPARAM lParam)
{
	if (shellExt.Load(cfg->execDir, CURRENT_SHEXTDLL) == FALSE) {
		TMsgBox(this).Exec("Can't load " CURRENT_SHEXTDLL);
		PostMessage(WM_CLOSE, 0, 0);
		return	FALSE;
	}

	ReflectStatus();

	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);

	return	TRUE;
}

BOOL TShellExtDlg::ReflectStatus(void)
{
	BOOL	isRegister = shellExt.IsRegisterDllProc();
	int		flags;

	SetDlgItemText(IDSHELLEXT_OK, isRegister ? GetLoadStr(IDS_SHELLEXT_MODIFY) : GetLoadStr(IDS_SHELLEXT_EXEC));
	::EnableWindow(GetDlgItem(IDSHELLEXT_CANCEL), isRegister);

	if ((flags = shellExt.GetMenuFlagsProc()) == -1)
		flags = SHEXT_RIGHT_COPY|SHEXT_RIGHT_DELETE|SHEXT_DD_COPY|SHEXT_DD_MOVE;

	CheckDlgButton(RIGHT_COPY_CHECK, flags & SHEXT_RIGHT_COPY);
	CheckDlgButton(RIGHT_DELETE_CHECK, flags & SHEXT_RIGHT_DELETE);
	CheckDlgButton(DD_COPY_CHECK, flags & SHEXT_DD_COPY);
	CheckDlgButton(DD_MOVE_CHECK, flags & SHEXT_DD_MOVE);
	CheckDlgButton(RIGHT_SUBMENU_CHECK, flags & SHEXT_SUBMENU_RIGHT);
	CheckDlgButton(DD_SUBMENU_CHECK, flags & SHEXT_SUBMENU_DD);

	CheckDlgButton(AUTOCLOSE_CHECK, cfg->shextAutoClose);
	CheckDlgButton(TASKTRAY_CHECK, cfg->shextTaskTray);
	CheckDlgButton(RIGHT_NOCONFIRM_CHECK, cfg->shextRNoConfirm);
	CheckDlgButton(DD_NOCONFIRM_CHECK, cfg->shextDdNoConfirm);

	return	TRUE;
}

BOOL TShellExtDlg::EvNcDestroy(void)
{
	if (shellExt.Status())
		shellExt.UnLoad();
	return	TRUE;
}

BOOL TShellExtDlg::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hWndCtl)
{
	switch (wID)
	{
	case IDSHELLEXT_OK: case IDSHELLEXT_CANCEL:
		if (RegisterShellExt(wID == IDSHELLEXT_OK ? TRUE : FALSE) == FALSE)
			TMsgBox(this).Exec("ShellExt Error");
		ReflectStatus();
		if (wID == IDSHELLEXT_OK)
			EndDialog(wID);
		return	TRUE;

	case IDOK: case IDCANCEL:
		EndDialog(wID);
		return	TRUE;
	}
	return	FALSE;
}

BOOL TShellExtDlg::RegisterShellExt(BOOL is_register)
{
	if (shellExt.Status() == FALSE)
		return	FALSE;

	cfg->shextAutoClose = IsDlgButtonChecked(AUTOCLOSE_CHECK);
	cfg->shextTaskTray = IsDlgButtonChecked(TASKTRAY_CHECK);
	cfg->shextRNoConfirm = is_register && IsDlgButtonChecked(RIGHT_NOCONFIRM_CHECK);
	cfg->shextDdNoConfirm = is_register && IsDlgButtonChecked(DD_NOCONFIRM_CHECK);
	cfg->WriteIni();

	if (!is_register)
		return	shellExt.UnRegisterDllProc() == S_OK ? TRUE : FALSE;

	int		flags = 0;

	if (IsDlgButtonChecked(RIGHT_COPY_CHECK))
		flags |= SHEXT_RIGHT_COPY;

	if (IsDlgButtonChecked(RIGHT_DELETE_CHECK))
		flags |= SHEXT_RIGHT_DELETE;

	if (IsDlgButtonChecked(RIGHT_SUBMENU_CHECK))
		flags |= SHEXT_SUBMENU_RIGHT;

	if (IsDlgButtonChecked(DD_COPY_CHECK))
		flags |= SHEXT_DD_COPY;

	if (IsDlgButtonChecked(DD_MOVE_CHECK))
		flags |= SHEXT_DD_MOVE;

	if (IsDlgButtonChecked(DD_SUBMENU_CHECK))
		flags |= SHEXT_SUBMENU_DD;

	if (shellExt.RegisterDllProc() != S_OK)
		return	FALSE;

	return	shellExt.SetMenuFlagsProc(flags);
}

BOOL UpdateShellExt(Cfg *cfg)
{
	ShellExt	shellExt;

	return	shellExt.Load(cfg->execDir, CURRENT_SHEXTDLL) && shellExt.UpdateDllProc();
}

int TExecConfirmDlg::Exec(const void *_src, const void *_dst)
{
	src = _src;
	dst = _dst;

	return	TDlg::Exec();
}

BOOL TExecConfirmDlg::EvCreate(LPARAM lParam)
{
	if (title)
		SetWindowTextV(title);

	SendDlgItemMessage(MESSAGE_EDIT, EM_SETWORDBREAKPROC, 0, (LPARAM)EditWordBreakProc);
	SetDlgItemTextV(SRC_EDIT, src);
	if (dst)
		SetDlgItemTextV(DST_EDIT, dst);

	if (rect.left == CW_USEDEFAULT) {
		GetWindowRect(&rect);
		rect.left += 30, rect.right += 30;
		rect.top += 30, rect.bottom += 30;
		MoveWindow(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, FALSE);
	}

	Show();
	SetForceForegroundWindow();
	return	TRUE;
}

BOOL TExecConfirmDlg::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hWndCtl)
{
	switch (wID)
	{
	case HELP_CONFIRM_BUTTON:
		ShowHelp(hWnd, cfg->execDir, GetLoadStr(IDS_FASTCOPYHELP), "#shellcancel");
		return	TRUE;

	case IDOK: case IDCANCEL:
		EndDialog(wID);
		return	TRUE;
	}
	return	FALSE;
}

HWND ShowHelp(HWND hOwner, LPCSTR help_dir, LPCSTR help_file, LPCSTR section)
{
#if defined(ENABLE_HTML_HELP)
	static HWND (WINAPI *pHtmlHelp)(HWND, LPCSTR, UINT, DWORD_PTR) = NULL;

	if (pHtmlHelp == NULL) {
		DWORD		cookie=0;
		HMODULE		hHtmlHelp = TLoadLibrary("hhctrl.ocx");
		if (hHtmlHelp)
			pHtmlHelp = (HWND (WINAPI *)(HWND, LPCSTR, UINT, DWORD_PTR))::GetProcAddress(hHtmlHelp, "HtmlHelpA");
		if (pHtmlHelp)
			pHtmlHelp(NULL, NULL, HH_INITIALIZE, (DWORD)&cookie);
	}
	if (pHtmlHelp) {
		char	path[MAX_PATH];

		MakePath(path, help_dir, help_file);
		if (section)
			strcat(path, section);
		return	pHtmlHelp(hOwner, path, HH_DISPLAY_TOC, 0);
	}
#endif
	return	NULL;
}

/*=========================================================================
  僋儔僗 丗 BrowseDirDlgV
  奣  梫 丗 僨傿儗僋僩儕僽儔僂僘梡僐儌儞僟僀傾儘僌奼挘僋儔僗
  愢  柧 丗 SHBrowseForFolder 偺僒僽僋儔僗壔
  拲  堄 丗 
=========================================================================*/
BOOL BrowseDirDlgV(TWin *parentWin, UINT editCtl, void *title, int flg)
{
	if (SHBrowseForFolderV == NULL || SHGetPathFromIDListV == NULL)	// old version NT kernel.
		return	FALSE;

	WCHAR	fileBuf[MAX_PATH_EX] = L"", buf[MAX_PATH_EX] = L"";
	BOOL	ret = FALSE;
	void	*c_root_v = IS_WINNT_V ? (void *)L"C:\\" : (void *)"C:\\";

	parentWin->GetDlgItemTextV(editCtl, fileBuf, MAX_PATH_EX);
	if (GetChar(fileBuf, 0)) {
		void	*tok, *p;
		if ((flg & BRDIR_VQUOTE) && (tok = strtok_pathV(fileBuf, SEMICOLON_V, &p)))
			strcpyV(fileBuf, tok);
	}
	if (GetChar(fileBuf, 0) == 0)
		strcpyV(fileBuf, c_root_v);

	DirFileMode mode = DIRSELECT;
	TBrowseDirDlgV	dirDlg(title, fileBuf, flg, parentWin);
	TOpenFileDlg	fileDlg(parentWin, TOpenFileDlg::MULTI_OPEN, OFDLG_DIRSELECT);

	while (mode != SELECT_EXIT) {
		switch (mode) {
		case DIRSELECT:
			if (dirDlg.Exec()) {
				if (flg & BRDIR_BACKSLASH) {
					MakePathV(buf, fileBuf, EMPTY_STR_V);
					strcpyV(fileBuf, buf);
				}
				if ((flg & BRDIR_QUOTE) || (flg & BRDIR_VQUOTE) && lstrchrV(fileBuf, ';')) {
					sprintfV(buf, FMT_QUOTE_STR_V, fileBuf);
					strcpyV(fileBuf, buf);
				}
				::SetDlgItemTextV(parentWin->hWnd, editCtl, fileBuf);
				ret = TRUE;
			}
			else if (dirDlg.GetMode() == FILESELECT) {
				mode = FILESELECT;
				continue;
			}
			mode = SELECT_EXIT;
			break;

		case FILESELECT:
			SetChar(buf, sprintfV(buf, FMT_STR_V, GetLoadStrV(IDS_ALLFILES_FILTER)) + 1, 0);
			fileDlg.Exec(editCtl, NULL, buf, fileBuf);
			if (fileDlg.GetMode() == DIRSELECT)
				mode = DIRSELECT;
			else
				mode = SELECT_EXIT;
			break;
		}
	}

	return	ret;
}

TBrowseDirDlgV::TBrowseDirDlgV(void *title, void *_fileBuf, int _flg, TWin *parentWin)
{
	fileBuf = _fileBuf;
	flg = _flg;

	iMalloc = NULL;
	SHGetMalloc(&iMalloc);

	brInfo.hwndOwner = parentWin->hWnd;
	brInfo.pidlRoot = 0;
	brInfo.pszDisplayName = (char *)fileBuf;
	brInfo.lpszTitle = (char *)title;
	brInfo.ulFlags = BIF_RETURNONLYFSDIRS;
	brInfo.lpfn = TBrowseDirDlgV::BrowseDirDlg_Proc;
	brInfo.lParam = (LPARAM)this;
	brInfo.iImage = 0;
}

TBrowseDirDlgV::~TBrowseDirDlgV()
{
	if (iMalloc)
		iMalloc->Release();
}

BOOL TBrowseDirDlgV::Exec()
{
	LPITEMIDLIST	pidlBrowse;
	BOOL	ret = FALSE;

	do {
		mode = DIRSELECT;
		if ((pidlBrowse = ::SHBrowseForFolderV(&brInfo)) != NULL) {
			if (::SHGetPathFromIDListV(pidlBrowse, fileBuf))
				ret = TRUE;
			iMalloc->Free(pidlBrowse);
			return	ret;
		}
	} while (mode == RELOAD);

	return	ret;
}

/*
	BrowseDirDlg梡僐乕儖僶僢僋
*/
int CALLBACK TBrowseDirDlgV::BrowseDirDlg_Proc(HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM data)
{
	switch (uMsg)
	{
	case BFFM_INITIALIZED:
		((TBrowseDirDlgV *)data)->CreateByWnd(hWnd);
		break;

	case BFFM_SELCHANGED:
		if (((TBrowseDirDlgV *)data)->hWnd)
			((TBrowseDirDlgV *)data)->SetFileBuf(lParam);
		break;
	}
	return 0;
}

/*
	BrowseDlg梡僒僽僋儔僗惗惉
*/
BOOL TBrowseDirDlgV::CreateByWnd(HWND _hWnd)
{
	BOOL	ret = TSubClass::CreateByWnd(_hWnd);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品免费在线| 成人综合在线观看| 国产亚洲成年网址在线观看| 日韩欧美精品在线| 国产精品乱子久久久久| 亚洲精品v日韩精品| 一区二区三区不卡视频| 亚洲一区二区中文在线| 免费观看30秒视频久久| 国产自产高清不卡| www.亚洲人| 不卡的av中国片| 91精品国产全国免费观看| 欧美一区二区免费观在线| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲不卡av一区二区三区| 粉嫩av一区二区三区| av色综合久久天堂av综合| 欧美一级免费大片| 亚洲成a人片在线不卡一二三区| 午夜日韩在线观看| eeuss鲁片一区二区三区| 欧美一区二区精美| 蜜臀久久99精品久久久画质超高清| 国产一区二区在线看| 8x福利精品第一导航| 亚洲综合久久av| 欧美精品一二三四| 亚洲午夜在线观看视频在线| 欧美美女喷水视频| 亚洲国产色一区| 欧美大胆人体bbbb| 精品一区二区三区视频在线观看 | 色嗨嗨av一区二区三区| 国产精品麻豆网站| 波多野结衣在线aⅴ中文字幕不卡| 日本一区二区成人在线| 91亚洲精华国产精华精华液| 国产精品久久久久9999吃药| 色呦呦网站一区| 麻豆精品一区二区综合av| 久久综合久久鬼色| 欧美视频自拍偷拍| 国产在线不卡一区| 亚洲三级久久久| 欧美一区二区福利在线| 成人黄色大片在线观看| 日韩黄色免费网站| 国产精品嫩草影院com| 欧美一区二区三区播放老司机| 国产传媒欧美日韩成人| 午夜激情久久久| 国产精品国产自产拍高清av| 欧美精品九九99久久| 国产99精品视频| 蜜臀久久99精品久久久久久9 | 日韩专区一卡二卡| 综合在线观看色| 国产日韩欧美电影| 日韩欧美国产小视频| 欧美午夜理伦三级在线观看| 国产老妇另类xxxxx| 亚洲午夜av在线| 亚洲精品国产第一综合99久久| 久久人人97超碰com| 69成人精品免费视频| 欧美午夜一区二区| 色吧成人激情小说| 欧美日韩国产高清一区二区三区 | 99久久免费国产| 国产成人av资源| 国产91对白在线观看九色| 国内久久精品视频| 国产成人免费在线观看| 国产精品一级片在线观看| 国内久久婷婷综合| 不卡欧美aaaaa| 欧美日韩在线三级| 欧美大片一区二区三区| 精品国产欧美一区二区| 国产亚洲一区二区三区在线观看| 国产亚洲一区二区三区四区| 中文字幕一区免费在线观看| 亚洲欧美综合在线精品| 亚洲成av人影院| 国产一区二区在线视频| 在线视频一区二区三| 欧美电视剧在线观看完整版| 国产精品沙发午睡系列990531| 中文字幕一区二区三| 免费观看久久久4p| 在线免费观看日韩欧美| 久久精品一区二区三区不卡牛牛| 亚洲欧洲中文日韩久久av乱码| 毛片基地黄久久久久久天堂| 色天使久久综合网天天| 亚洲欧美怡红院| 高清不卡在线观看av| 欧美一区二区三区电影| 午夜精品久久久久久久99樱桃| 不卡av在线免费观看| 国产性色一区二区| 国产一区二区三区高清播放| 在线不卡一区二区| 五月激情综合网| 日韩精品最新网址| 亚洲成av人片| 日韩一级黄色大片| 美腿丝袜亚洲三区| 国产欧美一区二区精品久导航| 日本欧美一区二区三区乱码| 欧美精品日韩一本| 蜜臀av性久久久久蜜臀aⅴ| 日韩视频免费观看高清完整版在线观看 | 日韩av一区二区三区四区| 欧美午夜精品一区二区蜜桃| 五月天激情综合网| 久久久精品免费免费| av在线一区二区三区| 樱花草国产18久久久久| 欧美日韩精品免费| 国产精品综合一区二区| 亚洲男人的天堂在线观看| 欧美日韩精品一区二区| 国产乱子轮精品视频| 自拍视频在线观看一区二区| 日韩精品在线一区| 色一区在线观看| 国产一区不卡精品| 亚洲国产精品久久人人爱| 国产亚洲午夜高清国产拍精品 | 另类综合日韩欧美亚洲| 亚洲欧美激情插 | 亚洲视频在线一区观看| 欧美成人r级一区二区三区| 成人黄色在线网站| 五月综合激情婷婷六月色窝| 欧美r级电影在线观看| 欧美系列日韩一区| 在线视频国内自拍亚洲视频| 国产一区二区三区四区五区美女| 亚洲自拍偷拍网站| 亚洲欧美日韩国产成人精品影院| 精品蜜桃在线看| xnxx国产精品| 国产精品国产三级国产专播品爱网| 精品少妇一区二区三区免费观看 | 91影院在线观看| 成人午夜av在线| 99re视频这里只有精品| 粉嫩绯色av一区二区在线观看| 亚洲不卡一区二区三区| 精品久久久久久久久久久院品网 | 日本成人在线一区| 久久精品国产一区二区三| 日韩福利电影在线观看| 日本一区中文字幕| 久久av老司机精品网站导航| 成人一区二区三区| 91亚洲国产成人精品一区二三| 成人美女视频在线观看| 国产成人亚洲综合a∨猫咪| 99久久亚洲一区二区三区青草| 国产综合色精品一区二区三区| 国产 欧美在线| 欧美日本国产一区| 国产亲近乱来精品视频| 夜夜爽夜夜爽精品视频| 免费精品视频在线| 欧洲av一区二区嗯嗯嗯啊| 日韩三级视频在线看| 亚洲精品免费播放| 国产成人免费在线观看不卡| 欧美久久免费观看| 中文字幕一区二区三区色视频| 老司机午夜精品| 欧美日韩国产在线观看| **性色生活片久久毛片| 国产精品中文有码| 精品噜噜噜噜久久久久久久久试看 | 色噜噜久久综合| 国产精品久久久久久久久图文区| 麻豆91免费看| 日韩精品一区二区三区中文不卡| 亚洲女厕所小便bbb| 成人在线视频一区二区| 中文字幕一区二区三区蜜月| 久久国产尿小便嘘嘘| 91精品国产全国免费观看| 另类成人小视频在线| 777xxx欧美| 久久成人久久鬼色| 国产精品女人毛片| 国产成人综合在线观看| 国产午夜亚洲精品理论片色戒| 粉嫩嫩av羞羞动漫久久久| 国产欧美一区二区精品性色| 91黄色免费观看| 奇米四色…亚洲| 国产精品久久久爽爽爽麻豆色哟哟|