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

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

?? hexeditwnd.cpp

?? 這是一個編輯器 這是一個編輯器
?? CPP
?? 第 1 頁 / 共 5 頁
字號:

	// set title
	SetHEWndCaption();

	//
	// inform about HE_ACTION_FILEACCESSINFO
	//
	if (pActionHandler)
	{
		ZERO(act);
		act.dwActionCode  = HE_ACTION_FILEACCESSINFO;
		act.bReadWrite    = !fInput.IsFileReadOnly();
		pActionHandler(&act);
	}

	return TRUE; // OK
}

//
// main painting routine
// (back-buffering methode)
//
BOOL HexEditWnd::PaintText(HWND hWnd)
{
	HDC           hDC, hdcBuff;
	DWORD         dwOffset;
	UINT          u, u2, icySel;
	char          cBuff[40];
	BYTE          byCur;
	RECT          rct;
	HBITMAP       hBmp;
	HBRUSH        hbrColor;
	HGDIOBJ       hobjOld;
	PAINTSTRUCT   ps;

	// sth to paint ?
	if (!diData.dwSize)
		return FALSE; // ERR

	//
	// paint
	//
	hDC      = BeginPaint(hWnd, &ps);
	
	// create virtual bmp
	GetClientRect(hWnd, &rct);
	hdcBuff  = CreateCompatibleDC(hDC);
	hBmp     = CreateCompatibleBitmap(hDC,
		rct.right - rct.left,
		rct.bottom - rct.top - iyHETop);
	hobjOld = SelectObject(hdcBuff, hBmp);

	// fill bmp
	hbrColor = CreateSolidBrush( (COLORREF)0x00FFFFFF );
	FillRect(hdcBuff, &rct, hbrColor);
	DeleteObject(hbrColor);

	// paint to bmp
	dwOffset = stat.dwCurOffset;

	for (u = 0; u < uMaxLines; u++)
	{
		// end of buffer ?
		if (dwOffset >= diData.dwSize)
			break;

		//
		// paint offset
		//
		SetTextColor(hdcBuff, RGB_BLACK);
		wsprintf(cBuff, H8":", dwOffset);
		SelectObject(hdcBuff, hFont);
		TextOut(hdcBuff,
			0, u * uFontHeight,
			cBuff, 9);

		//
		// paint digit pairs
		//
		for (u2 = 0; u2 < 16; u2++)
		{
			// end of buffer ?
			if (dwOffset >= diData.dwSize)
				break; // upper, same structured decision handles painting end

			//
			// change at this position?
			//
			byCur = *(BYTE*)((DWORD)diData.pDataBuff + dwOffset);

			if (dwOffset >= diOrgData.dwSize) // out of range of original buffer ?
				SetTextColor(hdcBuff, RGB_RED);
			else
				SetTextColor(
					hdcBuff,
					*(BYTE*)((DWORD)diOrgData.pDataBuff + dwOffset) != byCur ? RGB_RED : RGB_BLACK);

			//
			// paint digit pair
			//
			if (stat.bCaretVisible &&
				stat.posCaret.dwOffset == dwOffset &&
				stat.posCaret.bTextSection)
				SelectObject(hdcBuff, hFontU);
			else
				SelectObject(hdcBuff, hFont);

			wsprintf(cBuff, H2, byCur);
			TextOut(hdcBuff,
				PAIRS_X + DIGIT_PAIR_WIDTH * u2, u * uFontHeight,
				cBuff, 2);

			//
			// paint character
			//
			if (stat.bCaretVisible &&
				stat.posCaret.dwOffset == dwOffset &&
				!stat.posCaret.bTextSection)
				SelectObject(hdcBuff, hFontU);
			else
				SelectObject(hdcBuff, hFont);

			if (byCur < 0x20)
				lstrcpy(cBuff, ".");
			else
				wsprintf(cBuff, "%c", byCur);
			TextOut(hdcBuff,
				CHARS_X + u2 * uFontWidth, u * uFontHeight,
				cBuff, 1);

			//
			// draw sel
			//
			if (stat.bSel &&
				dwOffset >= stat.dwOffSelStart &&
				dwOffset <= stat.dwOffSelEnd)
			{
				if (dwOffset == stat.dwOffSelEnd ||
					dwOffset % 16 == 15)
					icySel = uFontWidth * 2;
				else
					icySel = DIGIT_PAIR_WIDTH;

				// sel pair
				BitBlt(hdcBuff,
					PAIRS_X + u2 * DIGIT_PAIR_WIDTH,
					u * uFontHeight,
					icySel,
					uFontHeight,
					hdcBuff,
					PAIRS_X + u2 * DIGIT_PAIR_WIDTH,
					u * uFontHeight,
					NOTSRCCOPY);

				// sel char
				BitBlt(hdcBuff,
					CHARS_X + u2 * uFontWidth,
					u * uFontHeight,
					uFontWidth,
					uFontHeight,
					hdcBuff,
					CHARS_X + u2 * uFontWidth,
					u * uFontHeight,
					NOTSRCCOPY);
			}

			// adjust vars
			++dwOffset;
		}
	}

	//
	// SB stuff
	//

	// paint SB text
	SetTextColor(hdcBuff, RGB_SBGRAY);
	SelectObject(hdcBuff, hFont);
	TextOut(hdcBuff, 2, rct.bottom - SB_HEIGHT - 28, cSBText, lstrlen(cSBText) );

	// copy buffer content to client area
	BitBlt(hDC,
		rct.left,
		rct.top + iyHETop,
		rct.right - rct.left,
		rct.bottom - rct.top - iyHETop,
		hdcBuff,
		0, 0, SRCCOPY);

	// cleanup
	SelectObject(hdcBuff, hobjOld);
	DeleteDC(hdcBuff);
	DeleteObject(hBmp);

	EndPaint(hWnd, &ps);

	return TRUE; // OK
}

//
// paints only one offset
// (used to avoid flickering)
//
/*
BOOL HexEditWnd::PaintOffset(HWND hWnd, PHE_POS ppos)
{
	HDC           hDC;
	PAINTSTRUCT   ps;
	DWORD         dwDelta;
	UINT          uLine, uPair;
	char          cBuff[10];
	BYTE          *pby;
	RECT          rct;

	// sth to paint ?
	if (!diData.dwSize)
		return FALSE; // ERR

	// in visible range ?
	if (!IsOffsetVisible(ppos->dwOffset))
		return FALSE; // ERR

	//
	// paint
	//
	pby = (BYTE*)((DWORD)diData.pDataBuff + ppos->dwOffset);
	dwDelta = ppos->dwOffset - stat.dwCurOffset;
	uLine   = dwDelta / uFontHeight;
	uPair   = dwDelta % 16;	

	//hDC = BeginPaint(hWnd, &ps);
	//SetBkMode(hDC, TRANSPARENT);

	// pair
	if (stat.bCaretVisible &&
		stat.posCaret.dwOffset == ppos->dwOffset &&
		stat.posCaret.bTextSection)
		SelectObject(hDC, hFontU);
	else
		SelectObject(hDC, hFont);
	wsprintf(cBuff, H2, *pby);
	TextOut(hDC,
		PAIRS_X + uPair * DIGIT_PAIR_WIDTH,
		uLine * uFontHeight,
		cBuff, 2);

	// character
	if (stat.bCaretVisible &&
		stat.posCaret.dwOffset == ppos->dwOffset &&
		!stat.posCaret.bTextSection)
		SelectObject(hDC, hFontU);
	else
		SelectObject(hDC, hFont);
	wsprintf(cBuff, "%c", *pby);
	TextOut(hDC,
		CHARS_X + uPair * uFontWidth,
		uLine * uFontHeight,
		cBuff, 1);

	//
	// invalidate region at pair and char
	//
	ValidateRect(hWnd, NULL);
	rct.left   = PAIRS_X + uPair * DIGIT_PAIR_WIDTH;
	rct.right  = PAIRS_X + uPair * DIGIT_PAIR_WIDTH + 2 * uFontWidth;
	rct.top    = uLine * uFontHeight;
	rct.bottom = (uLine + 1) * uFontHeight;
	InvalidateRect(hWnd, &rct, TRUE);

	rct.left   = CHARS_X + uPair * uFontWidth;
	rct.right  = CHARS_X + (uPair + 1) * uFontWidth;
	rct.top    = uLine * uFontHeight;
	rct.bottom = (uLine + 1) * uFontHeight;
	InvalidateRect(hWnd, &rct, TRUE);

	//PaintText(hWnd);

	//EndPaint(hWnd, &ps);

	return TRUE;
}
*/

void HexEditWnd::HEHandleWM_SETFOCUS(HWND hWnd)
{
	//
	// handle caret stuff
	//
	CreateCaret(hWnd, NULL, uFontWidth, uFontHeight);
	SetCaretSet(TRUE);
	if (stat.bCaretPosValid)
		SetCaret(&stat.posCaret);

	return;
}
void HexEditWnd::HEHandleWM_KILLFOCUS(HWND hWnd)
{
	//
	// handle caret stuff
	//
	if (!stat.bCaretVisible)
		HideCaret(hWnd);
    DestroyCaret();
	SetCaretSet(FALSE);
	stat.bCaretVisible = FALSE;

	return;
}

//
// save new caret pos and repaints
//
// returns:
// FALSE - mainly if the caret was hidden because it's not in the current visible range
//
BOOL HexEditWnd::SetCaret(PHE_POS ppos)
{
	BOOL     bRet = FALSE;
	DWORD    dwOffDelta;
	UINT     uxPair, uyLine, ux;

	if (IsOutOfRange(ppos))
		return FALSE; // ERR

	SetCaretPosData(ppos);

	if (stat.bSel)
		return FALSE; // ERR

	// new pos in current range?
	if (!IsOffsetVisible(ppos->dwOffset))
	{
		if (stat.bCaretVisible)
			HideCaret(hMainWnd);
		stat.bCaretVisible = FALSE;
		return FALSE; // ERR
	}

	dwOffDelta = ppos->dwOffset - stat.dwCurOffset;
	uyLine = dwOffDelta / 16;
	uxPair = dwOffDelta % 16;

	// caret in the text section ?
	if (ppos->bTextSection)
	{
		bRet = SetCaretPos(
			CHARS_X + uFontWidth * uxPair,
			uyLine * uFontHeight + iyHETop);
	}
	else
	{
		ux = PAIRS_X + uxPair * DIGIT_PAIR_WIDTH;
		if (!ppos->bHiword)
			ux += uFontWidth;
		bRet = SetCaretPos(
			ux,
			uyLine * uFontHeight + iyHETop);
	}
	if (bRet)
	{
		if (!stat.bCaretVisible)
			ShowCaret(hMainWnd);
		stat.bCaretVisible   = TRUE;
		stat.bCaretPosValid  = TRUE;

		SetCaretSelInfoToStatus();
		RepaintClientArea();

		return TRUE; // OK
	}
	else
		return FALSE; // ERR
}

//
// overloaded
//
BOOL HexEditWnd::SetCaret(DWORD dwOffset)
{
	HE_POS  posNew;

	if (IsOutOfRange(dwOffset))
		return FALSE; // ERR

	posNew.bHiword      = TRUE;
	posNew.bTextSection = FALSE;
	posNew.dwOffset     = dwOffset;

	return SetCaret(&posNew);
}

//
// overloaded
//
BOOL HexEditWnd::SetCaret()
{
	return SetCaret(&stat.posCaret);
}

//
// checks whether an Offset is currently visible in the GUI
//
BOOL HexEditWnd::IsOffsetVisible(DWORD dwOffset)
{
	DWORD dwBytes2C;

	// out of mem range ?
	if (dwOffset >= diData.dwSize)
		return FALSE; // ERR

	// out of visible range ?
	dwBytes2C = 16 * uMaxLines;
	if (dwBytes2C + stat.dwCurOffset > diData.dwSize)
		dwBytes2C = diData.dwSize - stat.dwCurOffset;

	if (dwOffset >= stat.dwCurOffset &&
		dwOffset <  stat.dwCurOffset + dwBytes2C)
		return TRUE; // OK
	else
		return FALSE; // ERR
}

BOOL HexEditWnd::HESetFont(HFONT hf)
{
	TEXTMETRIC  tm;
	HDC         hDC;
	BOOL        bRet = FALSE;

	hDC = GetDC(hMainWnd);
	if (!hDC)
		return FALSE; // FAILURE
	SelectObject(hDC, hf);
	if (!GetTextMetrics(hDC, &tm))
		goto Exit; // FAILURE

	uFontHeight = tm.tmHeight;
	uFontWidth  = tm.tmAveCharWidth;

	SendMessage(hMainWnd, WM_SETFONT, (WPARAM)HEdit.hFont, 0);

Exit:
	ReleaseDC(hMainWnd, hDC);

	return bRet; // EXIT
}

void HexEditWnd::HEHandleWM_SIZE(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
	RECT              rct;
	UINT              uWidth, uHeight;

	// save pos
	if ( wParam != SIZE_MINIMIZED &&
		 wParam != SIZE_MAXIMIZED)
		 GetWindowRect( hWnd, &rctLastPos );

	//
	// handle HE_SET_MINIMIZETOTRAY
	//
	if (bMinToTray)
	{
		if (wParam == SIZE_MINIMIZED)
		{
			HEditToTray();
			return; // RET
		}
	}

	// wnd size info -> vars
	uWidth = LOWORD(lParam);
	uHeight = HIWORD(lParam); 

	if (uFontHeight) // avoid division through 0
	{
		// calc max lines
		uMaxLines = (uHeight - iyHETop - SB_HEIGHT) / uFontHeight;

		// bottom of HE
		GetClientRect(hWnd, &rct);
		HEdit.iyHEBottom = rct.bottom - SB_HEIGHT;

		// get HE rect
		rctHE.top     = iyHETop;
		rctHE.bottom  = iyHEBottom;
		rctHE.left    = 0;
		rctHE.right   = CHARS_X + 16 * uFontWidth;
	}

	// resize TB
	SendMessage(hTB, TB_AUTOSIZE, 0, 0);

	return; // RET
}

//
// install tray icon + hide main win
//
BOOL HexEditWnd::HEditToTray()
{
	char *pch;

	// add tray icon
	ZERO(nidTray);

	// build tip
	nidTray.cbSize            = sizeof(nidTray);

	lstrcpy(nidTray.szTip, HEDIT_TRAY_TIP);
	if ( IsFileInput() )
	{
		pch = CPathString::ExtractFileName( fInput.GetFilePath() );
		if (pch)
			if (sizeof(nidTray.szTip) - sizeof(HEDIT_TRAY_TIP) - 3 >= lstrlen(pch) )
			{
				lstrcat(nidTray.szTip, " - ");
				lstrcat(nidTray.szTip, pch);
				lstrlen(nidTray.szTip);
			}
	}
	else
	{
		lstrcat(nidTray.szTip, " - ");
		lstrcat(nidTray.szTip, szMemoryBuff);
	}

	nidTray.hWnd              = hMainWnd;
	nidTray.uID               = ID_TRAYICON;
	nidTray.uFlags            = NIF_TIP | NIF_ICON | NIF_MESSAGE;
	nidTray.hIcon             = (HICON)GetClassLong(hMainWnd, GCL_HICON);
	nidTray.uCallbackMessage  = WM_TRAYMENU;
	if (!Shell_NotifyIcon(NIM_ADD, &nidTray))
		return FALSE; // ERR

	// hide win
	ShowWindow(hMainWnd, SW_HIDE);

	return TRUE; // OK
}

BOOL HexEditWnd::HEditKillTrayIcon()
{
	return Shell_NotifyIcon(NIM_DELETE, &nidTray);
}

//
// kill tray icon + show main win
//
BOOL HexEditWnd::HEditReturnFromTray()
{
	// kill tray icon
	if (!HEditKillTrayIcon())
		return FALSE; // ERR

	// show win
	ShowWindow(hMainWnd, SW_RESTORE);
	HEditToTop();

	return TRUE; // OK
}

BOOL HexEditWnd::HEHandleLButton(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	POINT   pClick;
	HE_POS  pos;
	DWORD   dwOldOff;
	BOOL    bSel;

	pClick.x = LOWORD(lParam);
	pClick.y = HIWORD(lParam);

	switch(uMsg)
	{
	case WM_LBUTTONDOWN:
		if (!PointToPos(&pClick, &pos))
		{
			stat.bLastLBDownPos = FALSE;
			return FALSE; // ERR
		}

		stat.bMouseSelecting = TRUE;
		dwOldOff = stat.posCaret.dwOffset;
		stat.posLastLButtonDown = pos;
		stat.bLastLBDownPos = TRUE;
		bSel = KillSelection();
		SetCaret(&pos);
		if (bSel)
			break;

		// handle shift key actions ?
		if ( TESTBIT(wParam, MK_SHIFT) && stat.bCaretPosValid )
			SetSelection( dwOldOff, pos.dwOffset );
		break;

	case WM_LBUTTONUP:
		stat.bMouseSelecting = FALSE;
		break;
	}

	return TRUE; // OK
}

//
// converts a POINT struct to a HE_POS struct
//
// returns:
// FALSE - if POINT is neither in the pair field nor in the text field
//
BOOL HexEditWnd::PointToPos(IN POINT *pp, OUT PHE_POS ppos)
{
	UINT  uLine, uPair, uxCurPair;

	memset(ppos, 0, sizeof(HE_POS));

	// in digit pair field ?
	if ((DWORD)pp->x >= PAIRS_X &&
		(DWORD)pp->x <  PAIRS_X + 16 * DIGIT_PAIR_WIDTH &&
		(DWORD)pp->y >= iyHETop &&
		(DWORD)pp->y <  iyHETop + uMaxLines * uFontHeight)
	{
		uLine =  ((DWORD)pp->y - iyHETop) / uFontHeight;
		uPair =  pp->x - PAIRS_X;
		uPair /= DIGIT_PAIR_WIDTH;

		// x in space between digit pairs ?
		uxCurPair = PAIRS_X + uPair * DIGIT_PAIR_WIDTH; // -> x pos of cur pair
		if ((UINT)pp->x > uxCurPair + 2*uFontWidth)
		{
			// last pair of the line ?
			if (uPair == 0xF)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩三级高清在线| 日韩女同互慰一区二区| 国产伦理精品不卡| 成人精品国产福利| 99re这里只有精品6| 日本韩国欧美三级| 欧美猛男男办公室激情| 久久久蜜臀国产一区二区| 日韩区在线观看| 一区二区三区日韩精品| 免费看黄色91| 91丨九色丨国产丨porny| 欧美精品丝袜久久久中文字幕| 91精品麻豆日日躁夜夜躁| 在线不卡a资源高清| 中文天堂在线一区| 日韩不卡一二三区| 99精品国产热久久91蜜凸| 7777精品伊人久久久大香线蕉经典版下载| 免费久久精品视频| 一本色道综合亚洲| 日韩免费成人网| 亚洲一区二区偷拍精品| 国产精品一区二区三区99| 免费在线看一区| 欧美少妇性性性| 国产农村妇女精品| 精品一区二区三区在线播放视频 | 久久久亚洲午夜电影| 中文字幕一区二区三区av | 色哟哟国产精品| 欧美精品亚洲二区| 亚洲男女一区二区三区| 福利一区二区在线| 精品国产百合女同互慰| 亚洲v精品v日韩v欧美v专区| 国产一区二区h| 欧美日韩国产高清一区| 亚洲欧美日韩国产中文在线| 国产超碰在线一区| 日韩一区二区三区免费观看| 洋洋成人永久网站入口| 极品少妇xxxx精品少妇偷拍| 555夜色666亚洲国产免| 亚洲午夜视频在线| 色香蕉成人二区免费| 欧美一区二区三区色| 香蕉av福利精品导航| 福利一区二区在线| 亚洲国产高清aⅴ视频| 国产裸体歌舞团一区二区| 日韩精品一区二区在线观看| 日韩精品一区第一页| 午夜影院久久久| 欧美影院精品一区| 五月天一区二区| 精品嫩草影院久久| 国内精品久久久久影院色| 精品国产一区久久| 久久99国产精品久久99果冻传媒| 精品国产网站在线观看| 国产真实精品久久二三区| 国产午夜精品一区二区三区嫩草| 热久久一区二区| 日韩欧美一级精品久久| 亚洲精品视频在线观看网站| 欧美区在线观看| 岛国精品在线观看| 午夜精品国产更新| 中文一区二区完整视频在线观看 | 精品三级av在线| 99久久精品久久久久久清纯| 五月天激情小说综合| 国产清纯在线一区二区www| 欧美系列亚洲系列| 成人午夜视频福利| 青草国产精品久久久久久| 中文字幕日韩一区| 日韩天堂在线观看| 色偷偷一区二区三区| 黑人精品欧美一区二区蜜桃| 一区二区三区高清在线| 久久在线观看免费| 欧美色成人综合| 成人激情小说乱人伦| 狠狠狠色丁香婷婷综合激情| 一区二区三区在线免费| 久久婷婷国产综合国色天香| 欧美顶级少妇做爰| 91国偷自产一区二区三区成为亚洲经典| 久久精品国产精品亚洲红杏| 亚洲国产精品久久人人爱| 国产精品国模大尺度视频| 久久久99精品免费观看不卡| 99久久精品国产一区| 国产麻豆成人精品| 日韩专区在线视频| 一区二区三区在线观看网站| 国产精品视频免费| 久久综合色播五月| 日韩一级片网站| 欧美日韩国产成人在线免费| 在线观看欧美精品| 97国产一区二区| bt欧美亚洲午夜电影天堂| 国产美女av一区二区三区| 美腿丝袜亚洲一区| 奇米影视在线99精品| 日韩中文字幕区一区有砖一区| 一区二区三区日韩精品视频| 亚洲人成精品久久久久| 国产精品国产自产拍高清av王其| 国产欧美日韩在线视频| 国产色婷婷亚洲99精品小说| 精品成人一区二区| 精品福利视频一区二区三区| 精品免费视频一区二区| 欧美一级欧美三级| 欧美电视剧免费观看| 精品国产乱码久久久久久牛牛| 欧美变态口味重另类| 精品国产一区二区三区四区四| 日韩精品影音先锋| 精品日韩一区二区| 国产欧美一区二区精品忘忧草| 国产亚洲一区二区三区四区 | 91精品欧美福利在线观看| 欧美图区在线视频| 欧美精品色一区二区三区| 3atv一区二区三区| 日韩精品一区二区三区三区免费| 日韩精品一区二区三区视频播放 | 国产精品不卡一区二区三区| 亚洲女同女同女同女同女同69| 亚洲精品自拍动漫在线| 午夜精品久久久久影视| 久久97超碰色| 99国产精品一区| 欧美日韩一区小说| 精品日韩一区二区| 国产精品二三区| 亚洲大型综合色站| 国产精品资源网| 欧美在线观看一区二区| 日韩美女在线视频 | 三级久久三级久久| 国产综合色产在线精品| 99re视频这里只有精品| 3atv一区二区三区| 中文字幕不卡在线| 日本aⅴ亚洲精品中文乱码| 国产成人在线观看免费网站| 色天使色偷偷av一区二区| 91精品国产综合久久香蕉麻豆| 国产婷婷一区二区| 亚洲国产成人av网| 国产乱子伦视频一区二区三区 | 国产偷v国产偷v亚洲高清| 免费看欧美女人艹b| 成人亚洲一区二区一| 91成人免费在线视频| 亚洲欧美偷拍卡通变态| 972aa.com艺术欧美| 亚洲高清免费视频| 91久久精品一区二区二区| 中文字幕第一区综合| 成人黄色小视频| 亚洲天堂免费在线观看视频| 欧美在线免费视屏| 日韩**一区毛片| 亚洲卡通动漫在线| av激情亚洲男人天堂| 精品国产一区久久| 成熟亚洲日本毛茸茸凸凹| 欧美日韩一区成人| 亚洲精品老司机| 欧美精品一二三| 国产精品亚洲视频| 亚洲风情在线资源站| 欧美成人精品福利| 欧美美女一区二区| 免费久久精品视频| 久久不见久久见免费视频1| 麻豆91在线播放| 麻豆极品一区二区三区| 国产一区二区不卡老阿姨| 国产91丝袜在线播放九色| 国产麻豆视频精品| 成人中文字幕合集| 日本韩国一区二区三区视频| 欧美在线观看你懂的| 99久久精品国产网站| 另类综合日韩欧美亚洲| 亚洲黄色尤物视频| 精品成人一区二区| 国产欧美中文在线| 精品国产一区二区三区久久影院| 欧美视频一区二区三区| 不卡电影免费在线播放一区| 麻豆国产精品官网|