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

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

?? elibtypes.pas

?? 本程序旨在講解如何用Delphi創建一個可以在易語言中執行的支持庫
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
  //////////////////////////////////////////////////////////////////////////////
  // “庫常量”數據結構 Lib_Const_Info

  pLIB_CONST_INFO =^LIB_CONST_INFO;
  LIB_CONST_INFO  = record

    m_szName       : PChar;     // 常量名稱
    m_szEGName     : PChar;     // 常量英文名稱,可以為空或nil
    m_szExplain    : PChar;     // 詳細解釋

    m_shtReserved  : Smallint;  // 必須為 1 。
    m_shtType      : Smallint;  // 常量類型,取值為CT_NULL(0),CT_NUM(1),CT_BOOL(2),CT_TEXT(3)之一,見下面的說明和常量定義
    m_szText       : PChar;	    // 文本(當m_shtType取值為CT_TEXT時)
    m_dbValue      : double;	  // 數值(當m_shtType取值為CT_NUM、CT_BOOL時)
    ////////////////////////////////////////////////////////////////////////////
    // 其中,m_shtType 可以取以下常量值之一:
    //   CT_NULL  = 0;  // 空值
    //   CT_NUM   = 1;	// 數值型,如: 3.14159
    //   CT_BOOL  = 2;	// 邏輯型,如: 1       ( 1代表'真'; 0代表'假')
    //   CT_TEXT  = 3;	// 文本型,如: 'abc'
    ////////////////////////////////////////////////////////////////////////////
  end;

const
  //////////////////////////////////////////////////////////////////////////////
  // 以下常量在 LIB_CONST_INFO 結構中用到

  CT_NULL  = 0;  // 空值
  CT_NUM   = 1;	 // 數值型,如: 3.14159
  CT_BOOL  = 2;	 // 邏輯型,如: 1       ( 1代表'真'; 0代表'假')
  CT_TEXT  = 3;	 // 文本型,如: 'abc'

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

type
  //////////////////////////////////////////////////////////////////////////////
  // 常用數據結構。

  // 標識窗口單元
  pMUNIT = ^MUNIT;
  MUNIT  = record
    m_dwFormID  : LongWord;
    m_dwUnitID  : Longword;
  end;

  // 臨時結構,僅在MDATA_INF中用于定義m_Value成員
  T_MDATA_INF_Data = packed record       // Note: packed record, it's important.
    case Integer of
       // 第一部分。注意:當對應參數具有AS_RECEIVE_VAR或AS_RECEIVE_VAR_ARRAY或AS_RECEIVE_VAR_OR_ARRAY標志定義時將使用下面的第二部分。
    0: ( m_byte          : Byte);        // SDT_BYTE 數據類型的數據,下同。
    1: ( m_short         : SmallInt);    // SDT_SHORT
    2: ( m_int           : Integer);     // SDT_INT
    3: ( m_int64         : Int64);       // SDT_INT64
    4: ( m_float         : Single);      // SDT_FLOAT
    5: ( m_double        : Double);      // SDT_DOUBLE
    6: ( m_date          : TDateTime);   // SDT_DATE_TIME   (在VC中: typedef double DATE; 在Delphi中: type TDateTime = type Double;)
    7: ( m_bool          : LongBool);    // SDT_BOOL  (在VC中: typedef int BOOL;)
    8: ( m_pText         : PChar);       // SDT_TEXT,經過系統預處理,即使是空文本,此指針值也不會為nil,以便于處理。指針所指向數據的格式見前面的描述。!!!為了避免修改到常量段(m_pText有可能會指向易程序常量段區域)中的數據,只可讀取而不可更改其中的內容,下同。
    9: ( m_pBin          : ^Byte);       //??? LPBYTE;  // SDT_BIN,經過系統預處理,即使是空字節集,此指針值也不會為nil,以便于處理。指針所指向數據的格式見前面的描述。!!!只可讀取而不可更改其中的內容。
    10:( m_dwSubCodeAdr  : LongWord);    // SDT_SUB_PTR,為子程序代碼地址指針。
    11:( m_unit          : MUNIT);       // 窗口單元、菜單數據類型的數據。
    12:( m_pCompoundData : Pointer);     // 復合數據類型數據指針,指針所指向數據的格式見前面的描述。!!! 只可讀取而不可更改其中的內容。
    13:( m_pAryData      : Pointer);     // 數組數據指針,指針所指向數據的格式見前面的描述。注意如果為文本或字節集數組,則成員數據指針可能為NULL。!!! 只可讀取而不可更改其中的內容。

       // 第二部分。為指向變量地址的指針,僅當參數具有AS_RECEIVE_VAR或AS_RECEIVE_VAR_ARRAY或AS_RECEIVE_VAR_OR_ARRAY標志時才被使用。
    14:( m_pByte          : ^Byte);      // SDT_BYTE 數據類型變量的地址,下同。
    15:( m_pShort         : ^SmallInt);  // SDT_SHORT
    16:( m_pInt           : ^Integer);   // SDT_INT
    17:( m_pInt64         : ^Int64);     // SDT_INT64
    18:( m_pFloat         : ^Single);    // SDT_FLOAT
    19:( m_pDouble        : ^Double);    // SDT_DOUBLE
    20:( m_pDate          : ^TDateTime); // SDT_DATE_TIME
    21:( m_pBool          : ^LongBool);  // SDT_BOOL
    22:( m_ppText         : PPChar);     // SDT_TEXT,注意*m_ppText可能為NULL(代表空文本)。寫入新值之前必須釋放前值,例句:NotifySys (NRS_MFREE, (DWORD)*m_ppText)。!!!不可直接更改*m_ppText所指向的內容,只能釋放原指針后設置入NULL(空文本)或使用NRS_MALLOC通知分配的新內存地址指針(下同)。
    23:( m_ppBin          : ^PByte);     // SDT_BIN,注意*m_ppBin可能為NULL(代表空字節集)。寫入新值之前必須釋放前值,例句:NotifySys (NRS_MFREE, (DWORD)*m_ppBin)。!!!不可直接更改*m_ppBin所指向的內容,只能釋放原指針后設置入NULL(空字節集)或新指針。
    24:( m_pdwSubCodeAdr  : ^LongWord);  // SDT_SUB_PTR,子程序代碼地址變量地址。
    25:( m_pUnit          : ^MUNIT);     // 窗口單元、菜單數據類型變量地址。
    26:( m_ppCompoundData : ^Pointer);   // 復合數據類型變量地址。!!!注意寫入新值之前必須使用NRS_MFREE通知逐一釋放所有成員(即:SDT_TEXT、SDT_BIN及復合數據類型成員)及原地址指針。!!!不可直接更改*m_ppCompoundData所指向的內容,只能釋放原指針后設置入新指針。
    27:( m_ppAryData      : ^Pointer);   // 數組數據變量地址,注意: 1、寫入新值之前必須釋放原值,例句:NotifySys (NRS_FREE_ARY,m_dtDataType, (DWORD)*m_ppAryData),注意:此例句只適用于m_dtDataType為系統基本數據類型時的情況,如果為復合數據類型,必須根據其定義信息逐一釋放。2、如果為文本或字節集數組,則其中成員的數據指針可能為NULL。!!!不可直接更改*m_ppAryData所指向的內容,只能釋放原指針后設置入新指針。
  end;

  // MDATA_INF用作記錄函數指針pFN_EXECUTE_CMD的返回值和參數信息
  pMDATA_INF = ^MDATA_INF;
  MDATA_INF  = record
    m_Value      : T_MDATA_INF_Data;  // 數據內容
    m_dtDataType : DATA_TYPE;         // 數據類型,見下面的說明

    ////////////////////////////////////////////////////////////////////////////
    //
    // 關于 m_dtDataType 的說明:
    //
    //  1、當用作傳遞參數數據時,如果該參數具有AS_RECEIVE_VAR_OR_ARRAY或
    //     AS_RECEIVE_ALL_TYPE_DATA標志,且為數組數據,則包含標志DT_IS_ARY,
    //     這也是DT_IS_ARY標志的唯一使用場合。
    //     DT_IS_ARY 的定義為:const DT_IS_ARY = $20000000;
    //  2、當用作傳遞參數數據時,如果為空白數據,則為_SDT_NULL。
    //
    ////////////////////////////////////////////////////////////////////////////
  end;

  ArgArray = array of MDATA_INF;  // 通常用于全局命令的實現代碼中, 輔助讀取參數值。

  // !!! ASSERT(sizeof(MDATA_INF)==sizeof(DWORD)*3); 結構MDATA_INF的尺寸必須等于12字節。


  //////////////////////////////////////////////////////////////////////////////
  // 通知用數據結構。

  // 支持庫可以通知易編輯環境(IDE)或易運行環境(RUNTIME)的碼值:

  PMDATA = ^MDATA;
  MDATA  = record          // 初始值:m_pData=nil; m_nDataSize=0;
    m_pData     : PByte;
    m_nDataSize : Integer;
  end;

  // 記錄事件的來源
  PEVENT_NOTIFY = ^EVENT_NOTIFY;
  EVENT_NOTIFY  = class        // 記錄事件的來源
    m_dwFormID    : LongWord;  // 調用ITF_CREATE_UNIT接口所傳遞過來的所處窗口ID(dwWinFormID參數)
    m_dwUnitID    : Longword;  // 調用ITF_CREATE_UNIT接口所傳遞過來的窗口單元ID(dwUnitID參數)
    m_nEventIndex : Integer;   // 事件索引(在窗口單元定義信息LIB_DATA_TYPE_INFO中m_pPropertyBegin成員中的位置)
    m_nArgCount   : Integer;   // 本事件所傳遞的參數數目,最多 5 個。
    m_nArgValue   : array[0..4] of Integer; // 記錄各參數值,SDT_BOOL型參數值為 1 或 0。

    //!!! 注意下面兩個成員在沒有定義返回值的事件中無效,其值可能為任意值。
    m_blHasReturnValue : LongBool; // 用戶事件處理子程序處理完畢事件后是否提供了返回值。
    m_nReturnValue     : Integer;  // 用戶事件處理子程序處理完畢事件后的返回值,邏輯值用數值 0(假) 和 1(真) 返回。

    procedure EVENT_NOTIFY(dwFormID,dwUnitID : LongWord; nEventIndex:Integer);

  end;

const
  //////////////////////////////////////////////////////////////////////////////
  // 消息常量定義 (消息號)

  // NES_ 開頭的常量為僅被易編輯環境(IDE)處理的通知(消息號)。[NES: Notify_Editable_System]

  NES_GET_MAIN_HWND = 1;  // 取易編輯環境主窗口的句柄,可以在支持庫的AddIn函數中使用。
  NES_RUN_FUNC = 2;       // 通知易編輯環境運行指定的功能,返回一個BOOL值。dwParam1為功能號;dwParam2為一個雙DWORD數組指針,分別提供功能參數1和2。

  // NAS_ 開頭的常量為既被易編輯環境又被易運行環境處理的通知(消息號)。[NAS: Notify_All_System]
  NAS_GET_LIB_DATA_TYPE_INFO = 1002;  //返回指定庫定義數據類型的pLIB_DATA_TYPE_INFO定義信息指針。dwParam1為欲獲取信息的數據類型DATA_TYPE;如果該數據類型無效或者不為庫定義數據類型,則返回nil,否則返回pLIB_DATA_TYPE_INFO指針。

  // NRS_ 開頭的常量為僅能被易運行環境處理的通知(消息號)。[NRS: Notify_Runtime_System]
  NRS_UNIT_DESTROIED     = 2000; // 通知系統指定的單元已經被銷毀。dwParam1為dwFormID;dwParam2為dwUnitID;
  NRS_CONVERT_NUM_TO_INT = 2001; // 轉換其它數值格式到整數。dwParam1為pMDATA_INF指針,其m_dtDataType必須為數值型。返回轉換后的整數值。
  NRS_GET_CMD_LINE_STR   = 2002; // 取當前命令行文本,返回命令行文本指針,有可能為空串。
  NRS_GET_EXE_PATH_STR   = 2003; // 取當前執行文件所處目錄名稱,返回當前執行文件所處目錄文本指針。
  NRS_GET_EXE_NAME       = 2004; // 取當前執行文件名稱,返回當前執行文件名稱文本指針。
  NRS_GET_UNIT_PTR       = 2006; // 取單元對象指針。dwParam1為WinForm的ID;dwParam2為WinUnit的ID。成功返回有效的單元對象CWnd*指針,失敗返回nil。
  NRS_GET_AND_CHECK_UNIT_PTR        = 2007; // 取單元對象指針,并檢查該指針。dwParam1為WinForm的ID;dwParam2為WinUnit的ID。成功返回有效的單元對象CWnd*指針,失敗自動報告運行時錯誤并立即退出程序。
  NRS_EVENT_NOTIFY                  = 2008; // 通知系統產生了事件。dwParam1為PEVENT_NOTIFY指針。如果返回0,表示此事件已被系統拋棄,否則表示系統已經成功傳遞此事件到用戶事件處理子程序。
  NRS_STOP_PROCESS_EVENT_NOTIFY     = 2009; // 通知系統暫停處理事件通知。
  NRS_CONTINUE_PROCESS_EVENT_NOTIFY = 2010; // 通知系統繼續處理事件通知。
  NRS_DO_EVENTS          = 2018; // 通知Windows系統處理所有已有事件。
  NRS_GET_UNIT_DATA_TYPE = 2022; // 取單元數據類型。dwParam1為WinForm的ID;dwParam2為WinUnit的ID。成功返回有效的DATA_TYPE,失敗返回0。
  NRS_FREE_ARY           = 2023; // 釋放指定數組數據。dwParam1為該數據的DATA_TYPE,只能為系統基本數據類型;dwParam2為指向該數組數據的指針。
  NRS_MALLOC             = 2024; // 分配指定空間的內存,所有與易程序交互的內存都必須使用本通知分配。dwParam1為欲需求內存字節數。dwParam2如為0,則如果分配失敗就自動報告運行時錯并退出程序,如不為0,則如果分配失敗就返回nil。返回所分配內存的首地址。
  NRS_MFREE              = 2025; // 釋放已分配的指定內存。dwParam1為欲釋放內存的首地址。
  NRS_MREALLOC           = 2026; // 重新分配內存。dwParam1為欲重新分配內存尺寸的首地址;dwParam2為欲重新分配的內存字節數。返回所重新分配內存的首地址,失敗自動報告運行時錯并退出程序。
  NRS_RUNTIME_ERR        = 2027; // 通知系統已經產生運行時錯誤。dwParam1為char*指針,說明錯誤文本。
  NRS_EXIT_PROGRAM       = 2028; // 通知系統退出用戶程序。dwParam1為退出代碼,該代碼將被返回到操作系統。
  NRS_GET_PRG_TYPE       = 2030; // 返回當前用戶程序的類型,為2(調試版)或3(發布版)。
    
  //////////////////////////////////////////////////////////////////////////////
  // 易編輯環境(IDE)或易運行環境(RUNTIME)可以通知支持庫的碼值(消息號):

  NL_SYS_NOTIFY_FUNCTION = 1;
        // 告知支持庫通知系統用的函數指針,在裝載支持庫前通知,可能有多次,
  	// (后通知的值應該覆蓋前面所通知的值),忽略返回值。
	// 庫可將此函數指針記錄下來以便在需要時使用它通知信息到系統。
	// dwParam1: (PFN_NOTIFY_SYS)
  //////////////////////////////////////////////////////////////////////////////

const
  NR_OK  =  0;
  NR_ERR = -1;
type
  // 此函數用作易編輯環境(IDE)或易運行環境(RUNTIME)通知支持庫有關事件。
  pFN_NOTIFY_LIB = function(nMsg:Integer; dwParam1:LongWord=0; dwParam2:LongWord=0) :Integer; stdcall; // 參數dwParam1,dwParam2如果不使用則置0

  // 此函數用作庫通知易編輯環境(IDE)或易運行環境(RUNTIME)有關事件。
  pFN_NOTIFY_SYS = function(nMsg:Integer; dwParam1:LongWord=0; dwParam2:LongWord=0) :Integer; stdcall; // 參數dwParam1,dwParam2如果不使用則置0

  //////////////////////////////////////////////////////////////////////////////
  // 所有命令和方法實現函數的原型 pFN_EXECUTE_CMD
  //
  // 說明如下:
  //   1、必須是CDECL調用方式;
  //   2、pRetData用作返回數據;
  //   3、!!!如果指定庫命令返回數據類型不為_SDT_ALL,可以
  //      不填充 pRetData->m_dtDataType,如果為_SDT_ALL,則必須填寫;
  //   4、pArgInf提供參數數據本身,所指向的MDATA_INF記錄每個輸入參數,數目等同于nArgCount。
  //////////////////////////////////////////////////////////////////////////////
  pFN_EXECUTE_CMD    = procedure(pRetData:pMDATA_INF; nArgCount:Integer; pArgInf:pMDATA_INF); cdecl;

  // 運行支持庫中ADDIN功能的函數
  pFN_RUN_ADDIN_FN   = function(nAddInFnIndex:Integer) :Integer; stdcall;

  // 創建庫中提供的超級模板程序的函數
  pFN_SUPER_TEMPLATE = function(nTemplateIndex:Integer) :Integer; stdcall;

////////////////////////////////////////////////////
const
  LIB_FORMAT_VER = 20000101;	// 庫格式號。在LIB_INFO結構中使用。


type
  (*                    ***************                                       *)
  (**********************   LIB_INFO  *****************************************)
  (*                    ***************                                       *)
  //////////////////////////////////////////////////////////////////////////////
  // “支持庫信息”數據結構 LIB_INFO

  pLIB_INFO = ^LIB_INFO;
  LIB_INFO  = record
    m_dwLibFormatVer         : LongWord;   // 庫格式號,應該等于LIB_FORMAT_VER
    m_szGuid                 : PChar;      // 對應于本庫的唯一GUID串,不能為NULL或空,相同庫的所有后續版本此串都應相同。注意,此GUID字串必須使用專用工具軟件生成(在Delphi內,可以通過組合鍵[Ctrl+Shift+G]生成一個GUID字串),以防止出現重復。

    m_nMajorVersion          : Integer;    // 本庫的主版本號,必須大于0
    m_nMinorVersion          : Integer;    // 本庫的次版本號
    m_nBuildNumber           : Integer;    // 構建版本號。本版本號僅用作區分相同正式版本號的系統軟件(譬如僅僅修改了幾個 BUG,不值得升級正式版本的系統軟件)。任何公布過給用戶使用的版本其構建版本號都應該不一樣。賦值時應該順序遞增。

    m_nRqSysMajorVer         : Integer;    // 所需要易語言系統的主版本號,目前應該為 3
    m_nRqSysMinorVer         : Integer;    // 所需要易語言系統的次版本號,目前應該為 0
    m_nRqSysKrnlLibMajorVer  : Integer;    // 所需要的系統核心支持庫的主版本號,目前應該為 3
    m_nRqSysKrnlLibMinorVer  : Integer;    // 所需要的系統核心支持庫的次版本號,目前應該為 0

    m_szName                 : PChar;      // 庫名,不能為nil或空
    m_nLanguage              : Integer;    // 本庫所支持的語言,目前應該為 LT_CHINESE (=1)。見下面的說明和常量定義。
    m_szExplain              : PChar;      // 有關本庫的詳細解釋
    m_dwState                : LongWord;   // 支持庫狀態,見以下的說明和常量定義(LBS_FUNC_NO_RUN_CODE(4);LBS_NO_EDIT_INFO(8))

    m_szAuthor               : PChar;      // 作者姓名
    m_szZipCode              : PChar;      // 郵編
    m_szAddress              : PChar;      // 地址
    m_szPhone                : PChar;      // 電話
    m_szFax                  : PChar;      // 傳真
    m_szEmail                : PChar;      // 電子郵件
    m_szHomePage             : PChar;      // 網站主頁
    m_szOther                : PChar;      // 作者其它信息

    m_nDataTypeCount         : Integer;             // 本庫中自定義數據類型的數目,必須等于m_pDataType所指向數組成員的數目

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日本欧美一区二区| www国产精品av| 国产大片一区二区| 久久99国产精品久久| 亚洲成人tv网| 亚洲午夜电影在线观看| 亚洲自拍另类综合| 一区二区三区中文字幕| 伊人色综合久久天天人手人婷| 1000精品久久久久久久久| 欧美国产欧美亚州国产日韩mv天天看完整| 久久精品一级爱片| 亚洲国产精品精华液ab| 欧美国产精品中文字幕| 国产精品久久三区| 亚洲另类春色校园小说| 婷婷久久综合九色国产成人| 首页综合国产亚洲丝袜| 久久福利视频一区二区| 九九视频精品免费| 国产成人精品亚洲777人妖| 99久久亚洲一区二区三区青草| 91毛片在线观看| 欧美日韩在线综合| 欧美一级黄色大片| 国产农村妇女精品| 亚洲综合色区另类av| 麻豆成人久久精品二区三区红| 国产麻豆精品久久一二三| 懂色一区二区三区免费观看| 91黄色激情网站| 日韩一区二区免费视频| 亚洲国产精品成人久久综合一区| 国产精品成人一区二区三区夜夜夜| 亚洲综合色噜噜狠狠| 国产一区二区三区久久久| 色婷婷综合五月| 精品99一区二区三区| 亚洲日本乱码在线观看| 久久精品国产精品青草| 91麻豆swag| 久久伊人中文字幕| 亚洲第一在线综合网站| 国产成人精品一区二区三区网站观看 | 欧美激情一区二区三区蜜桃视频| 亚洲主播在线观看| 国v精品久久久网| 欧美日韩一卡二卡三卡| 国产色综合久久| 日本不卡一区二区| av一区二区三区在线| 日韩亚洲欧美高清| 亚洲国产日韩精品| 99在线精品免费| 久久亚洲私人国产精品va媚药| 亚洲黄网站在线观看| 极品销魂美女一区二区三区| 久久人人超碰精品| 国产激情91久久精品导航| 欧美在线你懂的| 欧美伦理电影网| 亚洲高清免费一级二级三级| 欧美电影免费提供在线观看| 国产另类ts人妖一区二区| 亚洲人成网站影音先锋播放| 欧美亚洲高清一区| 蜜桃一区二区三区四区| 国产精品视频你懂的| 欧美美女黄视频| 国产成a人无v码亚洲福利| 亚洲伊人色欲综合网| 2024国产精品视频| av高清不卡在线| 奇米色一区二区| 国产精品大尺度| 欧美mv日韩mv| 欧美性欧美巨大黑白大战| 国产麻豆日韩欧美久久| 亚洲一二三四在线观看| 久久免费精品国产久精品久久久久| 91网站视频在线观看| 久久精品噜噜噜成人av农村| 国产精品天干天干在线综合| 欧美日韩国产另类不卡| 国产精品一区二区在线播放| 一个色综合av| 国产精品久久久久久久久免费丝袜 | 性做久久久久久| 国产丝袜在线精品| 日韩午夜三级在线| 91欧美激情一区二区三区成人| 激情五月婷婷综合网| 亚洲一二三四区| 国产精品区一区二区三| 精品国产91乱码一区二区三区| 日本高清视频一区二区| 国产成人综合网| 久久er精品视频| 日一区二区三区| 一区二区三区在线免费| 中文字幕在线观看不卡视频| 久久久久9999亚洲精品| 欧美一区二区三区影视| 欧美精品一二三四| 欧美日韩国产一级片| 在线视频国内一区二区| 91论坛在线播放| 色狠狠综合天天综合综合| 99久久免费精品| 91影视在线播放| 91社区在线播放| 91亚洲国产成人精品一区二三 | 另类人妖一区二区av| 国产剧情一区在线| 久久精品国产亚洲aⅴ| 日韩精品电影在线观看| 亚洲二区视频在线| 天天操天天干天天综合网| 亚洲午夜日本在线观看| 亚洲二区视频在线| 无码av免费一区二区三区试看| 亚洲一卡二卡三卡四卡五卡| 亚洲高清视频中文字幕| 免费成人小视频| 久久精品国产99| 国产成人在线视频播放| 国产成都精品91一区二区三| 成人av手机在线观看| 色综合av在线| 欧美日韩大陆在线| 欧美成人女星排名| 久久久高清一区二区三区| 亚洲国产成人在线| 亚洲人成网站精品片在线观看| 一二三四社区欧美黄| 五月婷婷色综合| 美国毛片一区二区三区| 国产成人精品免费| 色婷婷精品大在线视频| 欧美一区二区三区在线| 欧美国产亚洲另类动漫| 亚洲精品亚洲人成人网在线播放| 亚洲r级在线视频| 欧美色倩网站大全免费| 欧美一区二区精品| 国产日韩欧美亚洲| 亚洲精品乱码久久久久久久久 | 亚洲一区免费观看| 男女视频一区二区| 成人性视频免费网站| 欧洲激情一区二区| 久久日一线二线三线suv| 综合精品久久久| 免播放器亚洲一区| 高清av一区二区| 欧美日韩精品三区| 中文字幕不卡的av| 视频一区在线播放| caoporen国产精品视频| 欧美一区二区三区免费大片 | 久久人人超碰精品| 亚洲天天做日日做天天谢日日欢| 亚洲国产精品人人做人人爽| 国产一区在线视频| 欧美在线观看视频在线| xfplay精品久久| 亚洲成人自拍一区| 成人午夜短视频| 91精品国产综合久久久久| 国产精品久久久久久一区二区三区 | 成人丝袜视频网| 91精品免费观看| 中文字幕综合网| 国产精品1区2区| 日韩亚洲欧美成人一区| 亚洲一区二区三区四区在线观看| 韩国毛片一区二区三区| 56国语精品自产拍在线观看| 1024成人网色www| 国产成人精品免费| 久久这里都是精品| 麻豆91免费观看| 欧美三级在线视频| 亚洲天堂网中文字| 成人av先锋影音| 久久蜜臀精品av| 精品一区二区久久| 制服丝袜亚洲精品中文字幕| 一区二区三区不卡视频| 91小视频免费看| 国产精品电影一区二区| 成人免费视频播放| 久久久久久久综合色一本| 久久精品久久99精品久久| 欧美军同video69gay| 亚洲午夜一区二区| 欧美日韩国产综合视频在线观看 | www激情久久| 精品一区二区三区久久久| 日韩一级高清毛片|