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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? elibtypes.~pas

?? 本程序旨在講解如何用Delphi創(chuàng)建一個(gè)可以在易語言中執(zhí)行的支持庫
?? ~PAS
?? 第 1 頁 / 共 4 頁
字號(hào):
  //////////////////////////////////////////////////////////////////////////////
  // “庫常量”數(shù)據(jù)結(jié)構(gòu) Lib_Const_Info

  pLIB_CONST_INFO =^LIB_CONST_INFO;
  LIB_CONST_INFO  = record

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

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

const
  //////////////////////////////////////////////////////////////////////////////
  // 以下常量在 LIB_CONST_INFO 結(jié)構(gòu)中用到

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

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

type
  //////////////////////////////////////////////////////////////////////////////
  // 常用數(shù)據(jù)結(jié)構(gòu)。

  // 標(biāo)識(shí)窗口單元
  pMUNIT = ^MUNIT;
  MUNIT  = record
    m_dwFormID  : LongWord;
    m_dwUnitID  : Longword;
  end;

  // 臨時(shí)結(jié)構(gòu),僅在MDATA_INF中用于定義m_Value成員
  T_MDATA_INF_Data = packed record       // Note: packed record, it's important.
    case Integer of
       // 第一部分。注意:當(dāng)對(duì)應(yīng)參數(shù)具有AS_RECEIVE_VAR或AS_RECEIVE_VAR_ARRAY或AS_RECEIVE_VAR_OR_ARRAY標(biāo)志定義時(shí)將使用下面的第二部分。
    0: ( m_byte          : Byte);        // SDT_BYTE 數(shù)據(jù)類型的數(shù)據(jù),下同。
    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,經(jīng)過系統(tǒng)預(yù)處理,即使是空文本,此指針值也不會(huì)為nil,以便于處理。指針?biāo)赶驍?shù)據(jù)的格式見前面的描述。!!!為了避免修改到常量段(m_pText有可能會(huì)指向易程序常量段區(qū)域)中的數(shù)據(jù),只可讀取而不可更改其中的內(nèi)容,下同。
    9: ( m_pBin          : ^Byte);       //??? LPBYTE;  // SDT_BIN,經(jīng)過系統(tǒng)預(yù)處理,即使是空字節(jié)集,此指針值也不會(huì)為nil,以便于處理。指針?biāo)赶驍?shù)據(jù)的格式見前面的描述。!!!只可讀取而不可更改其中的內(nèi)容。
    10:( m_dwSubCodeAdr  : LongWord);    // SDT_SUB_PTR,為子程序代碼地址指針。
    11:( m_unit          : MUNIT);       // 窗口單元、菜單數(shù)據(jù)類型的數(shù)據(jù)。
    12:( m_pCompoundData : Pointer);     // 復(fù)合數(shù)據(jù)類型數(shù)據(jù)指針,指針?biāo)赶驍?shù)據(jù)的格式見前面的描述。!!! 只可讀取而不可更改其中的內(nèi)容。
    13:( m_pAryData      : Pointer);     // 數(shù)組數(shù)據(jù)指針,指針?biāo)赶驍?shù)據(jù)的格式見前面的描述。注意如果為文本或字節(jié)集數(shù)組,則成員數(shù)據(jù)指針可能為NULL。!!! 只可讀取而不可更改其中的內(nèi)容。

       // 第二部分。為指向變量地址的指針,僅當(dāng)參數(shù)具有AS_RECEIVE_VAR或AS_RECEIVE_VAR_ARRAY或AS_RECEIVE_VAR_OR_ARRAY標(biāo)志時(shí)才被使用。
    14:( m_pByte          : ^Byte);      // SDT_BYTE 數(shù)據(jù)類型變量的地址,下同。
    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所指向的內(nèi)容,只能釋放原指針后設(shè)置入NULL(空文本)或使用NRS_MALLOC通知分配的新內(nèi)存地址指針(下同)。
    23:( m_ppBin          : ^PByte);     // SDT_BIN,注意*m_ppBin可能為NULL(代表空字節(jié)集)。寫入新值之前必須釋放前值,例句:NotifySys (NRS_MFREE, (DWORD)*m_ppBin)。!!!不可直接更改*m_ppBin所指向的內(nèi)容,只能釋放原指針后設(shè)置入NULL(空字節(jié)集)或新指針。
    24:( m_pdwSubCodeAdr  : ^LongWord);  // SDT_SUB_PTR,子程序代碼地址變量地址。
    25:( m_pUnit          : ^MUNIT);     // 窗口單元、菜單數(shù)據(jù)類型變量地址。
    26:( m_ppCompoundData : ^Pointer);   // 復(fù)合數(shù)據(jù)類型變量地址。!!!注意寫入新值之前必須使用NRS_MFREE通知逐一釋放所有成員(即:SDT_TEXT、SDT_BIN及復(fù)合數(shù)據(jù)類型成員)及原地址指針。!!!不可直接更改*m_ppCompoundData所指向的內(nèi)容,只能釋放原指針后設(shè)置入新指針。
    27:( m_ppAryData      : ^Pointer);   // 數(shù)組數(shù)據(jù)變量地址,注意: 1、寫入新值之前必須釋放原值,例句:NotifySys (NRS_FREE_ARY,m_dtDataType, (DWORD)*m_ppAryData),注意:此例句只適用于m_dtDataType為系統(tǒng)基本數(shù)據(jù)類型時(shí)的情況,如果為復(fù)合數(shù)據(jù)類型,必須根據(jù)其定義信息逐一釋放。2、如果為文本或字節(jié)集數(shù)組,則其中成員的數(shù)據(jù)指針可能為NULL。!!!不可直接更改*m_ppAryData所指向的內(nèi)容,只能釋放原指針后設(shè)置入新指針。
  end;

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

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

  ArgArray = array of MDATA_INF;  // 通常用于全局命令的實(shí)現(xiàn)代碼中, 輔助讀取參數(shù)值。

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


  //////////////////////////////////////////////////////////////////////////////
  // 通知用數(shù)據(jù)結(jié)構(gòu)。

  // 支持庫可以通知易編輯環(huán)境(IDE)或易運(yùn)行環(huán)境(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;  // 調(diào)用ITF_CREATE_UNIT接口所傳遞過來的所處窗口ID(dwWinFormID參數(shù))
    m_dwUnitID    : Longword;  // 調(diào)用ITF_CREATE_UNIT接口所傳遞過來的窗口單元ID(dwUnitID參數(shù))
    m_nEventIndex : Integer;   // 事件索引(在窗口單元定義信息LIB_DATA_TYPE_INFO中m_pPropertyBegin成員中的位置)
    m_nArgCount   : Integer;   // 本事件所傳遞的參數(shù)數(shù)目,最多 5 個(gè)。
    m_nArgValue   : array[0..4] of Integer; // 記錄各參數(shù)值,SDT_BOOL型參數(shù)值為 1 或 0。

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

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

  end;

const
  //////////////////////////////////////////////////////////////////////////////
  // 消息常量定義 (消息號(hào))

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

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

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

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

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

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

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

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

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

  // 創(chuàng)建庫中提供的超級(jí)模板程序的函數(shù)
  pFN_SUPER_TEMPLATE = function(nTemplateIndex:Integer) :Integer; stdcall;

////////////////////////////////////////////////////
const
  LIB_FORMAT_VER = 20000101;	// 庫格式號(hào)。在LIB_INFO結(jié)構(gòu)中使用。


type
  (*                    ***************                                       *)
  (**********************   LIB_INFO  *****************************************)
  (*                    ***************                                       *)
  //////////////////////////////////////////////////////////////////////////////
  // “支持庫信息”數(shù)據(jù)結(jié)構(gòu) LIB_INFO

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

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

    m_nRqSysMajorVer         : Integer;    // 所需要易語言系統(tǒng)的主版本號(hào),目前應(yīng)該為 3
    m_nRqSysMinorVer         : Integer;    // 所需要易語言系統(tǒng)的次版本號(hào),目前應(yīng)該為 0
    m_nRqSysKrnlLibMajorVer  : Integer;    // 所需要的系統(tǒng)核心支持庫的主版本號(hào),目前應(yīng)該為 3
    m_nRqSysKrnlLibMinorVer  : Integer;    // 所需要的系統(tǒng)核心支持庫的次版本號(hào),目前應(yīng)該為 0

    m_szName                 : PChar;      // 庫名,不能為nil或空
    m_nLanguage              : Integer;    // 本庫所支持的語言,目前應(yīng)該為 LT_CHINESE (=1)。見下面的說明和常量定義。
    m_szExplain              : PChar;      // 有關(guān)本庫的詳細(xì)解釋
    m_dwState                : LongWord;   // 支持庫狀態(tài),見以下的說明和常量定義(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;      // 網(wǎng)站主頁
    m_szOther                : PChar;      // 作者其它信息

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产精品自在自线| 欧美日韩综合在线免费观看| 亚洲影视在线观看| 精品成人一区二区| 欧美视频在线一区| 东方欧美亚洲色图在线| 日本特黄久久久高潮| **欧美大码日韩| 久久亚洲一区二区三区四区| 欧美日韩免费在线视频| av中文字幕一区| 国产中文一区二区三区| 日韩黄色免费电影| 一区二区三区日韩精品视频| 亚洲国产精品t66y| 精品不卡在线视频| 91精品国产丝袜白色高跟鞋| 日本韩国欧美一区二区三区| 国产成人精品影院| 国产乱人伦精品一区二区在线观看 | 国产亚洲精品免费| 日韩一区二区在线观看视频 | 欧美性做爰猛烈叫床潮| 成人的网站免费观看| 极品少妇一区二区三区精品视频| 亚洲一区二区综合| 亚洲日本中文字幕区| 日韩理论电影院| 国产精品三级电影| 国产日韩精品一区二区三区在线| 337p粉嫩大胆噜噜噜噜噜91av| 欧美久久婷婷综合色| 欧美色国产精品| 欧美综合一区二区| 欧美丝袜丝交足nylons| 欧美优质美女网站| 在线亚洲高清视频| 91在线观看地址| 日本韩国欧美一区二区三区| 91丨九色丨黑人外教| 一本到不卡免费一区二区| 91蜜桃在线观看| 91丨porny丨蝌蚪视频| 91麻豆精品在线观看| 色综合咪咪久久| 91久久精品网| 欧美性大战久久久久久久蜜臀| 欧美日韩一区小说| 91精品国产入口| 欧美成人精精品一区二区频| 2020国产精品自拍| 国产日产亚洲精品系列| 欧美精彩视频一区二区三区| 国产精品久久三| 亚洲综合免费观看高清完整版在线 | av在线不卡电影| 色综合久久综合网欧美综合网 | 日韩欧美国产精品| 精品国产凹凸成av人网站| 久久亚洲一区二区三区明星换脸| 国产无人区一区二区三区| 亚洲欧美综合色| 亚洲综合久久久久| 蜜臀久久99精品久久久久久9 | 国产精品99久久久久久宅男| av在线免费不卡| 欧美写真视频网站| 日韩一区二区三区视频在线观看| 久久亚洲精品国产精品紫薇| 中文字幕国产一区| 亚洲午夜国产一区99re久久| 久久精品国产一区二区三区免费看| 国产一区福利在线| 97久久精品人人澡人人爽| 8v天堂国产在线一区二区| 国产午夜亚洲精品不卡| 一区二区三区在线观看网站| 麻豆91在线观看| 不卡免费追剧大全电视剧网站| 在线看不卡av| 欧美精品一区二| 一区二区三区在线观看网站| 久久精品国产一区二区三| 97超碰欧美中文字幕| 欧美一级高清片在线观看| 国产精品国产自产拍在线| 日产精品久久久久久久性色| 国产999精品久久| 欧美日本韩国一区| 国产精品久久99| 久久精品国产在热久久| 在线观看免费视频综合| 国产亚洲污的网站| 亚洲成人av电影在线| 国产a久久麻豆| 欧美绝品在线观看成人午夜影视| 国产日韩欧美a| 日产国产高清一区二区三区| 色欧美片视频在线观看在线视频| 337p日本欧洲亚洲大胆色噜噜| 亚洲激情欧美激情| 国产激情精品久久久第一区二区| 欧美一区二区在线播放| 亚洲视频一二三| 成人免费毛片片v| 久久久久久久网| 蜜臂av日日欢夜夜爽一区| 91国产视频在线观看| 国产精品传媒入口麻豆| 国产成人夜色高潮福利影视| 日韩精品专区在线影院观看| 日韩专区在线视频| 99国产精品99久久久久久| 国产欧美综合在线| 久久国产精品99精品国产| 3751色影院一区二区三区| 亚洲精品菠萝久久久久久久| 国产精品一区专区| 欧美精品日韩一本| 亚洲精品va在线观看| 国产激情视频一区二区三区欧美 | 激情综合网av| 欧美一级久久久| 亚洲人成网站影音先锋播放| 免费在线观看一区二区三区| 欧洲人成人精品| 中文字幕乱码日本亚洲一区二区| 日韩电影免费在线看| 91在线精品一区二区| 久久精品亚洲精品国产欧美| 亚洲成人综合网站| 色综合亚洲欧洲| 国产免费成人在线视频| 激情欧美一区二区三区在线观看| 日韩欧美色综合| 亚洲.国产.中文慕字在线| 在线观看亚洲一区| 成人免费在线视频| 国产宾馆实践打屁股91| 国产精品嫩草久久久久| 国产91在线看| 久久免费国产精品| 黑人巨大精品欧美黑白配亚洲| 欧美美女bb生活片| 一区二区激情视频| 91在线国产观看| 亚洲综合成人网| 91日韩在线专区| 中文字幕中文字幕一区| 成人激情开心网| 一区二区在线观看不卡| 91色九色蝌蚪| 一区二区在线免费观看| 欧洲国内综合视频| 免费欧美高清视频| 日韩欧美第一区| 国产一区二区三区国产| 久久免费看少妇高潮| 韩国精品主播一区二区在线观看| 国产日韩欧美a| 成人app下载| 中文字幕亚洲成人| 91丨九色porny丨蝌蚪| 日本成人中文字幕| 欧美一区二区不卡视频| 韩国一区二区三区| 精品乱码亚洲一区二区不卡| 国产经典欧美精品| 国产精品久久久久久久久动漫| 91亚洲精品一区二区乱码| 亚洲色图另类专区| 91网站在线播放| 美腿丝袜一区二区三区| 国产亚洲精品福利| av成人动漫在线观看| 一区二区三区四区不卡在线| 欧美性猛交xxxx黑人交| 免费看欧美美女黄的网站| 日韩免费成人网| 福利一区二区在线| 天堂在线亚洲视频| 久久午夜羞羞影院免费观看| 成人app在线观看| 亚洲r级在线视频| 国产精品国产三级国产a| 欧美性大战xxxxx久久久| 精品综合免费视频观看| 亚洲视频一区在线| 日韩视频一区二区在线观看| 国产成人在线观看| 一区二区三区丝袜| 日韩精品一区国产麻豆| 欧美怡红院视频| 精品亚洲成a人| 亚洲品质自拍视频网站| 久久综合视频网| 一本大道久久a久久综合婷婷| 日本中文字幕一区| 国产精品成人免费在线| 久久久久久亚洲综合影院红桃|