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

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

?? tntsysutils.pas

?? TNTUniCtrlsWithExceptions UniCode 國際化語言
?? PAS
?? 第 1 頁 / 共 4 頁
字號:

{*****************************************************************************}
{                                                                             }
{    Tnt Delphi Unicode Controls                                              }
{      http://www.tntware.com/delphicontrols/unicode/                         }
{        Version: 2.3.0                                                       }
{                                                                             }
{    Copyright (c) 2002-2007, Troy Wolbrink (troy.wolbrink@tntware.com)       }
{                                                                             }
{*****************************************************************************}

unit TntSysUtils;

{$INCLUDE TntCompilers.inc}

interface

{ TODO: Consider: more filename functions from SysUtils }
{ TODO: Consider: string functions from StrUtils. }

uses
  Types, SysUtils, Windows;

//---------------------------------------------------------------------------------------------
//                                 Tnt - Types
//---------------------------------------------------------------------------------------------

// ......... introduced .........
type
  WideException = class(Exception)
  private
    FMessage: WideString;
    procedure SetMessage(const Value: WideString);
  public
    constructor Create(const Msg: WideString);
    constructor CreateFmt(const Msg: WideString; const Args: array of const);
    constructor CreateRes(Ident: Integer); overload;
    constructor CreateRes(ResStringRec: PResStringRec); overload;
    constructor CreateResFmt(Ident: Integer; const Args: array of const); overload;
    constructor CreateResFmt(ResStringRec: PResStringRec; const Args: array of const); overload;
    constructor CreateHelp(const Msg: WideString; AHelpContext: Integer);
    constructor CreateFmtHelp(const Msg: WideString; const Args: array of const;
      AHelpContext: Integer);
    constructor CreateResHelp(Ident: Integer; AHelpContext: Integer); overload;
    constructor CreateResHelp(ResStringRec: PResStringRec; AHelpContext: Integer); overload;
    constructor CreateResFmtHelp(ResStringRec: PResStringRec; const Args: array of const;
      AHelpContext: Integer); overload;
    constructor CreateResFmtHelp(Ident: Integer; const Args: array of const;
      AHelpContext: Integer); overload;
    property Message: WideString read FMessage write SetMessage;
  end;

  EWideOSError = class(WideException)
  public
    ErrorCode: DWORD;
  end;

  // The user of the application did something plainly wrong.
  ETntUserError = class(Exception);
  // A general error occured. (ie. file didn't exist, server didn't return data, etc.)
  ETntGeneralError = class(Exception);
  // Like Assert().  An error occured that should never have happened, send me a bug report now!
  ETntInternalError = class(Exception);

//---------------------------------------------------------------------------------------------
//                                 Tnt - SysUtils
//---------------------------------------------------------------------------------------------

// ......... SBCS and MBCS functions with WideString replacements in SysUtils.pas .........

{TNT-WARN CompareStr}                   {TNT-WARN AnsiCompareStr}
{TNT-WARN SameStr}                      {TNT-WARN AnsiSameStr}
{TNT-WARN SameText}                     {TNT-WARN AnsiSameText}
{TNT-WARN CompareText}                  {TNT-WARN AnsiCompareText}
{TNT-WARN UpperCase}                    {TNT-WARN AnsiUpperCase}
{TNT-WARN LowerCase}                    {TNT-WARN AnsiLowerCase}

{TNT-WARN AnsiPos}  { --> Pos() supports WideString. }
{TNT-WARN FmtStr}
{TNT-WARN Format}
{TNT-WARN FormatBuf}

// ......... MBCS Byte Type Procs .........

{TNT-WARN ByteType}
{TNT-WARN StrByteType}
{TNT-WARN ByteToCharIndex}
{TNT-WARN ByteToCharLen}
{TNT-WARN CharToByteIndex}
{TNT-WARN CharToByteLen}

// ........ null-terminated string functions .........

{TNT-WARN StrEnd}
{TNT-WARN StrLen}
{TNT-WARN StrLCopy}
{TNT-WARN StrCopy}
{TNT-WARN StrECopy}
{TNT-WARN StrPLCopy}
{TNT-WARN StrPCopy}
{TNT-WARN StrLComp}
{TNT-WARN AnsiStrLComp}
{TNT-WARN StrComp}
{TNT-WARN AnsiStrComp}
{TNT-WARN StrLIComp}
{TNT-WARN AnsiStrLIComp}
{TNT-WARN StrIComp}
{TNT-WARN AnsiStrIComp}
{TNT-WARN StrLower}
{TNT-WARN AnsiStrLower}
{TNT-WARN StrUpper}
{TNT-WARN AnsiStrUpper}
{TNT-WARN StrPos}
{TNT-WARN AnsiStrPos}
{TNT-WARN StrScan}
{TNT-WARN AnsiStrScan}
{TNT-WARN StrRScan}
{TNT-WARN AnsiStrRScan}
{TNT-WARN StrLCat}
{TNT-WARN StrCat}
{TNT-WARN StrMove}
{TNT-WARN StrPas}
{TNT-WARN StrAlloc}
{TNT-WARN StrBufSize}
{TNT-WARN StrNew}
{TNT-WARN StrDispose}

{TNT-WARN AnsiExtractQuotedStr}
{TNT-WARN AnsiLastChar}
{TNT-WARN AnsiStrLastChar}
{TNT-WARN QuotedStr}
{TNT-WARN AnsiQuotedStr}
{TNT-WARN AnsiDequotedStr}

// ........ string functions .........

{$IFNDEF COMPILER_9_UP}
  //
  // pre-Delphi 9 issues w/ WideFormatBuf, WideFmtStr and WideFormat
  //

  {$IFDEF COMPILER_7_UP}
  type
    PFormatSettings = ^TFormatSettings;
  {$ENDIF}

  // SysUtils.WideFormatBuf doesn't correctly handle numeric specifiers.
  function Tnt_WideFormatBuf(var Buffer; BufLen: Cardinal; const FormatStr;
    FmtLen: Cardinal; const Args: array of const): Cardinal; {$IFDEF COMPILER_7_UP} overload; {$ENDIF}

  {$IFDEF COMPILER_7_UP}
  function Tnt_WideFormatBuf(var Buffer; BufLen: Cardinal; const FormatStr;
    FmtLen: Cardinal; const Args: array of const;
      const FormatSettings: TFormatSettings): Cardinal; overload;
  {$ENDIF}

  // SysUtils.WideFmtStr doesn't handle string lengths > 4096.
  procedure Tnt_WideFmtStr(var Result: WideString; const FormatStr: WideString;
    const Args: array of const); {$IFDEF COMPILER_7_UP} overload; {$ENDIF}

  {$IFDEF COMPILER_7_UP}
  procedure Tnt_WideFmtStr(var Result: WideString; const FormatStr: WideString;
    const Args: array of const; const FormatSettings: TFormatSettings); overload;
  {$ENDIF}

  {----------------------------------------------------------------------------------------
    Without the FormatSettings parameter, Tnt_WideFormat is *NOT* necessary...
      TntSystem.InstallTntSystemUpdates([tsFixWideFormat]);
        will fix WideFormat as well as WideFmtStr.
  ----------------------------------------------------------------------------------------}
  function Tnt_WideFormat(const FormatStr: WideString; const Args: array of const): WideString; {$IFDEF COMPILER_7_UP} overload; {$ENDIF}

  {$IFDEF COMPILER_7_UP}
  function Tnt_WideFormat(const FormatStr: WideString; const Args: array of const;
    const FormatSettings: TFormatSettings): WideString; overload;
  {$ENDIF}

{$ENDIF}

function WideLoadStr(Ident: Integer): WideString;
function WideFmtLoadStr(Ident: Integer; const Args: array of const): WideString;

{TNT-WARN WideUpperCase} // SysUtils.WideUpperCase is broken on Win9x for D6, D7, D9.
function Tnt_WideUpperCase(const S: WideString): WideString;
{TNT-WARN WideLowerCase} // SysUtils.WideLowerCase is broken on Win9x for D6, D7, D9.
function Tnt_WideLowerCase(const S: WideString): WideString;

function TntWideLastChar(const S: WideString): WideChar;

{TNT-WARN StringReplace}
{TNT-WARN WideStringReplace} // <-- WideStrUtils.WideStringReplace uses SysUtils.WideUpperCase which is broken on Win9x.
function Tnt_WideStringReplace(const S, OldPattern, NewPattern: WideString;
  Flags: TReplaceFlags; WholeWord: Boolean = False): WideString;

{TNT-WARN AdjustLineBreaks}
type TTntTextLineBreakStyle = (tlbsLF, tlbsCRLF, tlbsCR);
function TntAdjustLineBreaksLength(const S: WideString; Style: TTntTextLineBreakStyle = tlbsCRLF): Integer;
function TntAdjustLineBreaks(const S: WideString; Style: TTntTextLineBreakStyle = tlbsCRLF): WideString;

{TNT-WARN WrapText}
function WideWrapText(const Line, BreakStr: WideString; const BreakChars: TSysCharSet;
  MaxCol: Integer): WideString; overload;
function WideWrapText(const Line: WideString; MaxCol: Integer): WideString; overload;

// ........ filename manipulation .........

{TNT-WARN SameFileName}           // doesn't apply to Unicode filenames, use WideSameText
{TNT-WARN AnsiCompareFileName}    // doesn't apply to Unicode filenames, use WideCompareText
{TNT-WARN AnsiLowerCaseFileName}  // doesn't apply to Unicode filenames, use WideLowerCase
{TNT-WARN AnsiUpperCaseFileName}  // doesn't apply to Unicode filenames, use WideUpperCase

{TNT-WARN IncludeTrailingBackslash}
function WideIncludeTrailingBackslash(const S: WideString): WideString;
{TNT-WARN IncludeTrailingPathDelimiter}
function WideIncludeTrailingPathDelimiter(const S: WideString): WideString;
{TNT-WARN ExcludeTrailingBackslash}
function WideExcludeTrailingBackslash(const S: WideString): WideString;
{TNT-WARN ExcludeTrailingPathDelimiter}
function WideExcludeTrailingPathDelimiter(const S: WideString): WideString;
{TNT-WARN IsDelimiter}
function WideIsDelimiter(const Delimiters, S: WideString; Index: Integer): Boolean;
{TNT-WARN IsPathDelimiter}
function WideIsPathDelimiter(const S: WideString; Index: Integer): Boolean;
{TNT-WARN LastDelimiter}
function WideLastDelimiter(const Delimiters, S: WideString): Integer;
{TNT-WARN ChangeFileExt}
function WideChangeFileExt(const FileName, Extension: WideString): WideString;
{TNT-WARN ExtractFilePath}
function WideExtractFilePath(const FileName: WideString): WideString;
{TNT-WARN ExtractFileDir}
function WideExtractFileDir(const FileName: WideString): WideString;
{TNT-WARN ExtractFileDrive}
function WideExtractFileDrive(const FileName: WideString): WideString;
{TNT-WARN ExtractFileName}
function WideExtractFileName(const FileName: WideString): WideString;
{TNT-WARN ExtractFileExt}
function WideExtractFileExt(const FileName: WideString): WideString;
{TNT-WARN ExtractRelativePath}
function WideExtractRelativePath(const BaseName, DestName: WideString): WideString;

// ........ file management routines .........

{TNT-WARN ExpandFileName}
function WideExpandFileName(const FileName: WideString): WideString;
{TNT-WARN ExtractShortPathName}
function WideExtractShortPathName(const FileName: WideString): WideString;
{TNT-WARN FileCreate}
function WideFileCreate(const FileName: WideString): Integer;
{TNT-WARN FileOpen}
function WideFileOpen(const FileName: WideString; Mode: LongWord): Integer;
{TNT-WARN FileAge}
function WideFileAge(const FileName: WideString): Integer; overload;
function WideFileAge(const FileName: WideString; out FileDateTime: TDateTime): Boolean; overload;
{TNT-WARN DirectoryExists}
function WideDirectoryExists(const Name: WideString): Boolean;
{TNT-WARN FileExists}
function WideFileExists(const Name: WideString): Boolean;
{TNT-WARN FileGetAttr}
function WideFileGetAttr(const FileName: WideString): Cardinal;
{TNT-WARN FileSetAttr}
function WideFileSetAttr(const FileName: WideString; Attr: Integer): Boolean;
{TNT-WARN FileIsReadOnly}
function WideFileIsReadOnly(const FileName: WideString): Boolean;
{TNT-WARN FileSetReadOnly}
function WideFileSetReadOnly(const FileName: WideString; ReadOnly: Boolean): Boolean;
{TNT-WARN ForceDirectories}
function WideForceDirectories(Dir: WideString): Boolean;
{TNT-WARN FileSearch}
function WideFileSearch(const Name, DirList: WideString): WideString;
{TNT-WARN RenameFile}
function WideRenameFile(const OldName, NewName: WideString): Boolean;
{TNT-WARN DeleteFile}
function WideDeleteFile(const FileName: WideString): Boolean;
{TNT-WARN CopyFile}
function WideCopyFile(FromFile, ToFile: WideString; FailIfExists: Boolean): Boolean;


{TNT-WARN TFileName}
type
  TWideFileName = type WideString;

{TNT-WARN TSearchRec} // <-- FindFile - warning on TSearchRec is all that is necessary
type
  TSearchRecW = record
    Time: Integer;
    Size: Int64;
    Attr: Integer;
    Name: TWideFileName;
    ExcludeAttr: Integer;
    FindHandle: THandle;
    FindData: TWin32FindDataW;
  end;
function WideFindFirst(const Path: WideString; Attr: Integer; var F: TSearchRecW): Integer;
function WideFindNext(var F: TSearchRecW): Integer;
procedure WideFindClose(var F: TSearchRecW);

{TNT-WARN CreateDir}
function WideCreateDir(const Dir: WideString): Boolean;
{TNT-WARN RemoveDir}
function WideRemoveDir(const Dir: WideString): Boolean;
{TNT-WARN GetCurrentDir}
function WideGetCurrentDir: WideString;
{TNT-WARN SetCurrentDir}
function WideSetCurrentDir(const Dir: WideString): Boolean;


// ........ date/time functions .........

{TNT-WARN TryStrToDateTime}
function TntTryStrToDateTime(Str: WideString; out DateTime: TDateTime): Boolean;
{TNT-WARN TryStrToDate}
function TntTryStrToDate(Str: WideString; out DateTime: TDateTime): Boolean;
{TNT-WARN TryStrToTime}
function TntTryStrToTime(Str: WideString; out DateTime: TDateTime): Boolean;

{ introduced }
function ValidDateTimeStr(Str: WideString): Boolean;
function ValidDateStr(Str: WideString): Boolean;
function ValidTimeStr(Str: WideString): Boolean;

{TNT-WARN StrToDateTime}
function TntStrToDateTime(Str: WideString): TDateTime;
{TNT-WARN StrToDate}
function TntStrToDate(Str: WideString): TDateTime;
{TNT-WARN StrToTime}
function TntStrToTime(Str: WideString): TDateTime;
{TNT-WARN StrToDateTimeDef}
function TntStrToDateTimeDef(Str: WideString; Default: TDateTime): TDateTime;
{TNT-WARN StrToDateDef}
function TntStrToDateDef(Str: WideString; Default: TDateTime): TDateTime;
{TNT-WARN StrToTimeDef}
function TntStrToTimeDef(Str: WideString; Default: TDateTime): TDateTime;

{TNT-WARN CurrToStr}
{TNT-WARN CurrToStrF}
function TntCurrToStr(Value: Currency; lpFormat: PCurrencyFmtW = nil): WideString;
{TNT-WARN StrToCurr}
function TntStrToCurr(const S: WideString): Currency;
{TNT-WARN StrToCurrDef}
function ValidCurrencyStr(const S: WideString): Boolean;
function TntStrToCurrDef(const S: WideString; const Default: Currency): Currency;
function GetDefaultCurrencyFmt: TCurrencyFmtW;

// ........ misc functions .........

{TNT-WARN GetLocaleStr}
function WideGetLocaleStr(LocaleID: LCID; LocaleType: Integer; const Default: WideString): WideString;
{TNT-WARN SysErrorMessage}
function WideSysErrorMessage(ErrorCode: Integer): WideString;
{TNT-WARN RaiseLastOSError}
procedure WideRaiseLastOSError;

// ......... introduced .........

function WideLibraryErrorMessage(const LibName: WideString; Dll: THandle; ErrorCode: Integer): WideString;

const
  CR = WideChar(#13);
  LF = WideChar(#10);
  CRLF = WideString(#13#10);
  WideLineSeparator = WideChar($2028);

var
  Win32PlatformIsUnicode: Boolean;
  Win32PlatformIsXP: Boolean;
  Win32PlatformIs2003: Boolean;
  Win32PlatformIsVista: Boolean;

{$IFNDEF COMPILER_7_UP}
function CheckWin32Version(AMajor: Integer; AMinor: Integer = 0): Boolean;
{$ENDIF}
function WinCheckH(RetVal: Cardinal): Cardinal;
function WinCheckFileH(RetVal: Cardinal): Cardinal;
function WinCheckP(RetVal: Pointer): Pointer;

function WideGetModuleFileName(Instance: HModule): WideString;
function WideSafeLoadLibrary(const Filename: Widestring;
  ErrorMode: UINT = SEM_NOOPENFILEERRORBOX): HMODULE;
function WideLoadPackage(const Name: Widestring): HMODULE;

function IsWideCharUpper(WC: WideChar): Boolean;
function IsWideCharLower(WC: WideChar): Boolean;
function IsWideCharDigit(WC: WideChar): Boolean;
function IsWideCharSpace(WC: WideChar): Boolean;
function IsWideCharPunct(WC: WideChar): Boolean;
function IsWideCharCntrl(WC: WideChar): Boolean;
function IsWideCharBlank(WC: WideChar): Boolean;
function IsWideCharXDigit(WC: WideChar): Boolean;
function IsWideCharAlpha(WC: WideChar): Boolean;
function IsWideCharAlphaNumeric(WC: WideChar): Boolean;

function WideTextPos(const SubStr, S: WideString): Integer;

function ExtractStringArrayStr(P: PWideChar): WideString;
function ExtractStringFromStringArray(var P: PWideChar; Separator: WideChar = #0): WideString;
function ExtractStringsFromStringArray(P: PWideChar; Separator: WideChar = #0): TWideStringDynArray;

function IsWideCharMappableToAnsi(const WC: WideChar): Boolean;
function IsWideStringMappableToAnsi(const WS: WideString): Boolean;
function IsRTF(const Value: WideString): Boolean;

function ENG_US_FloatToStr(Value: Extended): WideString;
function ENG_US_StrToFloat(const S: WideString): Extended;

//---------------------------------------------------------------------------------------------
//                                 Tnt - Variants
//---------------------------------------------------------------------------------------------

// ........ Variants.pas has WideString versions of these functions .........
{TNT-WARN VarToStr}
{TNT-WARN VarToStrDef}

var
  _SettingChangeTime: Cardinal;

implementation

uses
  ActiveX, ComObj, SysConst,
  {$IFDEF COMPILER_9_UP} WideStrUtils, {$ENDIF} TntWideStrUtils,
  TntSystem, TntWindows, TntFormatStrUtils;

//---------------------------------------------------------------------------------------------
//                                 Tnt - Types
//---------------------------------------------------------------------------------------------

{ WideException }

constructor WideException.Create(const Msg: WideString);
begin
  FMessage := Msg;
  inherited Message := FMessage;
end;

constructor WideException.CreateFmt(const Msg: WideString;
  const Args: array of const);
begin
  FMessage := WideFormat(Msg, Args);
  inherited Message := FMessage;
end;

constructor WideException.CreateRes(Ident: Integer);
begin
  FMessage := WideLoadStr(Ident);
  inherited Message := FMessage;
end;

constructor WideException.CreateRes(ResStringRec: PResStringRec);
begin
  FMessage := WideLoadResString(ResStringRec);
  inherited Message := FMessage;
end;

constructor WideException.CreateResFmt(Ident: Integer;
  const Args: array of const);
begin
  FMessage := WideFormat(WideLoadStr(Ident), Args);
  inherited Message := FMessage;
end;

constructor WideException.CreateResFmt(ResStringRec: PResStringRec;
  const Args: array of const);
begin
  FMessage := WideFormat(WideLoadResString(ResStringRec), Args);
  inherited Message := FMessage;
end;

constructor WideException.CreateHelp(const Msg: WideString;
  AHelpContext: Integer);
begin
  FMessage := Msg;
  inherited Message := FMessage;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久91精品国产91久久小草| 欧美肥妇毛茸茸| 在线不卡中文字幕播放| 久久欧美一区二区| 亚洲一区二区高清| 国产成人免费xxxxxxxx| 精品视频一区 二区 三区| 国产天堂亚洲国产碰碰| 天堂一区二区在线免费观看| av中文字幕在线不卡| 日韩三级免费观看| 亚洲午夜私人影院| 99精品视频免费在线观看| 2017欧美狠狠色| 婷婷中文字幕综合| 91豆麻精品91久久久久久| 国产亚洲va综合人人澡精品| 久久av中文字幕片| 欧美日韩不卡在线| 性欧美疯狂xxxxbbbb| 91看片淫黄大片一级在线观看| 久久久国产精品不卡| 蜜桃视频一区二区三区在线观看| 日本韩国欧美国产| 亚洲免费视频成人| 色偷偷一区二区三区| 亚洲国产电影在线观看| 国产自产高清不卡| 精品福利av导航| 韩国av一区二区三区在线观看| 在线观看91精品国产麻豆| 天天影视网天天综合色在线播放| 在线观看一区不卡| 亚洲一二三区在线观看| 91福利视频在线| 亚洲宅男天堂在线观看无病毒 | 亚洲6080在线| 欧美猛男gaygay网站| 午夜激情一区二区三区| 91精品久久久久久久久99蜜臂| 夜夜爽夜夜爽精品视频| 欧美日韩成人一区二区| 日本午夜精品视频在线观看| 日韩欧美中文字幕制服| 久久se这里有精品| 久久久久国产免费免费| 国产69精品久久99不卡| 国产精品天天看| 日本韩国精品在线| 日韩精品欧美精品| 欧美mv日韩mv亚洲| 国产福利一区二区三区视频在线 | 亚洲午夜精品17c| 欧美区在线观看| 亚洲欧美国产高清| 国产日韩欧美制服另类| 国产精品福利影院| 国产麻豆成人精品| 亚洲视频一区在线观看| 欧美高清dvd| 国产最新精品免费| 亚洲桃色在线一区| 日韩精品一区在线观看| 成人理论电影网| 亚洲成av人片在线观看无码| 精品毛片乱码1区2区3区| 成人永久看片免费视频天堂| 亚洲综合成人在线| www久久精品| 欧美日韩中字一区| 国产高清在线观看免费不卡| 亚洲综合精品久久| 日韩一区二区在线看片| av在线免费不卡| 天堂一区二区在线| 国产精品久久久久久久浪潮网站| 欧美日韩一区成人| 成人精品鲁一区一区二区| 香蕉av福利精品导航| 欧美国产亚洲另类动漫| 欧美精品少妇一区二区三区| 丁香啪啪综合成人亚洲小说 | 不卡的av在线| 奇米影视一区二区三区小说| 国产精品毛片久久久久久久| 日韩一区二区在线观看视频播放| eeuss鲁片一区二区三区在线看| 日韩电影在线免费观看| 亚洲三级在线观看| 久久精品一区二区| 欧美一区二区视频网站| 91免费国产在线观看| 国内一区二区在线| 日本亚洲天堂网| 亚洲国产cao| 亚洲一区欧美一区| 日韩毛片高清在线播放| 色综合天天综合网天天看片| 91丨porny丨在线| 欧美国产丝袜视频| 精品久久一区二区| 欧美日韩久久一区二区| 91农村精品一区二区在线| 91免费观看视频在线| 日韩免费电影一区| 欧美日韩国产影片| 91论坛在线播放| 成人黄色免费短视频| 国产又粗又猛又爽又黄91精品| 亚洲一区影音先锋| 亚洲第四色夜色| 香蕉成人啪国产精品视频综合网| 一区二区三区 在线观看视频| 国产精品白丝在线| 国产精品视频一二三区| 亚洲国产精品国自产拍av| 国产人久久人人人人爽| 国产午夜三级一区二区三| 国产欧美日韩久久| 国产精品毛片久久久久久久| 国产精品动漫网站| 亚洲乱码日产精品bd| 亚洲一区二区高清| 日本成人超碰在线观看| 麻豆精品在线观看| 国产精品一区免费视频| 成人在线综合网| 91丨porny丨在线| 欧美日韩www| 日韩片之四级片| 国产女人18水真多18精品一级做| 国产欧美日韩三级| 亚洲日穴在线视频| 偷拍亚洲欧洲综合| 久久99日本精品| 成人免费毛片a| 在线观看国产日韩| 日韩欧美一级在线播放| 久久五月婷婷丁香社区| 国产精品视频看| 亚洲二区在线观看| 国产一区二区毛片| 一本一道波多野结衣一区二区| 欧美日韩亚洲综合在线| 欧美精品一区视频| 亚洲免费视频成人| 美女一区二区久久| 91丨porny丨中文| 日韩久久免费av| 亚洲精品少妇30p| 久草这里只有精品视频| 99精品热视频| 99国产精品视频免费观看| 欧美精品一卡二卡| 国产精品久久国产精麻豆99网站| 亚洲一区二区免费视频| 精彩视频一区二区| 91玉足脚交白嫩脚丫在线播放| 91精品婷婷国产综合久久| 日本一区二区视频在线| 日韩vs国产vs欧美| aaa国产一区| 精品国产凹凸成av人导航| 亚洲精品精品亚洲| 国产精品一区二区视频| 欧美疯狂做受xxxx富婆| 亚洲激情自拍偷拍| 国产精品99久久久久久似苏梦涵 | 日本中文字幕一区| caoporn国产精品| 精品久久国产老人久久综合| 一个色综合av| 成人美女视频在线看| 欧美不卡视频一区| 天天操天天干天天综合网| 成人网页在线观看| 精品国产成人系列| 欧美aⅴ一区二区三区视频| 欧美在线视频日韩| 亚洲色图在线看| 成人av在线观| 国产精品视频一二三| 国产激情视频一区二区三区欧美| 日韩一区二区高清| 欧美aa在线视频| 91精品国产欧美一区二区18| 亚洲大型综合色站| 欧美日韩在线不卡| 午夜久久电影网| 欧美日本乱大交xxxxx| 一区二区三区精品视频| 色999日韩国产欧美一区二区| 国产精品夫妻自拍| 不卡影院免费观看| 国产精品国产三级国产aⅴ无密码| 国产精品一区二区你懂的| 久久青草欧美一区二区三区| 国产综合久久久久久久久久久久| 精品国精品自拍自在线| 国产麻豆9l精品三级站|