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

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

?? msgdetailview.cpp

?? 七號信令解碼器
?? CPP
字號:
// MsgDetailView.cpp : implementation of the CMsgDetailView class
//

#include "stdafx.h"
#include "MsgDetail.h"

#include "MsgDetailDoc.h"
#include "MsgDetailView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMsgDetailView
void SwipBytes(unsigned char* msg,int off,int count)
{
	byte b;
	for(int i=0;i<count;i+=2)
	{
		b=msg[off+i];
		msg[off+i]=msg[off+i+1];
		msg[off+i+1]=b;
	}
}

bool GetCharsFromUnicode(char* msg,unsigned char *buffer,int count)
{
	SwipBytes(buffer,0,count);
	int len=WideCharToMultiByte(CP_ACP,0,(unsigned short *)buffer,count/2,msg,299,NULL,NULL);
	if(len==0)
	{
		DWORD code=GetLastError();
		CString str;
		if(code==ERROR_INSUFFICIENT_BUFFER)
		{
			str="ERROR_INSUFFICIENT_BUFFER";
		}
		else if(code==ERROR_INVALID_FLAGS)
		{
			str="ERROR_INVALID_FLAGS";
		}
		else if(code==ERROR_INVALID_PARAMETER)
		{
			str="ERROR_INVALID_PARAMETER";
		}
		return false;
	}
	msg[len]=0;
	return true;
}

IMPLEMENT_DYNCREATE(CMsgDetailView, CFormView)

BEGIN_MESSAGE_MAP(CMsgDetailView, CFormView)
	//{{AFX_MSG_MAP(CMsgDetailView)
	ON_NOTIFY(NM_DBLCLK, IDC_MSG_LIST, OnDblclkMsgList)
	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	ON_BN_CLICKED(IDC_REMOVEALL, OnRemoveall)
	ON_BN_CLICKED(IDC_SMS, OnSms)
	ON_BN_CLICKED(IDC_BUTTON_PAGEUP, OnButtonPageup)
	ON_BN_CLICKED(IDC_BUTTON_PAGEDOWN, OnButtonPagedown)
	ON_BN_CLICKED(IDC_BUTTON_PAGE_START, OnButtonPageStart)
	ON_BN_CLICKED(IDC_BUTTON_PAGE_END, OnButtonPageEnd)
	ON_BN_CLICKED(IDC_BUTTON_JUMP, OnButtonJump)
	ON_BN_CLICKED(IDC_BUTTON1, OnOK)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST_CDR, OnDblclkListCdr)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMsgDetailView construction/destruction

CMsgDetailView::CMsgDetailView()
	: CFormView(CMsgDetailView::IDD)
{
	//{{AFX_DATA_INIT(CMsgDetailView)
	nPageJump = 0;
	strPageInfo = _T("");
	//}}AFX_DATA_INIT
	// TODO: add construction code here
	haveMsgHead=false;
	firstRun=true;
	MsgCountPerPage=100;
	npage=0;
}

CMsgDetailView::~CMsgDetailView()
{
}

void CMsgDetailView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMsgDetailView)
	DDX_Control(pDX, IDC_LIST_CDR, cdrListc);
	DDX_Control(pDX, IDC_BINARY, binaryc);
	DDX_Control(pDX, IDC_MSG_LIST, listc);
	DDX_Control(pDX, IDC_MSG_DETAIL, msgdetailc);
	DDX_Control(pDX, IDC_MSG, msgc);
	DDX_Text(pDX, IDC_EDIT_JUMP, nPageJump);
	DDX_Text(pDX, IDC_EDIT_PAGE_INFO, strPageInfo);
	//}}AFX_DATA_MAP
}

BOOL CMsgDetailView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CFormView::PreCreateWindow(cs);
}

void CMsgDetailView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	if(firstRun)
	{
		firstRun=false;
		GetParentFrame()->RecalcLayout();
		ResizeParentToFit();
		DWORD j=listc.GetExtendedStyle()| LVS_EX_HEADERDRAGDROP |LVS_EX_TWOCLICKACTIVATE|LVS_EX_FULLROWSELECT;
		listc.SetExtendedStyle(j);
		cdrListc.SetExtendedStyle(j);
	#define COLCOUNT 11
		int nWidth[COLCOUNT]={50,40,10,50,50,60,60,45,100,340,150};
		CString strColumn[COLCOUNT]={"索引","鏈路","時間","后向","前向","DPC","OPC","CIC","消息類型","號碼","原因"};
		BuildColumns(COLCOUNT,nWidth,strColumn);
		CButton *pbuttion=(CButton *)this->GetDlgItem(IDC_RADIO2);
		pbuttion->SetCheck(1);
		GetDocument()->BusySysMsgList.BuildColumns(cdrListc);
	}
	npage=0;
	UpdateCDRList();
	orderby=1;
	UpdateList();
}

/////////////////////////////////////////////////////////////////////////////
// CMsgDetailView printing

BOOL CMsgDetailView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CMsgDetailView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CMsgDetailView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

void CMsgDetailView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
	// TODO: add customized printing code here
}

/////////////////////////////////////////////////////////////////////////////
// CMsgDetailView diagnostics

#ifdef _DEBUG
void CMsgDetailView::AssertValid() const
{
	CFormView::AssertValid();
}

void CMsgDetailView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CMsgDetailDoc* CMsgDetailView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMsgDetailDoc)));
	return (CMsgDetailDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMsgDetailView message handle
#include "show.h"
void CMsgDetailView::OnOK() 
{
	CMsgText msgtext;
	unsigned char  buffer[]={
00,00,0x5f,0x00,0x01,0x00,0x01,0x00,0x01,0x01,
0xec,0x89,0x3f,0x85,0x73,0xff,0x0d,0x74,0xff,0x0d,0x08,
0x58,0x00,0x01,0x00,0x20,0x01,0x0a,0x00,0x02,0x08,
0x06,0x03,0x90,0x99,0x09,0x00,0x10,0x0a,0x08,0x03,
0x13,0x31,0x77,0x47,0x19,0x29,0xf4,0x28,0x08,0x83,
0x14,0x31,0x06,0x85,0x01,0x71,0x04,0x3f,0x05,0x83,
0x97,0x68,0x75,0x01,0x13,0x02,0x06,0x31,0x0b,0x08,
0x83,0x14,0x31,0x06,0x85,0x01,0x71,0x04,0x3d,0x01,
0x1f,0x03,0x04,0x7d,0x02,0x91,0x81,0x1d,0x03,0x80,
0x90,0xa3,0x39,0x05,0x3f,0x40,0x80,0x3d,0xc0,0x00,
0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	
	};
	if(haveMsgHead)
	{
	}
	else
	{
	}
	int off=(haveMsgHead)?2:10;
	CString str;
    CString mgsstr;
	msgc.GetWindowText(mgsstr);
	int msglen=0;
	while(SplitMsgStr(mgsstr,str))
	{
		if(!ChangeStringToBinary(&buffer[off],sizeof(buffer)-off,str,msglen))
		{
			AfxMessageBox("格式有錯!");
			return;
		}
		msglen+=6;
		buffer[2]=msglen%256;
		buffer[3]=msglen/256;
		if(!GetDocument()->msgList.Add(&buffer[2]))
		{
			AfxMessageBox("格式有錯!");
			return;
		}
		int index=GetDocument()->msgList.GetCount()-1;
		CString strs[11];
		GetDocument()->msgList.GetMsgStr(strs,index);

		listc.InsertItem(index,strs[0],0);
		for(int j=1;j<11;j++)
		{
			listc.SetItemText(index, j, strs[j]);
		}
	}
	listc.UpdateWindow();
	msgtext.DetailText(&buffer[2]);
	str=msgtext.GetLengthText();
	msgdetailc.SetWindowText(str);

}
int GetCharValue(char c)
{
	int v=-1;
	if(c>='0'&&c<='9')
	{
		v=c-'0';
	}
	else if(c>='a'&&c<='f')
	{
		v=c-'a'+10;
	}
	else if(c>='A'&&c<='F')
	{
		v=c-'A'+10;
	}
	return v;
}
bool IsBinaryString(CString str)
{
	int n=str.GetLength();
	for(int i=0;i<n;i++)
	{
		if(GetCharValue(str[i])<0&&!(str[i]==','||str[i]=='x'||str[i]==' '))
		{
			return false;
		}
	}
	return true;
}
bool CMsgDetailView::SplitMsgStr(CString &msgstr,CString &str)
{
	str="";
	if(msgstr.GetLength()<10)return false;
	CString ts;
	bool bErrorLine=false;
	while(msgstr.GetLength()>0)
	{
		int n=msgstr.Find("\r");
		if(n<0)
		{
			n=msgstr.Find("\r");
		}
		if(n<0)
		{
			if(IsBinaryString(msgstr))str+=msgstr;
			msgstr="";
			break;
		}
		ts=msgstr.Left(n);
		if(IsBinaryString(ts))
		{
			if(bErrorLine)
			{
				break;
			}
			str+=ts;
		}
		else
		{
			if(str!="")bErrorLine=true;
		}
		msgstr=msgstr.Right(msgstr.GetLength()-n-2);
	}
	return (str.GetLength()>10);
}
bool CMsgDetailView::ChangeStringToBinary(unsigned char *buf,int buflen,CString str,int& msglen)
{
	str.Replace(" ","");
	str.Replace(",","");
	str.Replace("0x","");
	int pos=0,i=0,errorcount=0,len=str.GetLength();
	int vh=0,vl=0;
	while(i<len-1&&pos<buflen)
	{
		if(str[i]=='\r'&&str[i+1]=='\n')
		{
			i+=2;
			continue;
		}
	    vh=GetCharValue(str[i]);
		vl=GetCharValue(str[i+1]);
		if(vh<0||vl<0)
		{
			return false;
		}
		buf[pos++]=vh*16+vl;
		i+=2;
	}
	buf[pos++]=0x0a;//消息結束標志
	msglen=pos;
	return true;
}
void CMsgDetailView::OnDblclkMsgList(NMHDR* pNMHDRi, LRESULT* pResult) 
{
	int item=listc.GetHotItem();
	if(item>=0)
	{
		CString str=listc.GetItemText(item, 0);
		item=atoi(str);
		UpdateDetailMsg(item);
	}
	
	*pResult = 0;
}
void CMsgDetailView::UpdateDetailMsg(int index)
{
	CMsgText msgItem;
	BYTE* pBuf;
	pBuf=GetDocument()->msgList.GetMsgBufFromIndex(index);
	WORD len=*((WORD*)pBuf)-2-1;
	msgItem.DetailText(pBuf);
	//if(msgItem.strList.GetCount()<=0)return ;
	CString str,strText;
	for(int i=8;i<len;i++)
	{
		if((i-8)%16==0)
		{
			str.Format("\r\n %06x    ",i-8);
			strText+=str;
		}
		str.Format("%02X ",pBuf[i]);
		strText+=str;
		if((i-8)%8==7)
		{
			strText+="  ";
		}
	}
	binaryc.SetWindowText(strText);
	msgc.SetWindowText(GetDocument()->msgList.GetMsgStr(index));
	msgdetailc.SetWindowText(msgItem.GetLengthText());
}


void CMsgDetailView::BuildColumns(int nCols, int * nWidth, CString * strCol)
{

	//insert columns
	int i;
	LV_COLUMN lvc;

	lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
	CString	strTemp;
	for(i = 0; i < nCols; i++)
	{
		lvc.iSubItem = i;
		strTemp=strCol[i];
		lvc.pszText = (char*)(LPCTSTR)strTemp;
		lvc.cx = nWidth[i];
		lvc.fmt = LVCFMT_LEFT;
		listc.InsertColumn(i,&lvc);
	}
}

void CMsgDetailView::OnRadio1() 
{

	haveMsgHead=true;
	
}

void CMsgDetailView::OnRadio2() 
{
	haveMsgHead=false;
}

void CMsgDetailView::OnDelete() 
{
	msgc.SetWindowText("");
	msgdetailc.SetWindowText("");
	binaryc.SetWindowText("");

	POSITION pos=listc.GetFirstSelectedItemPosition();
	if(pos)
	{
		int item=listc.GetNextSelectedItem(pos);
		if(item>=0)
		{
			CString str=listc.GetItemText(item, 0);
			item=atoi(str);

			GetDocument()->msgList.DeleteItemFromIndex(item);
			UpdateList();
			listc.SetHotItem(item);
			listc.SetSelectionMark(item);
		}
	}
	
}

void CMsgDetailView::OnRemoveall() 
{
	GetDocument()->msgList.DeleteAllItem();
	listc.DeleteAllItems();
	msgc.SetWindowText("");
	msgdetailc.SetWindowText("");
	binaryc.SetWindowText("");
}
void CMsgDetailView::UpdateList()
{
	int ncount=GetDocument()->msgList.GetCount();
	CString strs[11];
	listc.DeleteAllItems();
	int start=npage*MsgCountPerPage;
	int end=start+MsgCountPerPage;
	if(end>ncount)end=ncount;

	int line=0;
	int nafter=(orderby==0)?0:100000;
	for(int i=start;i<end;i++)
	{
		GetDocument()->msgList.GetMsgStr(strs,i);

		line=listc.InsertItem(nafter,strs[0],0);
		for(int j=1;j<11;j++)
		{
			listc.SetItemText(line, j, strs[j]);
		}
		line++;
	}
	strPageInfo.Format("%d/%d",npage,ncount/MsgCountPerPage);
	UpdateData(FALSE);
}

void CMsgDetailView::OnSms() 
{
	unsigned char  buffer[1000];
	int off=0;
	CString str;
    CString mgsstr;
	msgc.GetWindowText(mgsstr);
	int msglen=0;
	char msg[300];
	if(SplitMsgStr(mgsstr,str))
	{
		if(!ChangeStringToBinary(&buffer[off],sizeof(buffer)-off,str,msglen))
		{
			AfxMessageBox("格式有錯!");
			return;
		}
		GetCharsFromUnicode(msg,buffer,msglen);
		msgdetailc.SetWindowText(msg);
	}
}

void CMsgDetailView::OnButtonPageup() 
{
	npage--;
	if(npage<0)npage=0;
	UpdateList();
}

void CMsgDetailView::OnButtonPagedown() 
{
	int ncount=GetDocument()->msgList.GetCount();
	npage++;
	if(npage>ncount/MsgCountPerPage)npage=ncount/MsgCountPerPage;
	UpdateList();
}

void CMsgDetailView::OnButtonPageStart() 
{	
	npage=0;
	UpdateList();
}

void CMsgDetailView::OnButtonPageEnd() 
{
	int ncount=GetDocument()->msgList.GetCount();
	npage=ncount/MsgCountPerPage;
	UpdateList();
}

void CMsgDetailView::OnButtonJump() 
{
	UpdateData();
	int ncount=GetDocument()->msgList.GetCount();
	npage=nPageJump;
	if(npage>ncount/MsgCountPerPage)npage=ncount/MsgCountPerPage;
	if(npage<0)npage=0;
	nPageJump=npage;
	UpdateList();
	return;
}

void CMsgDetailView::UpdateCDRList()
{
	GetDocument()->BusySysMsgList.UpdateList(cdrListc);
}

void CMsgDetailView::OnDblclkListCdr(NMHDR* pNMHDR, LRESULT* pResult) 
{
	int item=cdrListc.GetHotItem();
	if(item>=0)
	{
		CString str=cdrListc.GetItemText(item, 0);
		if(str.Find('*')>=0)return;
		int filepos1=atoi(str);
		str=cdrListc.GetItemText(item, 3);
		str=str.Left(8);
		CString filePath;
		filePath.Format("d:\\msg\\%s.dat",str.GetBuffer(0));
		int item2=(item%3==0)?item+1:item-1;
		str=cdrListc.GetItemText(item2, 0);
		if(str.Find('*')>=0)return;
		int filepos2=atoi(str);

		if(item2>item)
		{
			UpdateCDRMsg(filepos2,filepos1,filePath);
		}
		else
		{
			UpdateCDRMsg(filepos1,filepos2,filePath);
		}
	}	
	*pResult = 0;
}

void CMsgDetailView::UpdateCDRMsg(UINT filepos1,UINT filepos2,CString filePath)
{
	orderby=0;
	npage=0;
	GetDocument()->msgList.DeleteAllItem();
	GetDocument()->BusySysMsgList.UpdateCDRMsg(filepos1,filePath,GetDocument()->msgList);
	GetDocument()->BusySysMsgList.UpdateCDRMsg(filepos2,filePath,GetDocument()->msgList);
	UpdateList();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区三区| 日本最新不卡在线| 免费在线观看不卡| 成人av电影在线网| 久久一区二区三区四区| 午夜伦欧美伦电影理论片| www.在线欧美| 久久综合色之久久综合| 五月天中文字幕一区二区| av一二三不卡影片| 国产精品素人视频| 国产一区二区不卡| 精品久久久久香蕉网| 五月天久久比比资源色| 精品污污网站免费看| 一级中文字幕一区二区| 9人人澡人人爽人人精品| 国产日韩欧美在线一区| 久久99精品国产| 日韩欧美一区二区视频| 日韩av电影一区| 欧美一区二区三级| 日本怡春院一区二区| 日韩一区二区在线看| 欧美aaaaa成人免费观看视频| 欧美精品三级在线观看| 一区二区在线看| 欧美伊人久久久久久久久影院| 一区二区三区视频在线看| 色综合色狠狠天天综合色| 亚洲欧美日韩在线| 在线欧美日韩国产| 亚洲综合成人网| 亚洲精品少妇30p| 亚洲不卡av一区二区三区| 欧洲在线/亚洲| 日韩福利视频网| 精品av久久707| 国产成人精品在线看| 国产精品久久久99| 91欧美一区二区| 亚洲一区二区三区三| 天堂影院一区二区| 粉嫩av一区二区三区| 专区另类欧美日韩| 欧美中文字幕一二三区视频| 亚洲国产一区视频| 精品区一区二区| 国产精品一品二品| 国产精品久久久久aaaa| 欧美色中文字幕| 久久精品国产99国产| 久久久精品国产免大香伊| 99re热视频这里只精品| 视频一区二区欧美| 国产精品视频免费| 欧美午夜精品一区二区三区| 日韩电影在线一区| 国产精品不卡一区二区三区| 欧美三级日韩在线| 九色综合国产一区二区三区| 日韩美女视频一区| 日韩一级欧美一级| 99在线精品免费| 九九**精品视频免费播放| 中文字幕第一区二区| 欧美日韩一卡二卡三卡| 国产999精品久久久久久| 亚洲图片欧美色图| 国产精品欧美精品| 日韩一区二区在线看片| 一本久久综合亚洲鲁鲁五月天| 麻豆成人av在线| 亚洲综合色区另类av| 久久久精品tv| 91精品国产欧美一区二区成人| 国产91清纯白嫩初高中在线观看| 午夜久久久久久久久| 国产精品毛片久久久久久久| 91精品婷婷国产综合久久性色| 成人久久视频在线观看| 美腿丝袜在线亚洲一区| 亚洲自拍与偷拍| 一色屋精品亚洲香蕉网站| 欧美成人一区二区三区片免费| 色综合中文字幕国产 | 成人免费毛片片v| 亚洲高清三级视频| 亚洲激情自拍偷拍| 国产精品视频在线看| 日韩欧美国产一区在线观看| 欧美亚洲一区二区在线观看| 成人国产精品免费观看动漫 | 欧美大黄免费观看| 欧美性极品少妇| 99re这里只有精品6| 国产a视频精品免费观看| 精品一区二区精品| 免费观看在线色综合| 五月激情综合网| 午夜久久久影院| 偷偷要91色婷婷| 视频在线观看91| 午夜精品成人在线视频| 亚洲18色成人| 午夜成人免费电影| 天天影视网天天综合色在线播放| 一区二区三区影院| 亚洲一卡二卡三卡四卡无卡久久 | 丝袜诱惑亚洲看片| 亚洲国产精品久久久久婷婷884 | 国产精品美女视频| 国产偷国产偷亚洲高清人白洁| 精品久久久久久亚洲综合网| 日韩免费一区二区| 久久―日本道色综合久久| 2017欧美狠狠色| 久久久777精品电影网影网| 久久精品人人做人人综合| 中文字幕精品一区二区精品绿巨人| 日本一区免费视频| 亚洲欧美日韩一区| 午夜欧美在线一二页| 奇米在线7777在线精品| 久久国产精品色婷婷| 国产成人a级片| 99国产精品99久久久久久| 欧美影院精品一区| 日韩一区二区在线观看| 久久综合资源网| 国产精品国产三级国产有无不卡 | 奇米四色…亚洲| 国内精品伊人久久久久av一坑 | 欧美—级在线免费片| 国产精品国产三级国产aⅴ中文 | 欧美系列亚洲系列| 欧美一区二区三级| 国产精品女主播av| 五月综合激情网| 国产成人自拍网| 在线免费一区三区| 日韩精品专区在线影院重磅| 国产精品午夜久久| 亚洲一区在线视频| 黑人巨大精品欧美一区| 99久久精品国产毛片| 欧美精品电影在线播放| 久久精品亚洲乱码伦伦中文 | 亚洲欧美日韩国产中文在线| 日韩中文字幕亚洲一区二区va在线| 精品一区二区久久久| 在线观看区一区二| 久久久久久9999| 亚洲成av人片一区二区三区| 国内精品国产成人| 欧美三级日韩三级| 国产精品亲子伦对白| 免费久久精品视频| 色狠狠桃花综合| 国产色产综合色产在线视频| 午夜久久电影网| 91网站在线播放| 国产亚洲精品bt天堂精选| 天天综合天天做天天综合| 99麻豆久久久国产精品免费优播| 日韩一区二区三区四区五区六区| 国产精品电影一区二区三区| 久久av老司机精品网站导航| 欧洲人成人精品| 国产精品国产三级国产普通话蜜臀 | 久久久久久亚洲综合| 亚洲高清不卡在线| 91免费看视频| 国产精品人成在线观看免费| 久久99精品国产.久久久久久| 欧美色视频在线| 亚洲欧美一区二区三区极速播放| 高清国产一区二区三区| 精品国产123| 日本欧美久久久久免费播放网| 在线国产亚洲欧美| 亚洲美女屁股眼交| 91麻豆视频网站| 国产精品理伦片| 懂色av一区二区三区免费看| 久久久久久久久久美女| 久久99热狠狠色一区二区| 8x8x8国产精品| 午夜精品久久久久影视| 欧美日韩免费视频| 午夜精品成人在线视频| 欧美久久久久久蜜桃| 香蕉乱码成人久久天堂爱免费| 在线观看国产一区二区| 樱花影视一区二区| 欧美亚一区二区| 丝瓜av网站精品一区二区| 欧美一区二区三区四区五区| 日韩电影在线看| 日韩亚洲欧美成人一区|