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

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

?? msghandler.cpp

?? WinCE4.0的COM組件.工業控制專用軟鍵盤
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include "stdafx.h"
#include "Defination.h"
#include <keybd.h>				//include keystroke and status information


///////////////////////////////////////////////////////////////////////////////////////
//																					 //
//					*** Definition of the SIP Configuration ***						 //
//																					 //
///////////////////////////////////////////////////////////////////////////////////////	

KEYBUTTON BTNMAP[4][12] =
{
	// 1st row
	{
		{MRGN,					   MRGN, 
			MRGN+WDTH_ESC-MRGN, MRGN+HGHT, VK_ESCAPE, VK_ESCAPE, _T('E')}, // ESCAPE

		{MRGN+WDTH_ESC,			   MRGN, 
			MRGN*2+WDTH+WDTH_ESC,     MRGN+HGHT,'1', '1', _T('1'), _T('1')},	
		{MRGN*3+WDTH_ESC+WDTH,     MRGN, 
			MRGN*3+WDTH*2+WDTH_ESC,   MRGN+HGHT,'2', '2', _T('2'), _T('2')},	
		{MRGN*4+WDTH_ESC+WDTH*2,   MRGN, 
			MRGN*4+WDTH*3+WDTH_ESC,   MRGN+HGHT,'3', '3', _T('3'), _T('3')},	
		{MRGN*5+WDTH_ESC+WDTH*3,   MRGN, 
			MRGN*5+WDTH*4+WDTH_ESC,   MRGN+HGHT,'4', '4', _T('4'), _T('4')},	
		{MRGN*6+WDTH_ESC+WDTH*4,   MRGN, 
			MRGN*6+WDTH*5+WDTH_ESC,   MRGN+HGHT,'5', '5', _T('5'), _T('5')},	
		{MRGN*7+WDTH_ESC+WDTH*5,   MRGN, 
			MRGN*7+WDTH*6+WDTH_ESC,   MRGN+HGHT,'6', '6', _T('6'), _T('6')},	
		{MRGN*8+WDTH_ESC+WDTH*6,   MRGN, 
			MRGN*8+WDTH*7+WDTH_ESC,   MRGN+HGHT,'7', '7', _T('7'), _T('7')},	
		{MRGN*9+WDTH_ESC+WDTH*7,   MRGN, 
			MRGN*9+WDTH*8+WDTH_ESC,   MRGN+HGHT,'8', '8', _T('8'), _T('8')},	
		{MRGN*10+WDTH_ESC+WDTH*8,  MRGN, 
			MRGN*10+WDTH*9+WDTH_ESC,  MRGN+HGHT,'9', '9', _T('9'), _T('9')},	
		{MRGN*11+WDTH_ESC+WDTH*9,  MRGN, 
			MRGN*11+WDTH*10+WDTH_ESC, MRGN+HGHT,'0', '0', _T('0'), _T('0')},	

		{MRGN*13+WDTH_ESC+WDTH*10, MRGN, 
			MRGN*12+WDTH*10+WDTH_ESC+WDTH_BAK, MRGN+HGHT,VK_BACK, VK_BACK, 
			_T('B'), _T('B')}, // BACKSPACE	
	},

	// 2nd row
	{
		{MRGN+WDTH_ESC*1.5,			   MRGN*2+HGHT, 
			MRGN*2+WDTH+WDTH_ESC*1.5,     MRGN*2+HGHT*2,'q', 'Q', _T('q'), _T('Q')},	
		{MRGN*3+WDTH_ESC*1.5+WDTH,     MRGN*2+HGHT, 
			MRGN*3+WDTH*2+WDTH_ESC*1.5,   MRGN*2+HGHT*2,'w', 'W', _T('w'), _T('W')},	
		{MRGN*4+WDTH_ESC*1.5+WDTH*2,   MRGN*2+HGHT, 
			MRGN*4+WDTH*3+WDTH_ESC*1.5,   MRGN*2+HGHT*2,'e', 'E', _T('e'), _T('E')},	
		{MRGN*5+WDTH_ESC*1.5+WDTH*3,   MRGN*2+HGHT, 
			MRGN*5+WDTH*4+WDTH_ESC*1.5,   MRGN*2+HGHT*2,'r', 'R', _T('r'), _T('R')},	
		{MRGN*6+WDTH_ESC*1.5+WDTH*4,       MRGN*2+HGHT, 
			MRGN*6+WDTH*5+WDTH_ESC*1.5,   MRGN*2+HGHT*2,'t', 'T', _T('t'), _T('T')},	
		{MRGN*7+WDTH_ESC*1.5+WDTH*5,   MRGN*2+HGHT, 
			MRGN*7+WDTH*6+WDTH_ESC*1.5,   MRGN*2+HGHT*2,'y', 'Y', _T('y'), _T('Y')},	
		{MRGN*8+WDTH_ESC*1.5+WDTH*6,   MRGN*2+HGHT, 
			MRGN*8+WDTH*7+WDTH_ESC*1.5,   MRGN*2+HGHT*2,'u', 'U', _T('u'), _T('U')},	
		{MRGN*9+WDTH_ESC*1.5+WDTH*7,   MRGN*2+HGHT, 
			MRGN*9+WDTH*8+WDTH_ESC*1.5,   MRGN*2+HGHT*2,'i', 'I', _T('i'), _T('I')},	
		{MRGN*10+WDTH_ESC*1.5+WDTH*8,  MRGN*2+HGHT,
			MRGN*10+WDTH*9+WDTH_ESC*1.5,  MRGN*2+HGHT*2,'o', 'O', _T('o'), _T('O')},	
		{MRGN*11+WDTH_ESC*1.5+WDTH*9,  MRGN*2+HGHT, 
			MRGN*11+WDTH*10+WDTH_ESC*1.5, MRGN*2+HGHT*2,'p', 'P', _T('p'), _T('P')},	
	},

	// 3rd row
	{
		{MRGN,					   MRGN*3+HGHT*2, 
			MRGN+WDTH_CAP-MRGN, MRGN*3+HGHT*3, VK_CAPITAL, VK_CAPITAL,
			_T('C'), _T('C')}, // CAPSLOCK

		{MRGN+WDTH_CAP,			   MRGN*3+HGHT*2,
			MRGN*2+WDTH+WDTH_CAP,     MRGN*3+HGHT*3, 'a', 'A', _T('a'), _T('A')},	
		{MRGN*3+WDTH_CAP+WDTH,     MRGN*3+HGHT*2,
			MRGN*3+WDTH*2+WDTH_CAP,   MRGN*3+HGHT*3, 's', 'S', _T('s'), _T('S')},	
		{MRGN*4+WDTH_CAP+WDTH*2,   MRGN*3+HGHT*2,
			MRGN*4+WDTH*3+WDTH_CAP,   MRGN*3+HGHT*3, 'd', 'D', _T('d'), _T('D')},	
		{MRGN*5+WDTH_CAP+WDTH*3,   MRGN*3+HGHT*2,
			MRGN*5+WDTH*4+WDTH_CAP,   MRGN*3+HGHT*3, 'f', 'F', _T('f'), _T('F')},	
		{MRGN*6+WDTH_CAP+WDTH*4,   MRGN*3+HGHT*2, 
			MRGN*6+WDTH*5+WDTH_CAP,   MRGN*3+HGHT*3, 'g', 'G', _T('g'), _T('G')},	
		{MRGN*7+WDTH_CAP+WDTH*5,   MRGN*3+HGHT*2,
			MRGN*7+WDTH*6+WDTH_CAP,   MRGN*3+HGHT*3, 'h', 'H', _T('h'), _T('H')},	
		{MRGN*8+WDTH_CAP+WDTH*6,   MRGN*3+HGHT*2,
			MRGN*8+WDTH*7+WDTH_CAP,   MRGN*3+HGHT*3, 'j', 'J', _T('j'), _T('J')},	
		{MRGN*9+WDTH_CAP+WDTH*7,   MRGN*3+HGHT*2,
			MRGN*9+WDTH*8+WDTH_CAP,   MRGN*3+HGHT*3, 'k', 'K', _T('k'), _T('K')},	
		{MRGN*10+WDTH_CAP+WDTH*8,  MRGN*3+HGHT*2,
			MRGN*10+WDTH*9+WDTH_CAP,  MRGN*3+HGHT*3, 'l', 'L', _T('l'), _T('L')},	

		{MRGN*11+WDTH_CAP+WDTH*9, MRGN*3+HGHT*2,
			MRGN*12+WDTH*9+WDTH_CAP+WDTH_RTN_2, MRGN*3+HGHT*3,
			VK_RETURN, VK_RETURN, _T('R'), _T('R')}, // RETURN	
	},

	// 4th row
	{
		{MRGN+WDTH_ESC*2.5,			   MRGN*4+HGHT*3, 
			MRGN*2+WDTH+WDTH_ESC*2.5,     MRGN*4+HGHT*4,'z', 'Z', _T('z'), _T('Z')},	
		{MRGN*3+WDTH_ESC*2.5+WDTH,     MRGN*4+HGHT*3, 
			MRGN*3+WDTH*2+WDTH_ESC*2.5,   MRGN*4+HGHT*4,'x', 'X', _T('x'), _T('X')},	
		{MRGN*4+WDTH_ESC*2.5+WDTH*2,   MRGN*4+HGHT*3, 
			MRGN*4+WDTH*3+WDTH_ESC*2.5,   MRGN*4+HGHT*4,'c', 'C', _T('c'), _T('C')},	
		{MRGN*5+WDTH_ESC*2.5+WDTH*3,   MRGN*4+HGHT*3, 
			MRGN*5+WDTH*4+WDTH_ESC*2.5,   MRGN*4+HGHT*4,'v', 'V', _T('v'), _T('V')},	
		{MRGN*6+WDTH_ESC*2.5+WDTH*4,   MRGN*4+HGHT*3, 
			MRGN*6+WDTH*5+WDTH_ESC*2.5,   MRGN*4+HGHT*4,'b', 'B', _T('b'), _T('B')},	
		{MRGN*7+WDTH_ESC*2.5+WDTH*5,   MRGN*4+HGHT*3, 
			MRGN*7+WDTH*6+WDTH_ESC*2.5,   MRGN*4+HGHT*4,'n', 'N', _T('n'), _T('N')},	
		{MRGN*8+WDTH_ESC*2.5+WDTH*6,   MRGN*4+HGHT*3, 
			MRGN*8+WDTH*7+WDTH_ESC*2.5,   MRGN*4+HGHT*4,'m', 'M', _T('m'), _T('M')},	
		{MRGN*9+WDTH_ESC*2.5+WDTH*7,   MRGN*4+HGHT*3, 
			MRGN*9+WDTH*8+WDTH_ESC*2.5,   MRGN*4+HGHT*4,'.', '.', _T('.'), _T('.')},
			
		{MRGN*12+WDTH_ESC*2.5+WDTH*8, MRGN*4+HGHT*3, 
			MRGN*12+WDTH*8+WDTH_ESC*2.5+WDTH_SPC, MRGN*4+HGHT*4, VK_SPACE,
			VK_SPACE, _T('S'), _T('S')}, // SPACE	
	},
};



HINSTANCE hInst; 

HWND CreateIMWindow (HWND hwndParent) 
{
    WNDCLASS wc;
    RECT rect;
    HWND hwnd;
	
    // Register InputMethod window class.
    memset (&wc, 0, sizeof (wc));
    wc.style = CS_DBLCLKS | CS_VREDRAW | CS_HREDRAW ;//| CS_PARENTDC;
    wc.lpfnWndProc = NPWndProc;               // Callback function
    wc.hInstance = hInst;                     // Owner handle
    wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
    wc.lpszClassName = MYSIPCLS;              // Window class name
    if (RegisterClass (&wc) == 0) return 0;

    // Create InputMethod window.  
    GetClientRect (hwndParent, &rect);
    hwnd = CreateWindowEx (0, MYSIPCLS, _T(""), 
                  WS_VISIBLE | WS_CHILD | WS_BORDER, rect.left, 
                  rect.top, rect.right - rect.left, 
                  rect.bottom - rect.top, hwndParent, (HMENU)100, 
                  hInst, 0);
    if (!IsWindow (hwnd))
        return 0;
    return hwnd;
}

int DestroyIMWindow (HWND hwnd) 
{
    // Clean up the window. 
    DestroyWindow (hwnd);
    UnregisterClass (MYSIPCLS, hInst);
    return 0;
}

LRESULT CALLBACK NPWndProc (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam) 
{
    INT  i;

    // Call routine to handle control message.
    for (i = 0; i < dim(SipMessages); i++) 
	{
        if (wMsg == SipMessages[i].Code)
            return (*SipMessages[i].Fxn)(hWnd, wMsg, wParam, lParam);
    }
    return DefWindowProc (hWnd, wMsg, wParam, lParam);
}

LRESULT CALLBACK OnDestroy (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam) 
{
    LPSIPWNDSTRUCT pWndData;
    
    pWndData = (LPSIPWNDSTRUCT)GetWindowLong (hWnd, GWL_USERDATA);
    LocalFree (pWndData);
    return 0;
}


//////////////////////////////////////////////////////////////////////////////
//																			//
//			*** Handle the BUTTON and MOUSE messages ***					//
//																			//
//		1. Identify whether and which key is pressed;						//
//		2. Get the Window Message and pass to corresponding process;		//
//		3. If key is pressed, Send Virtual Key to Windows.					//
//																			//
//////////////////////////////////////////////////////////////////////////////

LRESULT CALLBACK OnTouch (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam) 
{
    RECT			rect;
	RECT			rcAllChars= {MRGN+WDTH_ESC*1.5,		 MRGN*2+HGHT, 
								MRGN*11+WDTH*10+WDTH_ESC*1.5, MRGN*4+HGHT*4};
    INT				iRowPrev, iColPrev, iRow, iCol, x, y;
    UINT			nChar, nShiftFlags = 0;
	BOOL			bPressed;
    LPSIPWNDSTRUCT  pWndData;
	UINT			nChar2;
	KEY_STATE_FLAGS nShiftState;	

    pWndData = (LPSIPWNDSTRUCT)GetWindowLong (hWnd, GWL_USERDATA);

	iRowPrev = pWndData->iRowPrev;
	iColPrev = pWndData->iColPrev;
    // Compute the button grid.
    GetClientRect (hWnd, &rect);

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


	// Identify the Pressed Key 
	// Index of Row
	if(y <= 33) 		iRow = 0;
	else if(y <= 66)	iRow = 1;
	else if(y <= 99)	iRow = 2;
	else				iRow = 3;

	// Index of Column
	switch(iRow)
	{
	case 0:
		if(x <=WDTH_ESC)
		{
			iCol=0;
			break;
		}
		iCol = (x-WDTH_ESC) / (MRGN+WDTH)+1;
		if(iCol>11) iCol=11;
		break;
	case 1:
		if(x<WDTH_ESC*1.5)
		{
			iCol = -1;
			break;
		}
		iCol = (x-WDTH_ESC*1.5) /(MRGN+WDTH);
		if(iCol>8 && x>=MRGN*11+WDTH_CAP+WDTH*9+WDTH_RTN_2/2)
			iRow = 2, iCol = 10;
		break;
	case 2:
		if(x<=WDTH_CAP)
		{
			iCol=0;
			break;
		}
		iCol = (x-WDTH_CAP) / (MRGN+WDTH)+1;
		if(iCol>10) iCol=10;
		break;
	case 3:
		if(x<MRGN+WDTH_ESC*2.5)
		{
			iCol = -1;
			break;
		}
		iCol = (x-MRGN-WDTH_ESC*2.5) / (MRGN+WDTH);
		if(iCol>8) iCol=8;
	default:
		break;
	}

	if(iCol == -1)
		return 0;
	// Identification Over 

    // Do message-specific processing.
    switch (wMsg) 
	{
    case WM_LBUTTONDOWN:
        SetCapture (hWnd);
    case WM_MOUSEMOVE:
		bPressed = TRUE;		        
        break;
    case WM_LBUTTONDBLCLK:		
    case WM_LBUTTONUP:
        if (pWndData->bPressed)
			ReleaseCapture();
		bPressed = FALSE;
		nChar = pWndData->bCapital? BTNMAP[iRow][iCol].keyVCharCap
				:BTNMAP[iRow][iCol].keyVChar;
		switch(nChar)
		{
		// case of [RETURN] input
		case VK_RETURN:
			nShiftState = KeyStateDownFlag; 
			nChar2 = '\xD'; 
			pWndData->pIMCallback->SendCharEvents(VK_RETURN, 0, 1, 
					&nShiftState, &nChar2); 
			nShiftState = KeyShiftNoCharacterFlag; 
			pWndData->pIMCallback->SendCharEvents(VK_RETURN, KeyStatePrevDownFlag, 
					1, &nShiftState, &nChar2); 
			break;
		// case of [BACKSPACE] input
		case VK_BACK:
			nShiftState = KeyStateDownFlag; 
			nChar2 = VK_BACK; 
			pWndData->pIMCallback->SendCharEvents(VK_BACK, 0, 1, 
					&nShiftState, &nChar2); 
			nShiftState = KeyShiftNoCharacterFlag; 
			pWndData->pIMCallback->SendCharEvents(VK_BACK, KeyStatePrevDownFlag, 
					1, &nShiftState, &nChar2); 
			break;
		// case of [ESCAPE] input
		case VK_ESCAPE:
			nShiftState = KeyStateDownFlag; 
			nChar2 = VK_ESCAPE; 
			pWndData->pIMCallback->SendCharEvents(VK_ESCAPE, 0, 1, 
					&nShiftState, &nChar2); 
			nShiftState = KeyShiftNoCharacterFlag; 
			pWndData->pIMCallback->SendCharEvents(VK_ESCAPE, KeyStatePrevDownFlag, 
					1, &nShiftState, &nChar2); 
			break;

		// case of [SPACE] input
		case VK_SPACE:
			nShiftState = KeyStateDownFlag; 
			nChar2 = ' '; 
			pWndData->pIMCallback->SendCharEvents(VK_SPACE, 0, 1, 
					&nShiftState, &nChar2); 
			nShiftState = KeyShiftNoCharacterFlag; 
			pWndData->pIMCallback->SendCharEvents(VK_SPACE, KeyStatePrevDownFlag, 
					1, &nShiftState, &nChar2); 
			break;

		// case of [CAPSLOCK] input
		case VK_CAPITAL:
			pWndData->bCapital = (pWndData->bCapital)?FALSE:TRUE;
			InvalidateRect(hWnd, &rcAllChars, FALSE);
			break;
		// case of symbol '.' input
		case '.':
        default:
		// case of character input
			nChar2 = pWndData->bCapital? (BTNMAP[iRow][iCol].keyTCharCap)
							: (BTNMAP[iRow][iCol].keyTChar);
			pWndData->pIMCallback->SendCharEvents(nChar,
							KeyStateDownFlag, 1, &nShiftFlags,	&nChar2);
		}
		break;
    } 

    // Decide how to repaint wnd. If there's only 1 btn changed, just 
    // invalidate that rect. Otherwise, invalidate entire wnd.
	// if the key visited this time is not the one visited at last scan
    if (!((iRow == iRowPrev) && (iCol == iColPrev)))
	{
		// redraw old button
		SetRect (&rect, BTNMAP[iRowPrev][iColPrev].left, 
				BTNMAP[iRowPrev][iColPrev].top,
				BTNMAP[iRowPrev][iColPrev].right, 
				BTNMAP[iRowPrev][iColPrev].bottom);
        InvalidateRect (hWnd, &rect, FALSE);
		// if at last scan [RETURN] is visited
		if(iRowPrev == 2 && iColPrev == 10)
		{
			RECT rc;
			rc.left		= rect.left + WDTH_RTN_2/2-2;
			rc.top		= rect.top - HGHT - MRGN*2;
			rc.bottom	= rect.top;
			rc.right	= rect.right+1;
			InvalidateRect (hWnd,&rc,FALSE);
		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区免费高清| 五月天网站亚洲| 午夜视频在线观看一区| 亚洲精品videosex极品| 亚洲丝袜精品丝袜在线| 亚洲欧美在线观看| 欧美高清在线精品一区| 国产精品网站一区| 国产精品久久久久久久久免费丝袜| 26uuu另类欧美| 久久亚洲综合av| 久久久久国产免费免费| 国产午夜精品理论片a级大结局| 精品久久久久久久久久久久久久久久久| 欧美久久久一区| 69p69国产精品| 日韩一级片在线播放| 日韩精品影音先锋| 精品国产乱码久久久久久久 | 亚洲免费在线视频一区 二区| ●精品国产综合乱码久久久久 | 日一区二区三区| 日本麻豆一区二区三区视频| 久久国产人妖系列| 国产精品夜夜嗨| 97久久精品人人澡人人爽| 色哟哟一区二区| 欧美日韩日日夜夜| 亚洲精品在线观看视频| 国产欧美一区二区三区鸳鸯浴 | 麻豆一区二区三区| 激情av综合网| 99久久夜色精品国产网站| 在线观看日韩电影| 欧美变态口味重另类| 欧美国产亚洲另类动漫| 亚洲激情男女视频| 另类综合日韩欧美亚洲| 风间由美性色一区二区三区| 91在线视频免费91| 在线成人午夜影院| 日本一区二区三区高清不卡| 伊人性伊人情综合网| 日本欧美加勒比视频| 懂色一区二区三区免费观看| 在线观看亚洲精品视频| 精品日韩欧美在线| 亚洲人成人一区二区在线观看| 日韩av在线播放中文字幕| 国产成人欧美日韩在线电影| 欧洲精品一区二区三区在线观看| 日韩女优制服丝袜电影| 国产精品白丝在线| 日本亚洲天堂网| 99riav一区二区三区| 日韩一区国产二区欧美三区| 国产精品久久久久久久第一福利| 在线看日本不卡| 久久久久久一级片| 亚洲成人先锋电影| 国产成人在线视频网址| 欧美色欧美亚洲另类二区| 日本一区二区免费在线观看视频| 亚洲观看高清完整版在线观看| 国产精品888| 欧美日韩在线播放三区四区| 国产片一区二区三区| 日韩电影一二三区| 91色.com| 国产拍揄自揄精品视频麻豆| 日韩成人精品在线观看| 色猫猫国产区一区二在线视频| 欧美精品一区二区在线播放| 午夜精品久久久久久久99樱桃| www.亚洲国产| 久久久99精品免费观看不卡| 日韩不卡一二三区| 在线免费视频一区二区| 亚洲欧美自拍偷拍色图| 国产精选一区二区三区| 欧美一区二区三区影视| 一区二区三区美女视频| 99久久精品免费看| 久久久久国产成人精品亚洲午夜| 日本三级韩国三级欧美三级| 欧美特级限制片免费在线观看| 综合色中文字幕| 成人动漫一区二区| 欧美激情艳妇裸体舞| 久久99精品久久久久久动态图| 在线成人午夜影院| 午夜精品久久久久久久| 欧美体内she精高潮| 一区二区三区四区国产精品| 99re在线精品| 亚洲色图.com| 91免费在线看| 亚洲精品国产品国语在线app| 99热这里都是精品| 中文字幕一区二区三区蜜月| 国产99精品国产| 国产精品天天摸av网| 国产成人精品综合在线观看 | 五月开心婷婷久久| 欧美日韩一二三| 亚洲成人福利片| 欧美高清视频不卡网| 欧美亚洲一区三区| 亚洲国产一区在线观看| 欧美性生活大片视频| 亚洲成人综合网站| 欧美精品1区2区3区| 免播放器亚洲一区| 日韩免费高清视频| 国产乱码一区二区三区| 国产欧美一区二区精品仙草咪| 懂色av中文字幕一区二区三区| 中文字幕不卡在线观看| 99久久精品久久久久久清纯| 亚洲美女屁股眼交| 欧美日韩国产一二三| 日本不卡123| 久久久亚洲精品石原莉奈| 丁香桃色午夜亚洲一区二区三区| 国产精品日韩精品欧美在线| 日本电影亚洲天堂一区| 舔着乳尖日韩一区| 26uuu另类欧美| 成人国产精品视频| 亚洲在线成人精品| 日韩欧美国产综合一区| 国产剧情在线观看一区二区 | 风间由美一区二区av101| 国产精品久久久久7777按摩| 色8久久精品久久久久久蜜 | 99re这里只有精品首页| 亚洲观看高清完整版在线观看| 日韩欧美久久久| 成人网男人的天堂| 一区二区三区国产精华| 日韩精品一区二区三区在线| 懂色av中文字幕一区二区三区| 亚洲最大色网站| 日韩三级视频在线观看| 波多野洁衣一区| 日韩成人dvd| 国产91精品久久久久久久网曝门| 亚洲青青青在线视频| 日韩色在线观看| 99久久99久久免费精品蜜臀| 日韩精品乱码av一区二区| 国产欧美精品一区二区色综合朱莉| 色婷婷av一区二区三区gif| 免费成人av在线| 综合在线观看色| 欧美精品一区视频| 欧美午夜理伦三级在线观看| 国内一区二区在线| 亚洲自拍偷拍九九九| 国产亚洲午夜高清国产拍精品| 在线这里只有精品| 国产福利一区二区三区视频 | 色综合激情久久| 精品一区二区三区在线观看| 一区二区三区中文字幕精品精品| 欧美va亚洲va国产综合| 日本韩国一区二区三区| 国产精品主播直播| 五月婷婷综合激情| 亚洲欧美色综合| 亚洲精品在线电影| 欧美精品乱码久久久久久| bt7086福利一区国产| 国产一区二区三区四区五区入口| 一区二区三区日韩欧美| 国产日韩av一区| 精品国产一区二区三区久久影院 | 国产精品一品二品| 日韩一区精品字幕| 一区二区三区欧美在线观看| 国产午夜精品久久久久久久 | 亚洲乱码精品一二三四区日韩在线| 精品噜噜噜噜久久久久久久久试看| 欧美性色aⅴ视频一区日韩精品| 成人免费毛片嘿嘿连载视频| 麻豆极品一区二区三区| 亚洲国产视频一区| 亚洲激情中文1区| 综合久久一区二区三区| 国产精品伦理一区二区| 久久综合色鬼综合色| 日韩一二三区视频| 91精品婷婷国产综合久久竹菊| 在线观看视频一区二区欧美日韩| 91农村精品一区二区在线| 成人激情校园春色| 高清不卡一二三区| 成人午夜激情影院| 国产·精品毛片| 成人免费看黄yyy456|