亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产目拍亚洲精品99久久精品| 国产精品你懂的| 久久精品夜夜夜夜久久| 亚洲国产精品久久久久婷婷884 | 亚洲欧洲av在线| 蜜桃精品视频在线| 欧美伊人久久大香线蕉综合69| 国产人妖乱国产精品人妖| 人人狠狠综合久久亚洲| 91成人国产精品| 亚洲精品视频一区| 99国内精品久久| 日本一区二区高清| 国产乱码精品1区2区3区| 欧美成人r级一区二区三区| 香蕉影视欧美成人| 欧美日韩国产天堂| 视频一区二区不卡| 欧美日韩国产免费| 午夜精品久久久久| 制服.丝袜.亚洲.中文.综合| 亚洲一区二区三区中文字幕 | 久久午夜羞羞影院免费观看| 亚洲成人免费av| 欧美日韩午夜在线| 亚洲丰满少妇videoshd| 色综合久久66| 精品一区二区精品| 91精品国产综合久久精品app| 综合欧美一区二区三区| 91一区二区三区在线观看| 国产精品久久久久久久岛一牛影视| 国产主播一区二区| 国产亚洲欧洲997久久综合 | 99这里只有精品| 国产精品久久综合| 99re视频这里只有精品| 亚洲欧洲av色图| 91免费国产在线观看| 亚洲激情在线激情| 欧美日韩激情一区| 亚洲成av人片在线观看| 欧美一区二区精品在线| 久久激情五月婷婷| 中文字幕欧美三区| 色婷婷av久久久久久久| 日韩一区精品字幕| 久久九九99视频| 色婷婷国产精品久久包臀| 亚洲网友自拍偷拍| 精品美女在线播放| 91视频在线观看免费| 亚洲午夜久久久| 日韩美女一区二区三区| 成人性生交大片免费看中文| 亚洲一区视频在线| 2023国产精品自拍| 91免费版在线| 久久国产麻豆精品| 亚洲日本乱码在线观看| 欧美一级搡bbbb搡bbbb| 成人app下载| 日韩**一区毛片| 亚洲天天做日日做天天谢日日欢 | 国产在线播放一区二区三区| 亚洲欧洲99久久| 欧美电视剧在线观看完整版| 99精品视频一区二区| 视频一区中文字幕| 国产精品进线69影院| 91精品在线麻豆| 99综合电影在线视频| 蓝色福利精品导航| 亚洲午夜久久久| 国产精品久久久久久久久动漫| 91麻豆精品国产91久久久更新时间| 成人爽a毛片一区二区免费| 日本欧美在线看| 亚洲精品日日夜夜| 国产精品私人影院| 日韩免费一区二区| 欧美精品一卡两卡| 91国产丝袜在线播放| 高清成人免费视频| 国产又粗又猛又爽又黄91精品| 亚洲丰满少妇videoshd| 《视频一区视频二区| 久久综合色鬼综合色| 欧美一级在线观看| 欧美日韩另类一区| 在线亚洲欧美专区二区| 成人aa视频在线观看| 丰满少妇在线播放bd日韩电影| 麻豆91精品91久久久的内涵| 天堂精品中文字幕在线| 一区二区三区精品在线| 亚洲乱码国产乱码精品精98午夜| 国产日韩欧美a| 久久久国际精品| 久久久精品tv| 久久久久久久精| 久久综合av免费| 久久久久久毛片| 久久久蜜桃精品| 精品欧美一区二区久久| 日韩欧美一二三四区| 4438成人网| 91精品国产麻豆| 日韩亚洲欧美中文三级| 欧美精品久久一区二区三区| 欧美丰满少妇xxxxx高潮对白 | 国产精品视频免费| 日本一区二区三区dvd视频在线| 精品久久久久av影院| 精品久久久久久无| 久久精品男人的天堂| 欧美激情在线一区二区| 国产精品久久久久久久午夜片| 国产精品久久久久久久第一福利 | 国产精品欧美一级免费| 国产精品美女www爽爽爽| ...xxx性欧美| 亚洲一区二区三区小说| 奇米色一区二区三区四区| 黄色日韩网站视频| 成人午夜在线播放| 色香色香欲天天天影视综合网| 日本韩国一区二区三区| 欧美精品一二三| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 亚洲自拍另类综合| 日韩黄色免费电影| 国产制服丝袜一区| 一本到三区不卡视频| 欧美日韩高清一区二区| 欧美精品一区二区三区久久久 | 久久这里只有精品视频网| 久久精品一二三| 亚洲影视在线观看| 韩国一区二区视频| 91原创在线视频| 日韩一级大片在线| 中文字幕一区二区三区不卡在线| 一区二区三区 在线观看视频| 蜜臀av性久久久久蜜臀aⅴ| 懂色一区二区三区免费观看| 欧美私模裸体表演在线观看| 精品国产乱码久久久久久图片| 亚洲日本在线视频观看| 麻豆精品视频在线观看视频| 成人福利电影精品一区二区在线观看| 在线视频你懂得一区| 久久久噜噜噜久久中文字幕色伊伊| 亚洲免费观看高清| 韩国成人在线视频| 一本一本大道香蕉久在线精品| 欧美第一区第二区| 亚洲国产精品久久不卡毛片 | 91香蕉视频污在线| 日韩一区二区电影在线| 亚洲欧美欧美一区二区三区| 久草中文综合在线| 在线视频你懂得一区二区三区| 国产偷国产偷亚洲高清人白洁| 亚洲18影院在线观看| 成人成人成人在线视频| 精品国产亚洲在线| 日日摸夜夜添夜夜添国产精品 | xfplay精品久久| 视频在线观看91| 日本高清无吗v一区| 国产偷国产偷精品高清尤物 | 欧美性大战xxxxx久久久| 中文字幕免费一区| 韩国女主播成人在线观看| 欧美日韩国产综合草草| 亚洲欧美精品午睡沙发| 国产成人午夜99999| 欧美一级黄色录像| 日韩精品视频网站| 欧美亚洲一区二区三区四区| 国产精品国产三级国产aⅴ无密码| 国产美女一区二区三区| 欧美不卡视频一区| 裸体一区二区三区| 欧美一级一区二区| 日韩精品1区2区3区| 欧美日韩精品一区二区三区 | 亚洲一区二区在线免费看| 成人v精品蜜桃久久一区| 日本一区二区在线不卡| 国产超碰在线一区| 国产日产精品一区| 风间由美中文字幕在线看视频国产欧美| 欧美videos中文字幕| 久久精品国产色蜜蜜麻豆| 精品88久久久久88久久久| 国产一区二区福利视频| 亚洲国产精品二十页| 成人不卡免费av|