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

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

?? apexcommctl.cpp

?? c++實現的一個個串口通訊類
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
///////////////////////////////////////////////////////////////
/// 文件名: ApexComm.cpp
// 功能:注冊控件類
// 作者:陳++
// 時間:2004.4.15-1999.4.22 創建
//       2004.5.15修改,整理
///////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ApexComm.h"
#include "ApexCommCtl.h"
#include "vcthread.h"

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


IMPLEMENT_DYNCREATE(CApexCommCtrl, COleControl)


/////////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CApexCommCtrl, COleControl)
	//{{AFX_MSG_MAP(CApexCommCtrl)
	ON_WM_WINDOWPOSCHANGING()
	//}}AFX_MSG_MAP
   
   //自定義消息映射,包括串口讀到數據事件,串口掛起事件
   //                接收數據出錯事件,數據傳輸完畢事件
   afx_msg ON_THREAD_MESSAGE(USER_RECEIVEDATA,ReceiveData)
   afx_msg ON_THREAD_MESSAGE(USER_ONCOMMHANGUP,CommHangup)
   afx_msg ON_THREAD_MESSAGE(USER_RECEIVEDATAERROR,ReceiveDataError)
   afx_msg ON_THREAD_MESSAGE(USER_DATASENDFINISHED,DataSendFinished)

END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
BEGIN_DISPATCH_MAP(CApexCommCtrl, COleControl)
	//{{AFX_DISPATCH_MAP(CApexCommCtrl)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "PortID", m_portID, OnPortIDChanged, VT_BSTR)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "BaudRate", m_baudRate, OnBaudRateChanged, VT_I4)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "EnableParity", m_enableParity, OnEnableParityChanged, VT_BOOL)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "OutxCtsFlow", m_outxCtsFlow, OnOutxCtsFlowChanged, VT_BOOL)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "OutxDsrFlow", m_outxDsrFlow, OnOutxDsrFlowChanged, VT_BOOL)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "DtrControl", m_dtrControl, OnDtrControlChanged, VT_I2)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "DsrSensitivity", m_dsrSensitivity, OnDsrSensitivityChanged, VT_BOOL)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "TxContinueOnXoff", m_txContinueOnXoff, OnTxContinueOnXoffChanged, VT_BOOL)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "OutxXonXoffFlow", m_outxXonXoffFlow, OnOutxXonXoffFlowChanged, VT_BOOL)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "InxXonXoffFlow", m_inxXonXoffFlow, OnInxXonXoffFlowChanged, VT_BOOL)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "ReplaceWhenParityError", m_replaceWhenParityError, OnReplaceWhenParityErrorChanged, VT_BOOL)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "IgnoreNullChar", m_ignoreNullChar, OnIgnoreNullCharChanged, VT_BOOL)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "RtsControl", m_rtsControl, OnRtsControlChanged, VT_I2)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "XonLimit", m_xonLimit, OnXonLimitChanged, VT_I2)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "XoffLimit", m_xoffLimit, OnXoffLimitChanged, VT_I2)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "ByteSize", m_byteSize, OnByteSizeChanged, VT_I2)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "Parity", m_parity, OnParityChanged, VT_I2)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "StopBits", m_stopBits, OnStopBitsChanged, VT_I2)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "XonChar", m_xonChar, OnXonCharChanged, VT_I2)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "XoffChar", m_xoffChar, OnXoffCharChanged, VT_I2)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "ReplaceChar", m_replaceChar, OnReplacedCharChanged, VT_I2)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "InputBufferSize", m_inputBufferSize, OnInputBufferSizeChanged, VT_I4)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "OutputBufferSize", m_outputBufferSize, OnOutputBufferSizeChanged, VT_I4)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "ReadIntervalTimeout", m_readIntervalTimeout, OnReadIntervalTimeoutChanged, VT_I4)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "ReadTotalTimeoutMultiplier", m_readTotalTimeoutMultiplier, OnReadTotalTimeoutMultiplierChanged, VT_I4)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "ReadTotalTimeoutConstant", m_readTotalTimeoutConstant, OnReadTotalTimeoutConstantChanged, VT_I4)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "WriteTotalTimeoutMultiplier", m_writeTotalTimeoutMultiplier, OnWriteTotalTimeoutMultiplierChanged, VT_I4)
	DISP_PROPERTY_NOTIFY(CApexCommCtrl, "WriteTotalTimeoutConstant", m_writeTotalTimeoutConstant, OnWriteTotalTimeoutConstantChanged, VT_I4)
	DISP_FUNCTION(CApexCommCtrl, "OpenPort", OpenPort, VT_EMPTY, VTS_NONE)
	DISP_FUNCTION(CApexCommCtrl, "ClosePort", ClosePort, VT_EMPTY, VTS_NONE)
	DISP_FUNCTION(CApexCommCtrl, "WritePort", WritePort, VT_BOOL, VTS_BSTR VTS_I4)
	//}}AFX_DISPATCH_MAP
END_DISPATCH_MAP()


/////////////////////////////////////////////////////////////////////////////
BEGIN_EVENT_MAP(CApexCommCtrl, COleControl)
	//{{AFX_EVENT_MAP(CApexCommCtrl)
	EVENT_CUSTOM("OnReceiveData", FireOnReceiveData, VTS_BSTR  VTS_I4)
	EVENT_CUSTOM("OnCommHangup", FireOnCommHangup, VTS_BOOL)
	EVENT_CUSTOM("ReceiveDateError", FireReceiveDateError, VTS_I4)
	EVENT_CUSTOM("DataSendFinished", FireDataSendFinished, VTS_NONE)
	//}}AFX_EVENT_MAP
END_EVENT_MAP()

/////////////////////////////////////////////////////////////////////////////
//由此向下不要修改,由系統維護
IMPLEMENT_OLECREATE_EX(CApexCommCtrl, "APEXCOMM.ApexCommCtrl.1",
	0xf0a2bec8, 0xf8b2, 0x11d2, 0x8a, 0x54, 0, 0x80, 0xc8, 0xeb, 0x2f, 0xfe)

/////////////////////////////////////////////////////////////////////////////
IMPLEMENT_OLETYPELIB(CApexCommCtrl, _tlid, _wVerMajor, _wVerMinor)

/////////////////////////////////////////////////////////////////////////////
const IID BASED_CODE IID_DApexComm =
		{ 0xf0a2bec6, 0xf8b2, 0x11d2, { 0x8a, 0x54, 0, 0x80, 0xc8, 0xeb, 0x2f, 0xfe } };
const IID BASED_CODE IID_DApexCommEvents =
		{ 0xf0a2bec7, 0xf8b2, 0x11d2, { 0x8a, 0x54, 0, 0x80, 0xc8, 0xeb, 0x2f, 0xfe } };

/////////////////////////////////////////////////////////////////////////////
static const DWORD BASED_CODE _dwApexCommOleMisc =
	OLEMISC_ACTIVATEWHENVISIBLE |
	OLEMISC_SETCLIENTSITEFIRST |
	OLEMISC_INSIDEOUT |
	OLEMISC_CANTLINKINSIDE;// |
   //OLEMISC_INVISIBLEATRUNTIME;
	//OLEMISC_RECOMPOSEONRESIZE;

IMPLEMENT_OLECTLTYPE(CApexCommCtrl, IDS_APEXCOMM, _dwApexCommOleMisc)

/////////////////////////////////////////////////////////////////////////////
// CApexCommCtrl::CApexCommCtrlFactory::UpdateRegistry -
BOOL CApexCommCtrl::CApexCommCtrlFactory::UpdateRegistry(BOOL bRegister)
{
	// TODO: Verify that your control follows apartment-model threading rules.
	// Refer to MFC TechNote 64 for more information.
	// If your control does not conform to the apartment-model rules, then
	// you must modify the code below, changing the 6th parameter from
	// afxRegApartmentThreading to 0.

	if (bRegister)
		return AfxOleRegisterControlClass(
			AfxGetInstanceHandle(),
			m_clsid,
			m_lpszProgID,
			IDS_APEXCOMM,
			IDB_APEXCOMM,
			afxRegApartmentThreading,
			_dwApexCommOleMisc,
			_tlid,
			_wVerMajor,
			_wVerMinor);
	else
		return AfxOleUnregisterClass(m_clsid, m_lpszProgID);
}
//以上代碼不必修改
////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////
//構造函數
CApexCommCtrl::CApexCommCtrl()
{
	InitializeIIDs(&IID_DApexComm, &IID_DApexCommEvents);
   SetInitialSize(24,24);//設置控件初始大小

   m_portID="COM1";
   m_hCommFile=NULL;
   m_bSendDataEmpty=true;
}


/////////////////////////////////////////////////////////////////////////////
CApexCommCtrl::~CApexCommCtrl()
{
	// TODO: Cleanup your control's instance data here.
}

/////////////////////////////////////////////////////////////////////////////
//顯示設計狀態下的控件外觀
/////////////////////////////////////////////////////////////////////////////
void CApexCommCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
	CBitmap bitmap;
	BITMAP  bmp;
	CPictureHolder picHolder;
	CRect rcSrcBounds;

	//裝入位圖
	bitmap.LoadBitmap(IDB_APEX);
	bitmap.GetObject(sizeof(BITMAP), &bmp);
	rcSrcBounds.right = bmp.bmWidth;
	rcSrcBounds.bottom = bmp.bmHeight;

	//創建位圖并拉伸
	picHolder.CreateFromBitmap((HBITMAP)bitmap.m_hObject, NULL, false);
	picHolder.Render(pdc, rcBounds, rcSrcBounds);
}

/////////////////////////////////////////////////////////////////////////////
void CApexCommCtrl::DoPropExchange(CPropExchange* pPX)
{
	ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
	COleControl::DoPropExchange(pPX);

   PX_Long(pPX, _T("BaudRate"), m_baudRate, 9600);
   PX_Bool(pPX, _T("EnableParity"), m_enableParity, FALSE);
   PX_Bool(pPX, _T("OutxCtsFlow"), m_outxCtsFlow, FALSE);
   PX_Bool(pPX, _T("OutxDsrFlow"), m_outxDsrFlow, FALSE);
   PX_Short(pPX, _T("DtrControl"), m_dtrControl, 0);
   PX_Bool(pPX, _T("DsrSensitivity"), m_dsrSensitivity, FALSE);
   PX_Bool(pPX, _T("TxContinueOnXoff"), m_txContinueOnXoff, TRUE);
   PX_Bool(pPX, _T("OutxXonXoffFlow"), m_outxXonXoffFlow, FALSE);
   PX_Bool(pPX, _T("InxXonXoffFlow"), m_inxXonXoffFlow, FALSE);
   PX_Bool(pPX, _T("ReplaceWhenParityError"), m_replaceWhenParityError, FALSE);
   PX_Bool(pPX, _T("IgnoreNullChar"), m_ignoreNullChar, FALSE);
   PX_Short(pPX, _T("RtsControl"), m_rtsControl, 0);
   PX_Short(pPX, _T("XonLimit"), m_xonLimit, 200);
   PX_Short(pPX, _T("XoffLimit"), m_xoffLimit, 200);
   PX_Short(pPX, _T("ByteSize"), m_byteSize, 3);
   PX_Short(pPX, _T("Parity"), m_parity, 0);
   PX_Short(pPX, _T("StopBits"), m_stopBits, 0);
   PX_Short(pPX, _T("XonChar"), m_xonChar, 17);
   PX_Short(pPX, _T("XoffChar"), m_xoffChar, 19);
   PX_Short(pPX, _T("ReplaceChar"), m_replaceChar, 63);
   PX_Long(pPX, _T("InputBufferSize"), m_inputBufferSize, 2048);
   PX_Long(pPX, _T("OutputBufferSize"), m_outputBufferSize, 1024);
   PX_Long(pPX, _T("ReadIntervalTimeout"), m_readIntervalTimeout, 100);
   PX_Long(pPX, _T("ReadTotalTimeoutMultiplier"), m_readTotalTimeoutMultiplier, 0);
   PX_Long(pPX, _T("ReadTotalTimeoutConstant"), m_readTotalTimeoutConstant, 0);
   PX_Long(pPX, _T("WriteTotalTimeoutMultiplier"), m_writeTotalTimeoutMultiplier, 0);
   PX_Long(pPX, _T("WriteTotalTimeoutConstant"), m_writeTotalTimeoutConstant, 0);
	// TODO: Call PX_ functions for each persistent custom property.
}


/////////////////////////////////////////////////////////////////////////////
void CApexCommCtrl::OnResetState()
{
	COleControl::OnResetState();  // Resets defaults found in DoPropExchange
}


/////////////////////////////////////////////////////////////////////////////
//改變控件的屬性
/////////////////////////////////////////////////////////////////////////////
void CApexCommCtrl::OnPortIDChanged() 
{
   if (m_hCommFile != NULL) return;
	SetModifiedFlag();
}

void CApexCommCtrl::OnBaudRateChanged() 
{
   if (m_baudRate<110) m_baudRate=110;

   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnEnableParityChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

   SetModifiedFlag();
}

void CApexCommCtrl::OnOutxCtsFlowChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnOutxDsrFlowChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnDtrControlChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnDsrSensitivityChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnTxContinueOnXoffChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnOutxXonXoffFlowChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnInxXonXoffFlowChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

   SetModifiedFlag();
}

void CApexCommCtrl::OnReplaceWhenParityErrorChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnIgnoreNullCharChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnRtsControlChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnXonLimitChanged() 
{
   if (m_xonLimit<=0) 
      m_xonLimit=1;
   else
      if (m_xonLimit>m_outputBufferSize) m_xonLimit=(short) m_outputBufferSize;

   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnXoffLimitChanged() 
{
   if (m_xoffLimit<= 0) 
      m_xoffLimit=1;
   else
      if (m_xoffLimit>m_inputBufferSize) m_xoffLimit=(short)m_inputBufferSize;
   
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnByteSizeChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnParityChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnStopBitsChanged() 
{
   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnXonCharChanged() 
{
   if (m_xonChar<0 || m_xonChar>127) m_xoffChar=17;

   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnXoffCharChanged() 
{
   if (m_xoffChar<0 || m_xoffChar>127) m_xoffChar=19;

   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnReplacedCharChanged() 
{
   if (m_replaceChar<0 || m_replaceChar>127) m_replaceChar=63;

   if (m_hCommFile != NULL) SetPortState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnInputBufferSizeChanged() 
{
   if (m_inputBufferSize<128)  m_inputBufferSize=128;
      
   if (m_xoffLimit>m_inputBufferSize) m_xoffLimit=(short)m_inputBufferSize;

   if (m_hCommFile != NULL)
      if (SetupComm(m_hCommFile, m_inputBufferSize, m_outputBufferSize))
     	   SetModifiedFlag();
}

void CApexCommCtrl::OnOutputBufferSizeChanged() 
{
   if (m_outputBufferSize<128)  m_outputBufferSize=128;
      
   if (m_xonLimit>m_outputBufferSize) m_xonLimit=(short)m_outputBufferSize;

   if (m_hCommFile != NULL)
      if (SetupComm(m_hCommFile, m_inputBufferSize, m_outputBufferSize))
     	   SetModifiedFlag();
}

void CApexCommCtrl::OnReadIntervalTimeoutChanged() 
{
   if (m_readIntervalTimeout<0) m_readIntervalTimeout=0; 
    
   if (m_hCommFile != NULL) SetCommTimeState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnReadTotalTimeoutMultiplierChanged() 
{
   if (m_readTotalTimeoutMultiplier<0) m_readTotalTimeoutMultiplier=0; 

   if (m_hCommFile != NULL) SetCommTimeState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnReadTotalTimeoutConstantChanged() 
{
   if (m_readTotalTimeoutConstant<0) m_readTotalTimeoutConstant=0; 

   if (m_hCommFile != NULL) SetCommTimeState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnWriteTotalTimeoutMultiplierChanged() 
{
   if (m_writeTotalTimeoutMultiplier<0) m_writeTotalTimeoutMultiplier=0; 

   if (m_hCommFile != NULL) SetCommTimeState();

	SetModifiedFlag();
}

void CApexCommCtrl::OnWriteTotalTimeoutConstantChanged() 
{
   if (m_writeTotalTimeoutConstant<0) m_writeTotalTimeoutConstant=0; 

   if (m_hCommFile != NULL) SetCommTimeState();

	SetModifiedFlag();
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日摸夜夜添夜夜添国产精品| 精品亚洲成a人在线观看 | 精品乱人伦小说| 久久伊99综合婷婷久久伊| 国产免费观看久久| 亚洲一区二三区| 精品一区二区三区影院在线午夜 | 久久国产剧场电影| 成人99免费视频| 欧美日韩在线播放三区四区| 欧美大片在线观看| 亚洲精品自拍动漫在线| 久久精品国产免费| 在线看国产一区二区| 精品国产伦一区二区三区免费| 亚洲精品免费在线播放| 六月丁香综合在线视频| 在线看国产一区二区| 久久久久9999亚洲精品| 亚洲国产精品久久久久婷婷884| 国产a精品视频| 日韩一级成人av| 亚洲乱码国产乱码精品精98午夜| 亚洲国产婷婷综合在线精品| 风间由美一区二区三区在线观看| 欧美日韩你懂得| 一个色妞综合视频在线观看| 国产成人综合在线观看| 欧美一卡二卡三卡| 中文字幕日韩av资源站| 激情伊人五月天久久综合| 欧美色成人综合| 亚洲欧美一区二区三区国产精品 | 91精品国产综合久久久蜜臀粉嫩 | 亚洲欧洲精品成人久久奇米网| 日本v片在线高清不卡在线观看| 色视频成人在线观看免| 国产欧美一区在线| 美女网站色91| 日韩三级高清在线| 亚洲一本大道在线| 在线看不卡av| 亚洲成人动漫一区| 精品视频一区二区三区免费| 亚洲一区国产视频| 欧美亚洲国产一卡| 亚洲国产综合91精品麻豆| 91理论电影在线观看| 国产精品久久三| 成人精品在线视频观看| 久久久久久综合| 亚洲国产日韩在线一区模特| 色婷婷久久综合| 亚洲男人天堂av网| 91麻豆国产福利在线观看| 国产精品素人一区二区| 春色校园综合激情亚洲| 一区二区三区日韩精品视频| 欧美福利视频导航| 国产精品一二三区| 一区二区在线免费观看| 日韩欧美一区电影| 波波电影院一区二区三区| 午夜不卡av免费| 久久一日本道色综合| 色国产精品一区在线观看| 日日摸夜夜添夜夜添精品视频 | 日韩午夜小视频| 大尺度一区二区| 日产国产欧美视频一区精品| 国产偷v国产偷v亚洲高清 | 成人免费av在线| 肉肉av福利一精品导航| 中文字幕欧美日本乱码一线二线| 欧美日韩在线精品一区二区三区激情 | 看片的网站亚洲| 亚洲欧美综合色| 精品福利av导航| 欧美色综合久久| 不卡的看片网站| 久久成人免费日本黄色| 一区二区三区免费观看| 久久精品水蜜桃av综合天堂| 欧美日韩国产首页| www.一区二区| 蜜臀av一区二区三区| 亚洲免费观看在线视频| 国产亚洲精久久久久久| 欧美一区二区高清| 在线观看成人免费视频| 高清不卡在线观看| 激情综合网天天干| 午夜激情一区二区| 亚洲精品美腿丝袜| 国产日产欧美一区二区三区| 欧美一二三在线| 欧美精品一二三| 欧美系列亚洲系列| 在线观看视频91| 99久久久精品| 成人自拍视频在线| 国产一区二区中文字幕| 毛片不卡一区二区| 日韩精品视频网站| 亚洲在线一区二区三区| 亚洲欧美日韩中文播放 | 26uuu精品一区二区三区四区在线| 欧美日韩亚洲综合一区| 欧美体内she精视频| 色婷婷综合中文久久一本| www.亚洲色图| 91女厕偷拍女厕偷拍高清| 成人污视频在线观看| 国产传媒一区在线| 国产成人亚洲综合a∨婷婷 | 欧美性生活久久| 欧美性受xxxx| 欧美日韩二区三区| 制服丝袜激情欧洲亚洲| 欧美顶级少妇做爰| 欧美一级在线视频| 久久亚洲欧美国产精品乐播| 久久精品视频免费观看| 国产亚洲人成网站| 亚洲欧洲日产国码二区| 亚洲黄色免费电影| 亚洲高清中文字幕| 久久99国产精品免费网站| 韩国精品一区二区| 成人动漫一区二区| 色94色欧美sute亚洲线路一久 | 国产91高潮流白浆在线麻豆| 成人av电影免费观看| 色婷婷综合五月| 欧美一级欧美一级在线播放| 91精品婷婷国产综合久久竹菊| 日韩欧美国产一区二区三区| 久久久久久99精品| 国产精品久久久久久久久免费相片| 国产精品女上位| 亚洲成人777| 国产一区二区三区综合| 91玉足脚交白嫩脚丫在线播放| 欧美天堂亚洲电影院在线播放| 欧美videos中文字幕| 中文字幕电影一区| 亚洲午夜视频在线观看| 日韩不卡免费视频| 成人丝袜18视频在线观看| 色琪琪一区二区三区亚洲区| 欧美一区二区在线免费观看| 中文字幕精品三区| 亚洲bdsm女犯bdsm网站| 成人午夜看片网址| 3d动漫精品啪啪1区2区免费| 国产午夜精品在线观看| 五月激情六月综合| 成人久久视频在线观看| 欧美一区二区三区视频免费| 国产精品网站在线播放| 麻豆精品国产91久久久久久 | 亚洲国产视频网站| 成人影视亚洲图片在线| 在线播放国产精品二区一二区四区| 久久综合九色综合97_久久久| 亚洲黄色性网站| 国产福利一区二区三区在线视频| 欧美日韩亚州综合| 综合色天天鬼久久鬼色| 国产乱一区二区| 制服丝袜av成人在线看| 精品国产区一区| 五月婷婷综合网| 91亚洲大成网污www| 久久色中文字幕| 偷拍日韩校园综合在线| 91久久国产最好的精华液| 国产午夜亚洲精品理论片色戒| 麻豆精品视频在线观看视频| 欧美日韩小视频| 一区二区三区中文字幕电影| 成人一区二区三区视频| 精品久久国产字幕高潮| 日本sm残虐另类| 欧美三级韩国三级日本三斤 | 91老司机福利 在线| 中文字幕国产一区二区| 国产精品88888| 欧美精品一区男女天堂| 麻豆精品国产传媒mv男同| 欧美精品亚洲一区二区在线播放| 一区二区三区四区在线免费观看| 不卡的看片网站| 国产精品福利影院| 成人毛片在线观看| 日韩一区在线看| 色婷婷久久久久swag精品| 国产精品久久久久久一区二区三区| 国产成人综合在线| 国产精品人妖ts系列视频|