青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

萬(wàn)星星@豌豆莢 歡迎加入我們
一個(gè)吃軟飯的男人!!!!!我只想寫(xiě)程序####
微博:http://weibo.com/wanlianwen
posts - 172,  comments - 1253,  trackbacks - 0

研究背景

自職業(yè)生涯起到現(xiàn)在,我參與過(guò)三個(gè)im類(lèi)產(chǎn)品,其中我主要負(fù)責(zé)的是界面庫(kù)開(kāi)發(fā)。眾所周知,im軟件中有一個(gè)非常重要的控件用于消息展示,實(shí)現(xiàn)方式無(wú)外乎基于richedit(目前這一類(lèi)為主要方式,代表:QQ)、基于webbrowser(代表:GTalk),可能會(huì)有基于WebKit的,我沒(méi)有刻意去搜集。很多時(shí)候?qū)τ谙鄬?duì)簡(jiǎn)單的情況,比如在游戲中,完全可以自己繪制。

 

我曾經(jīng)模仿過(guò)GTalk的實(shí)現(xiàn)方式,由于當(dāng)時(shí)自己經(jīng)驗(yàn)欠缺以及與公司寫(xiě)頁(yè)面的人溝通上的問(wèn)題,效果不是那么滿(mǎn)意,僅僅夠用,后來(lái)自己離開(kāi)也沒(méi)再繼續(xù)做這方面研究。機(jī)制上這種方式是可行的,native端事情不多。

 

后來(lái)的工作中,主要是基于richedit在做,都是安排其他人負(fù)責(zé)。在開(kāi)發(fā)過(guò)程中,遇到種種問(wèn)題,用過(guò)各種不優(yōu)雅的“伎倆”,由于欠缺OLE知識(shí),做的人很痛苦,找不到樂(lè)趣。微軟官方有一個(gè)例子,然而只披露了使用技巧的冰山一角;codeproject也有少的可憐的幾個(gè)例子,經(jīng)不住商業(yè)化應(yīng)用;互聯(lián)網(wǎng)搜索的一些文章大多都是簡(jiǎn)單的插入圖片等,聊勝于無(wú)。

 

《基于Chrome開(kāi)源提取的界面開(kāi)發(fā)框架》系列文章獲得了不少支持,在提取過(guò)程中我自己也成長(zhǎng)很多。抽取出來(lái)的引擎要想用于商業(yè)化開(kāi)發(fā),我個(gè)人覺(jué)得欠缺的主要是富文本渲染這一塊,這使我開(kāi)始研究richedit。斷斷續(xù)續(xù),期間各種事情,幾經(jīng)放棄。后來(lái)一個(gè)網(wǎng)友在這個(gè)問(wèn)題上又找到我,臨時(shí)的幫助他解決問(wèn)題之后,不禁感嘆,為什么互聯(lián)網(wǎng)上找不到一個(gè)優(yōu)雅的解決方案甚至是深入的介紹?

 

網(wǎng)友megax的文章http://m.shnenglu.com/megax/archive/2012/03/22/168601.html中關(guān)于制作編輯器方面知識(shí)提及的http://www.catch22.net/tuts/neatpad讓我著實(shí)佩服,老外對(duì)待研究的態(tài)度真的很?chē)?yán)謹(jǐn),分享的開(kāi)發(fā)性和持續(xù)性方面遠(yuǎn)遠(yuǎn)勝于我們。系列文章中的絕大多數(shù)概念知識(shí)我都接觸過(guò),然而很多沒(méi)有深究,經(jīng)驗(yàn)遠(yuǎn)遠(yuǎn)不如文章主人。

 

Richedit的研究的大部分知識(shí)都在OLE方面。現(xiàn)在計(jì)算機(jī)的發(fā)展,技術(shù)的百花齊放,使得Windows平臺(tái)不再那么大行其道,Windows技術(shù)也不再那么不可一世,Mfc越來(lái)越被拋棄,Windows程序員誠(chéng)惶誠(chéng)恐,新生代早早把自己定位在更炫更酷更激情的技術(shù)平臺(tái)。在Windows Native開(kāi)發(fā)沒(méi)有徹底失寵前,我打算把自己死啃得來(lái)的OLE知識(shí)發(fā)揮“余熱”,對(duì)richedit這個(gè)東西應(yīng)用于im領(lǐng)域的問(wèn)題解決一下,希望對(duì)其他人有幫助,也希望沒(méi)有重復(fù)造輪子。



研究目標(biāo)

RicheditWindows底層的組件,甚至在2004年泄漏的Win2K代碼中都沒(méi)有,它是獨(dú)立于edit組件的,而edit位于ntuser中,亦相當(dāng)?shù)讓樱m在泄漏代碼中出現(xiàn),然而抽取出來(lái)的可能性不大。從某種角度來(lái)講,Reactos 就是抄襲的這份代碼,明眼人可以從其死灰復(fù)燃的更新列表中發(fā)覺(jué)。很奇怪的是Reactos 的代碼中有richedit,我也移植過(guò),只是后來(lái)發(fā)現(xiàn)功能實(shí)在太弱,無(wú)可用性,遂放棄,至于Wine 是不是抄襲這份代碼,我無(wú)從得知,也沒(méi)精力再去跟蹤。

 

Richedit 的接口相當(dāng)穩(wěn)定,我在Win8中試驗(yàn)過(guò)完全兼容,我想它應(yīng)該會(huì)持續(xù)很久,所以值得去好好研究一把。

 

《基于Chrome開(kāi)源提取的界面開(kāi)發(fā)框架》的view框架,如果能有一個(gè)rtf格式的渲染利器,配以ole的展示,我想足以成為互聯(lián)網(wǎng)商業(yè)開(kāi)發(fā)的UI解決方案。

 

Richedit 就機(jī)制上來(lái)講跟WebKit一樣,或者應(yīng)該反過(guò)來(lái)說(shuō)。Richedit窗口本身是對(duì)ITextServices的封裝,實(shí)現(xiàn)ITextHost接口與ITextServices交互提供平臺(tái)支持。ITextServices的支持分兩大類(lèi):基于文本的ITextDocument和基于oleIRichEditOle。作為ole容器,提供的功能主要通過(guò)實(shí)現(xiàn)幾個(gè)接口完成的,包括:IOleClientSiteIAdviseSinkIOleInPlaceSite,缺省的Richedit 貌似不支持定位激活,想要達(dá)到激活效果必須支持最后一個(gè)接口。與剪貼板和拖拽數(shù)據(jù)打交道需要支持統(tǒng)一數(shù)據(jù)傳輸接口IDataObject

 

研究主要參考對(duì)象為QQ,目標(biāo)為:支持粘貼格式、動(dòng)畫(huà)ole控件、定制ole菜單、拖拽、文本操縱、窗口/無(wú)窗口的統(tǒng)一支持等,我會(huì)在下一篇列出詳細(xì)的大綱。



已做工作

OLE標(biāo)準(zhǔn)提供了大量工業(yè)化標(biāo)準(zhǔn)接口以及繁雜的交互規(guī)范,事實(shí)上除了微軟(以office系列產(chǎn)品為典范),鮮有軟件全盤(pán)實(shí)施。可以說(shuō)MFC的大部分工作都是用在實(shí)現(xiàn)OLE,所以其臃腫大抵源于此,不得不臃腫,早些年我接觸wtl后得出,MFC - WTL == OLE,或許還有一些打印等方面設(shè)施,但我不覺(jué)得這些是主要特性。以我現(xiàn)在眼光來(lái)看待,把MFC拆分開(kāi),其集合類(lèi)、打印框架、COM支持、OLE支持、文檔/視圖/框架模板(盡管現(xiàn)在用的極少,大多在行業(yè)軟件領(lǐng)域)、進(jìn)程/線(xiàn)程/模塊狀態(tài)管理等,都還不錯(cuò),呃,貌似我快把它說(shuō)全了,不好意思,我的老毛病又犯了,其實(shí)在心底,我還有那么一點(diǎn)不舍,即便我很多年沒(méi)有用它開(kāi)發(fā)商業(yè)軟件了。我從MFC學(xué)到的東西太多太多,以至于我不肯說(shuō)它的壞話(huà)。

 

再一次,我選擇了從MFC中抽取代碼。我嘗試過(guò)直接使用MFC,靜態(tài)鏈接以便偷偷的不告訴別人,以免“破壞形象”。但我不覺(jué)得我能做到,原因就是整個(gè)MFC耦合的比較緊密,我不想或者無(wú)法使用整個(gè)框架來(lái)對(duì)外提供服務(wù),所以我不得不制造小輪子。我也試過(guò)直接實(shí)現(xiàn),但是工作量還真不小,我怕自己等不及,故再次祭出看家本領(lǐng),順藤摸瓜,牽出一個(gè)支持OLE的最小內(nèi)核,經(jīng)過(guò)1-2周我能騰出的時(shí)間,終于做到了,于是我寫(xiě)下了開(kāi)篇,后面我需要把整個(gè)思路刻畫(huà)出來(lái)。下面是一個(gè)示例,插入瀏覽器,支持定位激活:


 

這個(gè)例子不具備任何說(shuō)明性,只是用來(lái)測(cè)試最小的OLE內(nèi)核框架是否可以工作。

 

測(cè)試的接口如下:


 

這一篇到此為止!依然是閑話(huà)多,干貨少。我會(huì)努力的!

posted on 2012-05-20 20:01 萬(wàn)連文 閱讀(4808) 評(píng)論(15)  編輯 收藏 引用 所屬分類(lèi): richedit

FeedBack:
# re: richedit研究開(kāi)篇01
2012-05-20 22:36 | unkown
動(dòng)畫(huà)ole控件,關(guān)鍵點(diǎn)在于定時(shí)刷新時(shí),使用IOleInPlaceSite::GetWindowContext 獲取到動(dòng)畫(huà)的范圍,然后InvalidateRect  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01
2012-05-20 22:50 | 萬(wàn)連文
@unkown

感謝提示,動(dòng)畫(huà)的效率需要考慮如何設(shè)計(jì)時(shí)鐘隊(duì)列,刷新也需要考慮當(dāng)前屏幕的最小優(yōu)化,好像據(jù)說(shuō)直接InvalidateRect效率不高,有待進(jìn)一步確認(rèn),不過(guò)技術(shù)細(xì)節(jié)差不多都鬧清楚了。  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01
2012-05-21 09:24 | unkown
呵呵,要用IOleInPlaceSite::GetWindowContext 獲取到動(dòng)畫(huà)的rectPos范圍,然后InvalidateRect的這種方法,是因?yàn)橹苯诱{(diào)用FireViewChange,會(huì)引起Richedit重新排列刷新GIF當(dāng)前所在的行,有滾動(dòng)的問(wèn)題尤其明顯。  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01
2012-05-21 15:13 | 飯中淹
我用RICHEDIT的WINDOWLESS模式,在codeproject上找到的代碼。
最后事情歸結(jié)為實(shí)現(xiàn)一個(gè)RTF的生成器,下載了最新的RTF文檔之后,我徹底萎了。
  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01[未登錄](méi)
2012-05-29 07:31 | 路人甲
win2k 泄漏代碼里是有 richedit 控件源碼的. 下面是我整理的一份. 供參考.
http://winutilities.svn.sourceforge.net/svnroot/winutilities/richedit
  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01
2012-05-29 08:33 | 萬(wàn)連文
@路人甲

參見(jiàn):http://www.cnblogs.com/wlwel/archive/2012/05/20/2510761.html
發(fā)現(xiàn)你的代碼跟這個(gè)朋友給我的一樣,能解釋為是同一人嗎?  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01[未登錄](méi)
2012-05-29 18:36 | 路人甲
@萬(wàn)連文
不是的。我都忘了是取自 Nt4 還是 win2k 了。 工程里有舊版 WordPad 的完整源碼,微軟的示例程序, 全面展示了 richedit 的用法。 Enjoy it!!!
  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01
2012-05-29 19:31 | 萬(wàn)連文
@路人甲
非常感謝你,這樣看來(lái)Nt4 里面的richedit 還是比較獨(dú)立的,再次謝謝你!  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01
2012-06-03 14:05 | weolar
嘿嘿,萬(wàn)兄我又來(lái)了。我還嘗試過(guò)用ie2來(lái)做richedit:
http://bbs.pediy.com/showthread.php?t=137616  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01
2012-06-03 16:11 | 萬(wàn)連文
@weolar
Greate! 只可惜我沒(méi)有帳戶(hù),可以發(fā)我郵箱一份嗎?如果還能有閑暇的蛋疼的時(shí)間我一定會(huì)回頭再看看,是否還有能讓自己提升一把的亮點(diǎn)。  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01
2012-06-03 16:14 | 萬(wàn)連文
@weolar
呃,我已經(jīng)注冊(cè),24小時(shí)之后可以下載。我記憶中,之前是見(jiàn)過(guò),也想下載,那時(shí)候好像還需要邀請(qǐng)碼。發(fā)完上面的信息后,我抱著試一試的心情,點(diǎn)擊了注冊(cè),居然不需要,難道以前是錯(cuò)覺(jué)?  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01
2012-07-02 14:29 | M77
如果博主只是要RichEdit的功能,而且又不跨平臺(tái),在Windows下直接用RichEdit就可以了,我記得chrome UI可以添加原生控件的。  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01
2012-07-02 17:11 | 萬(wàn)連文
@M77
原生控件不是Windowless,效果有差距。  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01
2013-06-24 17:08 | zhenhua
我遇到一個(gè)問(wèn)題,在richedit中插入網(wǎng)頁(yè),只能顯示黑色的背景,請(qǐng)問(wèn)這是什么原因!  回復(fù)  更多評(píng)論
  
# re: richedit研究開(kāi)篇01[未登錄](méi)
2013-06-25 10:52 | rich
請(qǐng)問(wèn)這樣插入網(wǎng)頁(yè)為什么不行

IStorage* lpStorage = NULL;//存儲(chǔ)接口
IOleObject* lpOleObject = NULL;//OLE對(duì)象
LPLOCKBYTES lpLockBytes = NULL;//LOCKBYTE
IOleClientSite* lpOleClientSite = NULL;
CComPtr<IWebBrowser2> lpPolyCtl = NULL; //控件
CLSID clsid;
REOBJECT reobject;
HRESULT hr;
IRichEditOle *lpRichEditOle =m_RichEdit.GetIRichEditOle();
if(lpRichEditOle == NULL)
return ;
//創(chuàng)建PolyCtl對(duì)象并獲取接口
hr = ::CoCreateInstance(CLSID_WebBrowser,NULL,CLSCTX_INPROC,IID_IWebBrowser2,(LPVOID*)&lpPolyCtl);
//hr = ::CoCreateInstance(CLSID_InternetExplorer,NULL,CLSCTX_LOCAL_SERVER,IID_IWebBrowser2,(LPVOID*)&lpPolyCtl);
if( lpPolyCtl == NULL )
{
return ;
}

// USES_CONVERSION;
BOOL bRet = TRUE;

try{
hr = lpPolyCtl->QueryInterface(IID_IOleObject,(void **)&lpOleObject);//獲得數(shù)據(jù)對(duì)象接口
if( hr != S_OK )
AfxThrowOleException(hr);
hr = lpOleObject->GetUserClassID(&clsid);
if ( hr != S_OK)
AfxThrowOleException(hr);

hr = ::CreateILockBytesOnHGlobal(NULL, TRUE, &lpLockBytes);//創(chuàng)建LOCKBYTE對(duì)象
if (hr != S_OK)
AfxThrowOleException(hr);
ASSERT(lpLockBytes != NULL);

hr = ::StgCreateDocfileOnILockBytes(lpLockBytes,//創(chuàng)建復(fù)合文檔
STGM_SHARE_EXCLUSIVE|STGM_CREATE|STGM_READWRITE, 0, &lpStorage);
if (hr != S_OK)
{
VERIFY(lpLockBytes->Release() == 0);
lpLockBytes = NULL;
AfxThrowOleException(hr);
}

lpRichEditOle->GetClientSite(&lpOleClientSite);

ZeroMemory(&reobject, sizeof(REOBJECT));//初始化一個(gè)對(duì)象
reobject.cbStruct = sizeof(REOBJECT);
reobject.clsid = clsid;
reobject.cp = REO_CP_SELECTION;
reobject.dvaspect = DVASPECT_CONTENT;
reobject.dwFlags = REO_BELOWBASELINE;
reobject.poleobj = lpOleObject;
reobject.polesite = lpOleClientSite;
reobject.pstg = lpStorage;


lpOleObject->SetClientSite(lpOleClientSite);//

hr = lpRichEditOle->InsertObject( &reobject );
if (hr != S_OK)
AfxThrowOleException(hr);
OleSetContainedObject(lpOleObject,TRUE);

hr = lpPolyCtl->Navigate(L"www.baidu.com",NULL,NULL,NULL,NULL);
if (hr != S_OK)
AfxThrowOleException(hr);
::SendMessage(m_RichEdit.GetSafeHwnd(), EM_SCROLLCARET, (WPARAM)0, (LPARAM)0);
lpOleObject->DoVerb(OLEIVERB_UIACTIVATE, NULL, lpOleClientSite, 0,
m_RichEdit.m_hWnd, NULL);
lpOleObject->DoVerb(OLEIVERB_SHOW, NULL, lpOleClientSite, 0, m_RichEdit.m_hWnd,
NULL);
m_RichEdit.RedrawWindow();
}

catch( COleException* e )
{
TRACE(_T("OleException code:%d"),e->m_sc);
e->Delete();
bRet = FALSE;
}

// release the interface
//if( lpPolyCtl != NULL ) lpPolyCtl->Release();
if( lpOleObject != NULL ) lpOleObject->Release();
if( lpOleClientSite != NULL ) lpOleClientSite->Release();
if( lpStorage != NULL ) lpStorage->Release();

return ;  回復(fù)  更多評(píng)論
  
簡(jiǎn)歷下載
聯(lián)系我

<2006年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用鏈接

留言簿(66)

隨筆分類(lèi)

隨筆檔案

相冊(cè)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            最新国产精品拍自在线播放| 亚洲视频一区二区免费在线观看| 国产欧美一区二区精品婷婷| 亚洲欧美日韩直播| 亚洲精品乱码久久久久久黑人| 亚洲免费观看高清在线观看 | 亚洲欧洲三级| 亚洲夫妻自拍| 亚洲电影免费观看高清完整版在线观看 | 一本色道久久综合亚洲精品不卡 | 欧美www视频在线观看| 欧美一二区视频| 欧美一区二区三区久久精品| 久久精品女人天堂| 一本一本久久a久久精品综合妖精| 99精品国产99久久久久久福利| 久久成人18免费网站| 性欧美video另类hd性玩具| 欧美激情女人20p| 免费观看国产成人| 猛男gaygay欧美视频| 亚洲电影在线播放| a91a精品视频在线观看| 亚洲手机成人高清视频| 亚洲欧美福利一区二区| 亚洲一区二区三区免费观看 | 亚洲欧美激情四射在线日 | 国产一区二区精品久久| 一本色道综合亚洲| 久久riav二区三区| 玖玖玖免费嫩草在线影院一区| 亚洲午夜电影网| 久久久久久有精品国产| 免费亚洲婷婷| 午夜免费在线观看精品视频| 欧美国产高清| 国产曰批免费观看久久久| 精品成人在线| 亚洲国产美女久久久久| 夜久久久久久| 久久精品中文字幕免费mv| 欧美中文字幕| 亚洲精品一二三区| 性欧美长视频| 国产精品久久久久久久久久三级| 日韩一区二区久久| 美女精品在线| 欧美一区二区私人影院日本| 久久久无码精品亚洲日韩按摩| 欧美精品在线一区| 在线视频亚洲欧美| 免费影视亚洲| 久久野战av| 一区二区三区欧美在线| 亚洲一区网站| 国产日韩欧美中文| 久久久精品国产免大香伊| 午夜精品在线| 亚洲风情亚aⅴ在线发布| 裸体一区二区| 麻豆精品视频在线观看视频| 亚洲欧洲美洲综合色网| 亚洲国产精品久久久久婷婷884| 久久午夜国产精品| 在线一区二区三区四区| 久久精品国产欧美激情| 久久九九国产| 亚洲精品中文字幕在线观看| 在线天堂一区av电影| 国产亚洲综合在线| 久久精品国产精品亚洲| 欧美jizz19性欧美| 乱中年女人伦av一区二区| 欧美成人精品在线观看| 欧美在线一二三四区| 国内精品久久久久久久影视麻豆| 国内精品一区二区三区| 一色屋精品视频在线看| 亚洲欧美怡红院| 你懂的视频欧美| 亚洲黄色天堂| 亚洲精品久久7777| 免费国产一区二区| 亚洲精品在线视频| 亚洲人成高清| 国产精品久久77777| 久久精品国产精品亚洲综合| 久久久www成人免费毛片麻豆| 在线免费高清一区二区三区| 欧美激情网友自拍| 欧美日韩成人综合在线一区二区| 亚洲性夜色噜噜噜7777| 欧美一二三区精品| 亚洲人成小说网站色在线| 一区二区三区四区五区精品| 国产欧美视频在线观看| 91久久精品日日躁夜夜躁欧美 | 亚洲激情网址| 欧美激情一区二区三区全黄| 欧美日本精品在线| 久久久久九九视频| 欧美黄色视屏| 久久精品日产第一区二区三区| 免费观看日韩av| 欧美亚洲一级片| 欧美二区视频| 久久av一区| 欧美另类变人与禽xxxxx| 久久高清免费观看| 欧美日韩精品一二三区| 久热精品在线| 国产麻豆成人精品| 亚洲国内自拍| 国内精品久久久久伊人av| 亚洲美洲欧洲综合国产一区| 精东粉嫩av免费一区二区三区| 99热这里只有精品8| 91久久精品国产| 久久精品成人一区二区三区蜜臀| 一本在线高清不卡dvd| 久久久噜噜噜久噜久久| 欧美亚洲视频在线观看| 欧美日韩精品| 亚洲日本欧美| 亚洲人成亚洲人成在线观看图片| 久久爱另类一区二区小说| 亚洲欧美在线免费| 91久久在线视频| 久久理论片午夜琪琪电影网| 久久黄金**| 国产欧美视频一区二区三区| 亚洲视频在线观看三级| 一区二区三区毛片| 蜜臀久久99精品久久久久久9 | 亚洲第一区色| 欧美在线精品免播放器视频| 午夜一区二区三区不卡视频| 国产精品激情电影| 亚洲深夜福利视频| 亚洲欧美日韩成人| 国产精品成人一区| 亚洲欧美电影在线观看| 欧美在线三区| 国产真实乱偷精品视频免| 午夜久久资源| 麻豆精品视频在线观看视频| 在线观看精品一区| 你懂的亚洲视频| 亚洲大片在线观看| 亚洲国产黄色片| 欧美大胆人体视频| 亚洲伦理精品| 欧美亚洲免费电影| 韩国一区电影| 麻豆91精品| 亚洲精品综合精品自拍| 午夜免费日韩视频| 国内成人精品视频| 麻豆精品视频| 亚洲精品一区二区三区婷婷月| 中日韩高清电影网| 国产精品蜜臀在线观看| 午夜免费日韩视频| 欧美激情区在线播放| 在线亚洲自拍| 国产精品久久久久久久久动漫| 一区二区三区不卡视频在线观看| 亚洲午夜精品久久| 黄色成人精品网站| 欧美日韩国产区| 欧美一级夜夜爽| 91久久精品久久国产性色也91| 午夜精品久久久久| 亚洲电影免费| 国产精品国产成人国产三级| 久久青青草原一区二区| 99视频精品免费观看| 久久综合色综合88| 亚洲淫性视频| 91久久一区二区| 国产亚洲精品久久久久动| 免费久久99精品国产自在现线| 在线综合视频| 欧美激情小视频| 久久精品国产欧美激情| 在线视频欧美日韩| 亚洲国产专区校园欧美| 国产欧美日韩一区二区三区在线观看 | 国产精品久久久久久久9999| 久久伊人免费视频| 亚洲一区二区不卡免费| 欧美国产在线观看| 久久国产精品99久久久久久老狼| 亚洲人午夜精品| 国语对白精品一区二区| 国产精品蜜臀在线观看| 欧美体内谢she精2性欧美| 亚洲一区二区三区国产| 一本色道久久综合亚洲精品高清 | 亚洲激情电影在线|