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

posts - 34,comments - 2,trackbacks - 0
    拷貝即是通常所說的復制(Copy)或克隆(Clone),對象的拷貝也就是從現有對象復制一個“一模一樣”的新對象出來。雖然都是復制對象,但是不同的復制方法,復制出來的新對象卻并非完全一模一樣,對象內部存在著一些差異。通常的拷貝方法有兩種,即深拷貝和淺拷貝,那二者之間有何區別呢?
我的理解是:

1、深拷貝和淺拷貝之間的區別在于是否復制了子對象。
2、如果一個類擁有資源(堆,或者是其它系統資源),,當這個類的對象發生復制過程的時候,資源重新分配,這個過程就是深拷貝,反之對象存在資源,但復制過程并未復制資源的情況視為淺拷貝。

當用一個已初始化過了的自定義類類型對象去初始化另一個新構造的對象的時候,拷貝構造函數就會被自動調用。也就是說,當類的對象需要拷貝時,拷貝構造函數將會被調用。以下情況都會調用拷貝構造函數:
①、一個對象以值傳遞的方式傳入函數體:這個好理解,因為傳遞給函數體的參數不是  str 而是 _str  ,是str的復制品。所以必然會調用拷貝構造函數。 
②、一個對象以值傳遞的方式從函數返回 :相當于構造一個新的對象。
③、一個對象需要通過另外一個對象進行初始化。:同上、

正如您理解那樣 “淺拷貝:只拷貝對象的基本屬性,其他的引用不拷貝,還是保留引用”如果在類中沒有顯式地聲明一個拷貝構造函數,那么,編譯器將會自動生成一個默認的拷貝構造函數,該構造函數完成對象之間的位拷貝。當對象沒有指針時,按照上面的規則,則一切正常,淺拷貝把數據復制過新對象。但當對象有指針時,因為淺拷貝引用不拷貝,所以新對象與舊對象他們指向的是同一個內存區,這時當釋放內存時就出現釋放兩次,出錯了。

這時需要深拷貝..................
所以通常我們需要自己寫拷貝構造函數,以免出現錯誤。
//////////////參考資料所得,正確與否歡迎討論、

 

posted @ 2011-09-27 01:24 Yu_ 閱讀(399) | 評論 (0)編輯 收藏

1、         組件:組件是將應用程序分割成多個獨立部分,維護時用新組件替代舊組件。而傳統的應用程序是將程序分割成文件、模塊和類,將他們編譯并鏈接成一大塊。

組件特點:

   、可修改,可替換,滿足用戶的需求

   、有組件庫可以快速組裝,AcitveX控件

   、分布式:事務邏輯和系統服務相分離,簡化了系統開發的復雜性,

   、組件需要動態連接,,不可能在運行時編譯。

   、要封裝,不要改變其接口、

   、以二進制的形式發布,已編譯好的。

2、         接口:提供兩個不同對象間的一種連接,計算機是通過一組函數連接起來的,其實這組函數實質上就是定義了程序中不同部分的接口。對于COM接口是包含一個函數指針數組的內存結構。

用純虛函數作為接口。看下面經典例子:

#define InSruct struct

InSruct          IA           //定義接口

{

       virtual void Fun1()=0;

};

 

class CA:public IA     //定義組件(注意類可以繼承結構體,結構體也能繼承結構體)

{

       void Fun1()

       {

              cout<<"class Fun1()";

       }

};

Void main()                    

{

       CA *pCa=new CA;

       IA *pIa=pCa;

       pIa->Fun1();   //表示接口:在程序內部實現。

       delete pCa;

}

 

//特別注意的是:類不是組件,組件不一定要類實現,也不不一定需要繼承、

 

  

 

 

 

 

 

3、         組件的內存(探討COM接口為什么可以用純抽象基類實現COM組件)

抽象基類提供vtbl指針指向虛擬函數、每個對象共享同一個vtbl指針,但數據各自不同

//////////////////////////////////////////////////////////////////////////////////////////////

4、         客戶通過不斷詢問清晰組件干什么,但沒有完成知道組件內部怎么樣。

客戶如何向組件詢問關于它所支持的接口?組件如何回答、以及這種請求應答方式的結果、

 

 

 

   HRESULT QueryInterface( REFIID iid, void** ppvObject);函數查詢某個組件是否支持某個特定的接口

//iid 是要查詢的接口ID, ppvObject是返回的接口的指針,

   關于類型轉換:

static_cast

 用法:static_cast < type-id > ( expression )

  該運算符把expression轉換為type-id類型,但沒有運行時類型檢查來保證轉換的安全性。它主要有如下幾種用法:

  用于類層次結構中基類(父類)和派生類(子類)之間指針或引用的轉換。

  進行上行轉換(把派生類的指針或引用轉換成基類表示)是安全的;

  進行下行轉換(把基類指針或引用轉換成派生類表示)時,由于沒有動態類型檢查,所以是不安全的。

  用于基本數據類型之間的轉換,如把int轉換成char,把int轉換成enum。這種轉換的安全性也要開發人員來保證。

  把空指針轉換成目標類型的空指針。

  把任何類型的表達式轉換成void類型。

  注意:static_cast不能轉換掉expression的const、volitale、或者__unaligned屬性。

posted @ 2011-09-21 19:54 Yu_ 閱讀(1138) | 評論 (0)編輯 收藏

通常我們做的程序不應該只局限于程序間的操作。也許能對電腦上其他的程序操作會更有意思。我們能做到,也很容易做到、使用

FindWindow。

HWND FindWindow( LPCTSTR lpClassName, // pointer to class name LPCTSTR lpWindowName // pointer to window name );

推薦使用HWND FindWindowEx(

HWND hwndParent,// handle to parent window

HWND hwndChildAfter, // handle to a child window

LPCTSTR lpszClass, // pointer to class name

LPCTSTR lpszWindow // pointer to window name );  功能更加強大。

FindWindowEx 能根據多種條件查找。

1、hwndParent   父窗口

2、hwndChildAfter  兄弟窗口

3、lpszClass   特定字符串

4、lpszWindow  或者窗口的標題。

當你僅知道要通信窗口的某一情況時,便可以查找到。

推薦使用小工具


能快速查找出你電腦的應用程序的類名與標題、

posted @ 2011-04-11 10:53 Yu_ 閱讀(377) | 評論 (0)編輯 收藏

基于MSDN的ListBoxD 處理消息

(1)、LB_FINDSTRING 消息(一般查找)
wParam    在第一個條目被查找到之前的條目索引(也就是開始查找的索引位置)。當搜索達到列表框的底部時,搜索將重新回到由該參數指定的位置從頭查找。如果該參數為-1,將從列表框的起始索引(0)開始查找。

lParam     一個指向以NULL結尾的字符串,該字符串包含了將要搜索的內容。搜索是大小寫敏感的。所以可以搜索任何大小寫組合的字符串形式。

Return Value      如果成功,返回第一個匹配的條目的索引,如果失敗,返回LB_ERR。
備注::如果你以自繪形式創建的列表框,該消息會返回一個匹配由lParam參數提供的值長整型的值。

(2)、LB_FINDSTRINGEXACT 消息(精確查找)
wParam      基于零的開始索引。當搜索達到列表框的底部時,將返回到開始索引處繼續進行搜索。如果該參數為-1,將從列表框的開始處從頭執行搜索。 
lParam       指向被搜索字串的字符串指針。該字符串可以包含完整的文件名及擴展。搜索是不分大小寫的。

Return Value     返回值是基于零的匹配條目的索引。當失敗時,返回LB_ERR。
Remarks         該函數僅在指定字符串和列表框中的條目的長度相等且每個字符均相等的情況才算匹配。如果一個應用程序以自繪樣式創建列表框,則由該消息執行的內容將取決于LBS_SORT是否被使用。


(3)、LB_GETANCHORINDEX 消息       //獲得條目錨點的索引,錨點就是多選狀態下選擇的起始條目。


(4)、LB_GETCARETINDEX 消息                 //返回在多選狀態下,具有焦點的條目的索引。該條目既可以被選中,也可以是沒被選中。


(5)、LB_GETCURSEL 消息                  //獲得當前被選條目的索引。僅在單選狀態的列表框有效。
Return Value  在單選狀態的列表框中,返回值是基于零的當前選中條目的索引,如果未發現選中的條目,返回值是LB_ERR。

Remarks    不要給多選狀態的列表框發送該消息。為了獲得處于多選狀態的列表框的選中條目的索引,可以使用LB_GETSELITEMS消息。如果要獲得多選狀態下的列表框中哪一個條目具有焦點,可以使用LB_GETSEL消息。如果將該消息發送給一個具有多選狀態的列表框,該消息返回具有焦點的條目索引。如果沒有條目被選中,返回 0.


(6)、LB_GETHORIZONTALEXTENT 消息          //如果列表框具有一個水平滾動條,該消息獲得水平滾動的寬度(單位像素)

Return Value           返回值是滾動寬度(單位是像素)

Remarks                 為了響應該消息列表框必須已經定義了WS_HSCROLL樣式。如果應用程序并未給列表框定義水平擴展(使用LB_SETHORIZONTALEXTENT),默認的水平擴展時0.注意:列表框并不會自動更新水平擴展。

(7)、LB_GETITEMDATA 消息                   //獲得與指定的列表框中條目相關的程序自定義值。


(8)、LB_GETITEMHEIGHT            //應用程序發送該消息用以返回一個Listbox中條目的高度
wParam         指定基于0的listbox 中的條目。該索引僅在列表框使用 LBS_OWNERDRAWVARIABLE風格時使用。否則,該值必須為0.

(9)、LB_GETITEMRECT            //獲得列表框中條目的邊界矩形尺寸
wParam 條目的索引值。 
lParam  指向一個RECT結構的指針,該結構用于接收列表框中條目的客戶坐標值

(10)、LB_GETLOCALE            //獲得當前列表框的區域。可以使用這個區域來決定顯示文本正確的排序規則。

(11)、LB_GETSEL Message           //獲得一個條目的選擇狀態。如果一個條目被選中,返回Yu值大于0,否則,返回值是0.如果發生錯誤,返回LB_ERR.

(12)、LB_GETSELCOUNT Message           //在具有多選狀態的列表框中,該消息獲得選中的條目的數量 。返回值是列表框中選中的條目的數量。如果列表框處于單選狀態,返回值是LB_ERR。

(13)、LB_GETSELITEMS Message      //在具有多選狀態的列表框中,該消息通過填充一個緩沖來保存被選中的條目。
wParam          選中條目數量的最大值。 
lParam         足夠大的緩沖用于存儲整型值。
Return Value               返回值是放置在緩沖中的條目的數量。如果列表框處于單選狀態,返回值是LB_ERR.

(14)、LB_GETTEXT                  //從列表框中獲得一個字符串。
wParam        所要返回的字符串。 
lParam        接收字符串的緩沖器。它的類型是LPTSTR,之后將強化轉換為LPARAM。緩沖器必須具有足夠的空間開存儲字符串(包括結尾的NULL)。一個LB_GETTEXTLEN消息可以在應用該消息之前用來獲得字符串長度(單位是TCHARS)。
Return Value        返回值是字符串長度(TCHARS)。不包括結尾的NULL字符。如果wParam未指定一個有效的索引,返回值LB_ERR
Remarks               如果以自繪樣式創建一個列表框,緩沖器指針將接受與條目(條目數據)相關的值。

(15)、LB_GETTEXTLEN                     //獲得一個列表框中字符串的長度
wParam           字符串的索引。 
lParam             未使用,必須為0
Return Value       返回值是字符串的長度,不包括結尾的NULL字符。在特定的情況下,該值事實上可能比文本的真實長度要大。如果wParam參數指向一個無效的索引,返回值是LB_ERR。
Remarks             在特定條件下,返回值將比真實的長度要大。這種情況發生在ANSI和Unicode混合時。
如果要獲得精確的長度,可以使用WM_GETTEXT,LB_GETTEXT 或 CB_GETLBTEXT消息,或 GetWindowText 函數。

(16)、LB_GETTOPINDEX Message                //獲得第一個“可見”的條目的索引。初始化時,第一個可見的條目是索引為0的條目,但如果列表框的發生滾動之后,該索引值會發生變化。
返回值是第一個可見的條目的索引。

(17)、LB_INITSTORAGE Message             //定位內存用于存儲列表框中的條目。該消息在向列表框中加入大量條目時使用。
wParam    加入的條目數量。
lParam       內存的量用于存儲條目字符串。(以字節)。
Return Value如果消息成功,返回值是所有的條目數量。如果消息失敗,返回值是LB_ERRSPACE。
Remarks          該消息能夠幫助加速條目數大于100的列表框初始化進程。它會預留一定量的內存空間,這樣,接下來LB_ADDSTRING,LB_INSERTSTRING,LB_DIR 和 LB_ADDFILE消息會使用更少的時間。

(18)、LB_INSERTSTRING Message           //向列表框中插入一個條目數據或字符串。不像LB_ADDSTRING 消息,該消息不會激活LBS_SORT樣式來對條目進行排序。
wParam          插入字符串的位置。如果參數為-1,字符串將插入到列表框的尾部。 
lParam          所要插入的字符串指針。如果以自繪的形式創建列表框,該參數的值會作為條目數據本身而不是字符串指針來存儲。可以使用LB_GETITEMDATA 和LB_SETITEDATA 消息來接收或修改條目數據。
Return Value          返回值是插入處的索引。如果發生錯誤,返回值是LB_ERR。如果沒有足夠空間來存儲新的字符串,返回值LB_ERRSPACE。

(19)、LB_ITEMFROMPOINT                   //一個應用程序發送這個消息用以返回基于0的位于ListBox內的離指定的點位置最近一個條目
返回值中低位存儲的是最近條目,高位存儲的值取決于給定點的位置,如果該點位于客戶區內,則為0,否則為1

(20)、LB_SELITEMRANGE            //在多選狀態下的列表框中選擇或取消選擇一個或多個連續條目。
wParam  TRUE 代表選擇條目,FALSE為取消選擇。 
lParam    低位字指定第一個選擇的條目索引。高位字指定最后一個選擇的條目索引。
Return Value如果發生錯誤,返回LB_ERR。
Remarks僅在具有多選狀態的列表框中使用該消息。該消息僅能用于前65536個條目。

(21)、LB_SELITEMRANGEEX        //在多選狀態下的列表框中選擇一個或多個連續的條目。
wParam 指定選中條目中第一個條目的索引。 
lParam   指定選中條目中最后一個條目的索引

(22)、LB_SETANCHORINDEX          //  設置錨點條目——從該條目開始,一個多重選擇開始。一個多重選擇會跨越錨點條目和結尾條目間所有的條目
wParam   新錨點條目的索引。 
lParam 該參數未使用。
Return Value          如果消息成功,返回值是0,如果消息失敗,返回值是LB_ERR。

(23)、LB_SETCARETINDEX            //在位于多選狀態下的列表框中指定索引下設置焦點矩形。如果條目不可見,會自動滾動可見。

(24)、LB_SETCOLUMNWIDTH Message       //對多列的列表框設置所有列的寬度(單位是像素)
wParam 所有列的寬度(像素) 
lParam 未使用,可以為0
Return Value     無返回值
 

(25)、LB_SETCOUNT Message               //設置由LBS_NODATA樣式而不是LBS_HASSTRINGS樣式創建的列表框的條目數量。
wParam       指定列表框中的條目數量。
lParam        未使用。
Return Value如果發生錯誤,返回值是LB_ERR。如果沒有足夠的內存空間,返回LB_ERRSPACE。

(26)、LB_SETCURSEL Message               //選擇一個字符串,并將其所在的條目滾動到視野內。當新的字符串被選定,列表框的高亮顯示將從原有的選中字符串移動到這個新的字符串上。

wParam          指定字符串索引。如果該參數為-1,列表框不具有任何選中條目。 
lParam             未使用,可以為0.
Return Value         如果發生錯誤,返回LB_ERR。如果wParam為-1,則無論什么情況均返回LB_ERR
Remarks            該消息僅適用于單選狀體下的列表框。

(27)、LB_SETHORIZONTALEXTENT          //  該消息用來設置列表框的寬度(單位是像素)。如果列表框的寬度小于設置的值,顯示水平滾動條。如果列表框的寬度等于設置的值,則不顯示滾動條。
LB_SETHORIZONTALEXTENT  wParam = (WPARAM) cxExtent;
 // 水平滾動寬度  lParam = 0;                 
// 未使用,必須為0

(28)、LB_SETITEMHEIGHT             //應用程序通過發送該消息來設置ListBox中條目的高度(單位是像素)。

wParam = (WPARAM) index;        // 條目索引lParam = MAKELPARAM(cyItem, 0);

lParam // 條目高度

(29)、LB_SETLOCALE 
設置列表框的當前區域。可以使用區域來決定顯示文本的正確排序規則。
wParam          指定區域標識。該表示用于列表框添加文本時排序之用。 
lParam             該參數未被使用。 
Return Value           返回值是之前的區域標識符。如果wParam參數指定一個未在系統中安裝的區域,返回值是LB_ERR,且當前的列表框區域不會發生改變。

可以使用MAKELCID宏來構建一個區域標識符


(30)、LB_SETSEL              //在多選狀態下的列表框中選擇一個字符串。

wParam         指定如何設置選擇。如果該參數為TRUE ,字符串被選中且高亮,如果為FALSE,移除高亮且字符串不再處于被選中狀態。 
lParam        指定字符串的索引。如果該參數為-1,選擇的添加或刪除取決于wParam的值。
Return Value       如果有錯誤,返回LB_ERR。
Remarks僅在多選狀態的列表框使用該消息才有效。

(31)、LB_SETTABSTOPS               //設置列表框的移字鍵。
wParam  移字鍵編號。
lParam 編號數組的第一個編號。

(32)、LB_SETTOPINDEX                     //確保給定條目在列表框中式可見的
wParam  條目索引 
lParam 未被使用。 
Return Value     如果發生錯誤,則返回LB_ERR.
Remarks        系統會滾動列表框以使指定的條目出現在列表框的頂部或達到最大滾動范圍

(33)、LB_SETITEMDATA Message            // 設置與列表框中指定條目相關的值。
wParam    指定條目的索引。如果該值為-1,lParam值應用于所有的列表框中的條目
lParam     指定與條目相關的值。
Return Value           發生錯誤,返回LB_ERR.
Remarks              如果條目位于一個以自繪樣式創建的列表框中,該消息將替換LB_ADDSTRING 或 LB_INSERTSTRING 消息中lParam參數的值。

//////////////////////////////////////////

posted @ 2011-04-11 10:29 Yu_ 閱讀(868) | 評論 (0)編輯 收藏
僅列出標題
共4頁: 1 2 3 4 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲一区二区三区免费观看 | 美女999久久久精品视频| 亚洲精品日韩在线观看| 亚洲国产精品一区二区三区| 久久久91精品| 美女性感视频久久久| 免费观看成人| 麻豆精品在线观看| 91久久精品国产91久久性色| 亚洲美女av在线播放| 日韩午夜电影av| 亚洲欧美日韩在线不卡| 欧美综合激情网| 免费观看一级特黄欧美大片| 欧美不卡视频| 国产精品久久综合| 国内外成人免费激情在线视频网站 | 亚洲精品久久久久中文字幕欢迎你| 影音先锋成人资源站| 亚洲人成在线观看| 在线视频日韩精品| 噜噜噜在线观看免费视频日韩| 亚洲二区在线视频| 亚洲影音一区| 欧美大胆a视频| 国产精品一区二区在线| 在线观看亚洲精品| 日韩视频中午一区| 欧美一级久久久久久久大片| 欧美电影免费观看高清| 中日韩高清电影网| 久久综合九色99| 国产精品一香蕉国产线看观看| 日韩视频永久免费观看| 免费91麻豆精品国产自产在线观看| 欧美在线首页| 99riav国产精品| 久久久综合香蕉尹人综合网| 欧美色中文字幕| 亚洲欧洲一区二区三区久久| 久久精品国产欧美激情| 一区二区三区精品国产| 亚洲精品乱码久久久久| 亚洲一区二区三区午夜| 免费在线成人av| 这里只有精品在线播放| 欧美激情亚洲另类| 亚洲国产精品黑人久久久| 久久激五月天综合精品| 在线亚洲精品| 欧美另类高清视频在线| 在线欧美影院| 久久婷婷国产麻豆91天堂| 午夜精品久久久久影视| 国产精品乱码| 亚洲一区二区动漫| 日韩图片一区| 国产嫩草影院久久久久| 国产精品天天看| 亚洲精品视频免费| 麻豆91精品91久久久的内涵| 亚洲综合成人在线| 欧美日韩天堂| 一区二区三欧美| 91久久夜色精品国产网站| 久久久久久久综合日本| 国产乱码精品一区二区三区av| 一区二区三区你懂的| 亚洲乱码一区二区| 日韩亚洲欧美一区| 欧美视频国产精品| 亚洲欧美在线播放| 免费亚洲一区二区| 日韩一级在线| 欧美日韩免费观看一区三区| 亚洲人成在线播放| 亚洲第一伊人| 欧美国产日韩xxxxx| 亚洲精品国产精品国自产观看| 免费在线亚洲| 欧美大胆人体视频| 亚洲乱码国产乱码精品精 | 欧美自拍偷拍午夜视频| 一本高清dvd不卡在线观看| 亚洲高清不卡在线| 亚洲国产精品视频一区| 欧美日韩国产成人在线免费| 午夜天堂精品久久久久| 国产欧美日韩综合| 久久全国免费视频| 欧美v国产在线一区二区三区| 亚洲国产乱码最新视频 | 欧美亚洲专区| 亚洲高清一二三区| 亚洲精品国产精品国产自| 欧美色视频在线| 麻豆av一区二区三区| 免费欧美日韩| 午夜性色一区二区三区免费视频 | 新67194成人永久网站| 亚洲成人在线视频播放| 亚洲精选久久| 永久555www成人免费| 欧美激情亚洲综合一区| 国产精品伦理| 午夜精品福利在线观看| 久久av免费一区| 欧美在线短视频| 亚洲毛片在线免费观看| 午夜久久黄色| 一区二区免费看| 久久精品国产77777蜜臀| 一区二区三区日韩欧美精品| 小嫩嫩精品导航| 亚洲午夜一级| 蜜桃av一区二区| 久久精品视频播放| 国产精品久久久久久福利一牛影视 | 亚洲精品国久久99热| 亚洲一区免费在线观看| 亚洲人在线视频| 久久精品日产第一区二区| 午夜精品短视频| 麻豆精品网站| 亚洲欧美综合v| 久久噜噜噜精品国产亚洲综合| 136国产福利精品导航网址应用| 一区二区三欧美| 91久久精品www人人做人人爽| 欧美亚洲尤物久久| 亚洲欧美文学| 国产精品久久久久9999吃药| 99re8这里有精品热视频免费| 伊人一区二区三区久久精品| 欧美一级播放| 欧美专区日韩专区| 国产女人精品视频| 一本色道综合亚洲| 一区二区三区偷拍| 欧美精品激情在线| 亚洲人成在线播放| 亚洲黄色在线| 欧美sm视频| 亚洲国产小视频在线观看| 亚洲精品免费电影| 欧美日韩国产在线播放| 日韩一区二区久久| 亚洲影视综合| 国产精品午夜在线观看| 午夜国产一区| 久久久国产精品一区二区三区| 国产专区精品视频| 裸体丰满少妇做受久久99精品| 欧美激情黄色片| 一区二区三区久久久| 国产精品久久久久久久久免费| 亚洲一区视频| 久久综合网hezyo| 亚洲欧洲精品一区二区| 欧美日本不卡高清| 亚洲欧美精品一区| 久久一区二区三区四区五区| 一区视频在线播放| 欧美大片91| 亚洲永久免费观看| 你懂的国产精品永久在线| 亚洲精品人人| 国产农村妇女毛片精品久久莱园子| 欧美一区二区网站| 亚洲欧洲精品天堂一级| 亚洲欧美综合一区| 亚洲福利视频专区| 欧美日韩在线电影| 久久久噜久噜久久综合| 亚洲精品国产精品国产自| 久久精品国产精品 | 亚洲精品综合精品自拍| 香蕉久久精品日日躁夜夜躁| 狠狠色丁香婷婷综合| 欧美经典一区二区三区| 亚洲男人的天堂在线| 亚洲第一毛片| 久久精品99国产精品日本| 国产亚洲综合性久久久影院| 亚洲一区中文| 亚洲欧美日韩国产综合精品二区| 久久久久久噜噜噜久久久精品| 一区二区国产精品| 欧美日本一区二区三区| 国产一区欧美日韩| 一区二区日韩欧美| 欧美一区二区三区视频免费播放 | 国产精品xnxxcom| 欧美激情中文不卡| 一区二区日韩精品| 欧美成人高清视频| 亚洲欧洲日本国产| 亚洲国产小视频在线观看| 国产精品国产成人国产三级| 久久av一区二区三区漫画|