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

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

?? ipmsg.h

?? IPmessage局域網信息
?? H
?? 第 1 頁 / 共 3 頁
字號:
	BOOL	AbsenceNonPopup;
	BOOL	ListGet;
	UINT	ListGetMSec;
	UINT	RetryMSec;
	UINT	RetryMax;
	int		RecvMax;
	char	Lang[MAX_LANGBUF];
	char	IconFile[MAX_PATH];
	char	RevIconFile[MAX_PATH];
	char	lastSaveDir[MAX_PATH];
	char	lastOpenDir[MAX_PATH];
	ULONG	Sort;
	int		UpdateTime;
	int		KeepHostTime;
	BOOL	MsgMinimize;
	BOOL	DefaultUrl;
	BOOL	ShellExec;
	BOOL	ExtendEntry;
	char	QuoteStr[MAX_NAMEBUF];
	BOOL	Debug;

	int		SendWidth[MAX_SENDWIDTH];
	int		SendOrder[MAX_SENDWIDTH];

	int		SendXdiff;
	int		SendYdiff;
	int		SendMidYdiff;
	BOOL	SendSavePos;
	int		SendXpos;
	int		SendYpos;

	int		RecvXdiff;
	int		RecvYdiff;
	BOOL	RecvSavePos;
	int		RecvXpos;
	int		RecvYpos;

	LOGFONT	SendEditFont;
	LOGFONT	SendListFont;
	LOGFONT	RecvHeadFont;
	LOGFONT	RecvEditFont;

	char	PasswordStr[MAX_NAMEBUF];
	BOOL	PasswdLogCheck;
	TList	urlList;
	BOOL	DialUpCheck;
	TList	DialUpList;
	TBroadcastList	broadcastList;

	Cfg(ULONG _nicAddr, int _portNo);
	~Cfg();
	enum PART { FIND };

	BOOL	ReadRegistry(void);
	BOOL	WriteRegistry(int ctl_flg = CFG_ALL);
	void	GetRegName(char *buf, ULONG nic_addr, int port_no);
};

struct MsgBuf {
	HostSub	hostSub;
	int		version;
	int		portNo;
	ULONG	packetNo;
	ULONG	command;
	int		exOffset;			// expand message offset in msgBuf
	int		dummy;
	char	msgBuf[MAX_UDPBUF];

	// 儊儌儕僐僺乕愡栺偺偨傔丅
	void	Init(MsgBuf *org) {
		if (org == NULL) {
			memset(this, 0, (char *)&this->dummy - (char *)this);
			*msgBuf = 0;
			return;
		}
		memcpy(this, org, (char *)&this->dummy - (char *)this);
		strcpy(this->msgBuf, org->msgBuf);
		strcpy(this->msgBuf + exOffset, org->msgBuf + exOffset);
	}
};

struct RecvBuf {
	struct sockaddr_in	addr;
	int					addrSize;
	int					size;
	char				msgBuf[MAX_UDPBUF];
};

struct ConnectInfo : public TListObj {
	int		sd;
	ULONG	addr;
	int		port;
	BOOL	server;
	BOOL	complete;
	DWORD	startTick;
	DWORD	lastTick;
};

class MsgMng {
protected:
	int			udp_sd;
	int			tcp_sd;

	BOOL		status;
	ULONG		packetNo;
	Cfg			*cfg;

	HWND		hAsyncWnd;
	UINT		uAsyncMsg;
	UINT		lAsyncMode;
	HostSub		local;

	BOOL		WSockInit(BOOL recv_flg);
	void		WSockTerm(void);
	BOOL		WSockReset(void);

public:
	MsgMng(ULONG nicAddr, int portNo, Cfg *cfg=NULL);
	~MsgMng();

	BOOL	GetStatus(void)	{ return	status; }
	HostSub	*GetLocalHost(void) { return	&local; }
	void	CloseSocket(void);
	BOOL	IsAvailableTCP() { return tcp_sd != INVALID_SOCKET ? TRUE : FALSE; }

	BOOL	Send(HostSub *hostSub, ULONG command, int val);
	BOOL	Send(HostSub *hostSub, ULONG command, const char *message=NULL, const char *exMsg=NULL);
	BOOL	Send(ULONG host_addr, int port_no, ULONG command, const char *message=NULL, const char *exMsg=NULL);
	BOOL	AsyncSelectRegist(HWND hWnd);
	BOOL	Recv(MsgBuf *msg);
	BOOL	ResolveMsg(RecvBuf *buf, MsgBuf *msg);
	ULONG	MakePacketNo(void) { return packetNo++; }
	ULONG	MakeMsg(char *udp_msg, int packetNo, ULONG command, const char *msg, const char *exMsg=NULL, int *packet_len=NULL);
	ULONG	MakeMsg(char *udp_msg, ULONG command, const char *msg, const char *exMsg=NULL, int *packet_len=NULL) { return	MakeMsg(udp_msg, MakePacketNo(), command, msg, exMsg, packet_len); }
	BOOL	UdpSend(ULONG host_addr, int port_no, const char *udp_msg);
	BOOL	UdpSend(ULONG host_addr, int port_no, const char *udp_msg, int len);
	BOOL	UdpRecv(RecvBuf *buf);

	BOOL	Accept(HWND hWnd, ConnectInfo *info);
	BOOL	Connect(HWND hWnd, ConnectInfo *info);
	BOOL	AsyncSelectConnect(HWND hWnd, ConnectInfo *info);
	BOOL	ConnectDone(HWND hWnd, ConnectInfo *info);

	static int LocalNewLineToUnix(const char *src, char *dest, int maxlen);
	static int UnixNewLineToLocal(const char *src, char *dest, int maxlen);
};

class TAbsenceDlg : public TDlg {
protected:
	Cfg		*cfg;
	int		currentChoice;
	char	(*tmpAbsenceStr)[MAX_PATH];
	char	(*tmpAbsenceHead)[MAX_NAMEBUF];
	void	SetData(void);
	void	GetData(void);

public:
	TAbsenceDlg(Cfg *_cfg, TWin *_parent = NULL);
	virtual ~TAbsenceDlg();

	virtual BOOL	EvCreate(LPARAM lParam);
	virtual BOOL	EvNcDestroy(void);
	virtual BOOL	EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl);
	virtual BOOL	EventUser(UINT uMsg, WPARAM wParam, LPARAM lParam);
};

class TSortDlg : public TDlg {
protected:
	static	TSortDlg *exclusiveWnd;
	Cfg		*cfg;
	void	SetData(void);
	void	GetData(void);

public:
	TSortDlg(Cfg *_cfg, TWin *_parent = NULL);

	virtual int		Exec(void);
	virtual BOOL	EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl);
	virtual BOOL	EvCreate(LPARAM lParam);
};

class TUrlDlg : public TDlg {
protected:
	Cfg		*cfg;
	TList	tmpUrlList;
	char	currentProtocol[MAX_NAMEBUF];
	void	SetData(void);
	void	GetData(void);
	void	SetCurrentData(void);

public:
	TUrlDlg(Cfg *_cfg, TWin *_parent = NULL);
	virtual ~TUrlDlg();

	virtual BOOL	EvCreate(LPARAM lParam);
	virtual BOOL	EvNcDestroy(void);
	virtual BOOL	EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl);
};

class TSendDlg;
class TFindDlg : public TDlg {
protected:
	Cfg		*cfg;
	TSendDlg	*sendDlg;

public:
	TFindDlg(Cfg *_cfg, TSendDlg *_parent);

	virtual BOOL	EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl);
	virtual BOOL	EvCreate(LPARAM lParam);
};

enum SendStatus { ST_GETCRYPT=0, ST_MAKECRYPTMSG, ST_MAKEMSG, ST_SENDMSG, ST_DONE };
class SendEntry {
	Host		*host;
	SendStatus	status;
	UINT		command;
	char		*msg;
	int			msgLen;

public:
	SendEntry() { msg = NULL; host = NULL; }
	~SendEntry() { delete [] msg; if (host && host->RefCnt(-1) == 0) delete host; }
	void SetMsg(char *_msg, int len) { msg = new char[msgLen=len]; memcpy(msg, _msg, len); }
	const char *Msg(void) { return msg; }
	int MsgLen() { return msgLen; }
	void SetHost(Host *_host) { (host = _host)->RefCnt(1); }
	Host *Host(void) { return host; }
	void SetStatus(SendStatus _status) { status = _status; }
	SendStatus Status(void) { return status; }
	void SetCommand(UINT _command) { command = _command ; }
	UINT Command(void) { return command; }
};

class TEditSub : public TSubClassCtl {
protected:
	Cfg			*cfg;

public:
	TEditSub(Cfg *_cfg, TWin *_parent);

	virtual BOOL	EventButton(UINT uMsg, int nHitTest, POINTS pos);
	virtual BOOL	EventUser(UINT uMsg, WPARAM wParam, LPARAM lParam);
};

class TSeparateSub : public TSubClassCtl {
protected:
	HCURSOR	hCursor;

public:
	TSeparateSub(TWin *_parent);

	virtual BOOL	EvSetCursor(HWND cursorWnd, WORD nHitTest, WORD wMouseMsg);
	virtual BOOL	EvNcHitTest(POINTS pos, LRESULT *result);
	virtual BOOL	EventButton(UINT uMsg, int nHitTest, POINTS pos);
};

class TListViewEx : public TSubClassCtl {
protected:
	int		focus_index;

public:
	TListViewEx(TWin *_parent);

	int		GetFocusIndex(void) { return focus_index; }
	void	SetFocusIndex(int index) { focus_index = index; }

	virtual BOOL	EventFocus(UINT uMsg, HWND hFocusWnd);
	virtual BOOL	EventButton(UINT uMsg, int nHitTest, POINTS pos);
	virtual BOOL	EventUser(UINT uMsg, WPARAM wParam, LPARAM lParam);
};

class TListDlg : public TDlg, public TListObj {
public:
	TListDlg(LPSTR _name, TWin *_parent = NULL) : TDlg(_name, _parent) {}
	TListDlg(UINT	resid, TWin *_parent = NULL) : TDlg(resid, _parent) {}
};

class FileInfo : public TListObj {
	int			id;		// Win 斉偱偼丄扨側傞僔乕働儞僔儍儖NO傪僙僢僩
	char		*fname;
	const char	*fname_ext;	// for recv dir thread
	UINT		attr;
	_int64		size;
	time_t		mtime;
	time_t		atime;
	time_t		crtime;
	BOOL		isSelected;		// for recvdlg

public:
	FileInfo(int _id=0) { id=_id; fname_ext=fname=NULL; size=0; mtime=0; }
	FileInfo(const FileInfo& org) { fname=NULL; *this = org; }
	~FileInfo() { if (fname) free(fname); }

	int Id() { return id; }
	void SetId(int _id) { id = _id; }
	const char *Fname() { return fname ? fname : fname_ext; }
	void SetFname(const char *_fname) { if (fname) free(fname); fname = (char *)strdup(_fname); }
	void SetFnameExt(const char *_fname) { fname_ext = _fname; }
	_int64 Size() { return size; }
	void SetSize(_int64 _size) { size = _size; }
	time_t Mtime() { return mtime; }
	void SetMtime(time_t _mtime) { mtime = _mtime; }
	time_t Atime() { return atime; }
	void SetAtime(time_t _atime) { atime = _atime; }
	time_t Crtime() { return crtime; }
	void SetCrtime(time_t _crtime) { crtime = _crtime; }
	UINT Attr() { return attr; }
	void SetAttr(UINT _attr) { attr = _attr; }
	BOOL IsSelected() { return isSelected; }
	void SetSelected(BOOL _isSelected) { isSelected = _isSelected; }
	FileInfo& operator =(const FileInfo& org) { id=org.id; SetFname(org.fname); attr=org.attr; size=org.size; mtime=org.mtime; atime=org.atime; crtime=org.crtime; isSelected=org.isSelected; return *this; }
};

struct ShareInfo : public TListObj {	// 偄偢傟 class 偵乮巄掕堏峴拞乯
	int			packetNo;		// not use recvdlg
	Host		**host;			// allow host list, not use recvdlg
	int			hostCnt;		// not use recvdlg
	char		*transStat;		// not use recvdlg
	FileInfo	**fileInfo;		// allow file list
	int			fileCnt;
	FILETIME	attachTime;

public:
	ShareInfo(int packetNo=0);
	void LinkList(ShareInfo *top);
};

BOOL EncodeShareMsg(ShareInfo *info, char *buf, int bufsize);
ShareInfo *DecodeShareMsg(char *buf);
BOOL FreeDecodeShareMsg(ShareInfo *info);
BOOL FreeDecodeShareMsgFile(ShareInfo *info, int index);
BOOL SetFileButton(TDlg *dlg, int buttonID, ShareInfo *info);


struct AcceptFileInfo {
	FileInfo	*fileInfo;
	Host		*host;
	_int64		offset;
	int			packetNo;
	UINT		command;
	FILETIME	attachTime;
};

struct ShareCntInfo {
	int		hostCnt;
	int		fileCnt;
	int		dirCnt;
	int		transferCnt;
	int		doneCnt;
	int		packetCnt;
	_int64	totalSize;
};

class TShareStatDlg;
class ShareMng {
public:
	enum			{ TRANS_INIT, TRANS_BUSY, TRANS_DONE };
protected:
	TListObj		_top;	// 斣暫梡
	ShareInfo		*top;
	TShareStatDlg	*statDlg;
	Cfg				*cfg;
	BOOL			SetFileInfo(char *fname, FileInfo *info);
public:
	ShareMng(Cfg *_cfg);
	~ShareMng();
	ShareInfo *CreateShare(int packetNo);
	void	DestroyShare(ShareInfo *info);
	BOOL	AddFileShare(ShareInfo *info, char *fname);
	BOOL	DelFileShare(ShareInfo *info, int fileNo);
	BOOL	EndHostShare(int packetNo, HostSub *hostSub, FileInfo *fileInfo=NULL, BOOL done=TRUE);
	BOOL	AddHostShare(ShareInfo *info, SendEntry *entry, int entryNum);
	ShareInfo	*Top(void) { return top->next != top ? (ShareInfo *)top->next : NULL; }
	ShareInfo	*Next(ShareInfo *info) { return info->next != top ? (ShareInfo *)info->next : NULL; }
	ShareInfo	*Search(int packetNo);
	BOOL	GetShareCntInfo(ShareCntInfo *info, ShareInfo *shareInfo=NULL);
	BOOL	GetAcceptableFileInfo(ConnectInfo *info, char *buf, AcceptFileInfo *fileInfo);
	void	RegistShareStatDlg(TShareStatDlg *_dlg) { statDlg = _dlg; }
	static int GetFileInfoNo(ShareInfo *info, FileInfo *fileInfo);
};

class TShareDlg : public TDlg {
	ShareMng	*shareMng;
	ShareInfo	*shareInfo;
	Cfg			*cfg;
	char		lvBuf[MAX_PATH];
	BOOL		AddList(int cnt);
	BOOL		DelList(int cnt);
	TListViewEx	shareListView;

public:
	TShareDlg(ShareMng *_shareMng, ShareInfo *_shareInfo, Cfg *_cfg, TWin *_parent = NULL);
	~TShareDlg();
//	virtual int		Exec(void);
	virtual BOOL	EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl);
	virtual BOOL	EvCreate(LPARAM lParam);
	virtual BOOL	EvDropFiles(HDROP hDrop);
	virtual BOOL	EvNotify(UINT ctlID, NMHDR *pNmHdr);
static BOOL FileAddDlg(TDlg *dlg, ShareMng *sharMng, ShareInfo *shareInfo, Cfg *cfg);
};

class TSaveCommonDlg : public TDlg {
protected:
	TWin		*parentWin;
	ShareInfo	*shareInfo;
	Cfg			*cfg;
	int			offset;
	BOOL		SetInfo(void);

public:
	TSaveCommonDlg(ShareInfo *_shareInfo, Cfg *_cfg, TWin *_parentWin);
	virtual int		Exec(void);
	virtual BOOL	EvCreate(LPARAM lParam);
	virtual BOOL	EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl);
	virtual BOOL	EventUser(UINT uMsg, WPARAM wParam, LPARAM lParam);
	virtual void	EndDialog(int) {}	// 柍帇偝偣傞
};

class LogMng {
protected:
	Cfg		*cfg;
	BOOL	Write(LPCSTR str);

public:
	LogMng(Cfg *_cfg);

	BOOL	WriteSendStart(void);
	BOOL	WriteSendHead(LPCSTR head);
	BOOL	WriteSendMsg(LPCSTR msg, ULONG command, ShareInfo *shareInfo=NULL);
	BOOL	WriteRecvMsg(MsgBuf *msg, THosts *hosts, ShareInfo *shareInfo=NULL);
	BOOL	WriteStart(void);
	BOOL	WriteMsg(LPCSTR msg, ULONG command, ShareInfo *shareInfo=NULL);

static void StrictLogFile(char *path);
};

class TSendDlg : public TListDlg {
protected:
	MsgMng		*msgMng;
	Cfg			*cfg;
	LogMng		*logmng;
	HWND		hRecvWnd;
	MsgBuf		msg;
	ShareMng	*shareMng;
	ShareInfo	*shareInfo;

	THosts		*hosts;
	TFindDlg	*findDlg;
	Host		**hostArray;
	int			memberCnt;

	SendEntry	*sendEntry;
	int			sendEntryNum;
	UINT		command;
	char		*shareStr;
	char		msgBuf[MAX_UDPBUF];
	char		selectGroup[MAX_NAMEBUF];

	ULONG		packetNo;
	int			packetLen;
	UINT		timerID;
	UINT		retryCnt;

// display
	HFONT		hListFont;
	HFONT		hEditFont;
	LOGFONT		orgFont;

	RECT		orgRect;
	enum		send_item { host_item=0, member_item, refresh_item, edit_item, ok_item, secret_item, passwd_item, separate_item, file_item, max_senditem };
	WINPOS		item[max_senditem];

	int			currentMidYdiff;
	int			dividYPos;
	int			lastYPos;
	BOOL		captureMode;
	BOOL		listOperateCnt;
	BOOL		hiddenDisp;

	int			maxItems;
	UINT		ColumnItems;
	int			FullOrder[MAX_SENDWIDTH];
	int			items[MAX_SENDWIDTH];
	BOOL		lvStateEnable;
	int			sortItem;
	BOOL		sortRev;

	TEditSub		editSub;
	TListViewEx		hostListView;
	TSeparateSub	separateSub;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清中文字幕一区| 欧美精品一区二区三区视频| 国产精品萝li| 成人福利在线看| 亚洲欧美综合色| 91一区在线观看| 亚洲午夜免费视频| 欧美一区二区三区四区五区 | 亚洲精品你懂的| 91国产精品成人| 香蕉久久夜色精品国产使用方法 | 欧美电影免费观看高清完整版在线| 日韩激情av在线| 精品日韩欧美在线| 国产91精品在线观看| 亚洲视频 欧洲视频| 欧美视频精品在线| 精品一区二区在线视频| 国产无人区一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 一区二区三区国产精品| 91精品免费在线观看| 国产精品一区二区久久不卡| 中文字幕在线一区二区三区| 色欧美日韩亚洲| 麻豆成人av在线| 中文字幕一区二区三区四区 | 国产91丝袜在线播放九色| 亚洲综合激情另类小说区| 日韩亚洲欧美成人一区| 不卡一卡二卡三乱码免费网站| 午夜精品一区二区三区免费视频| 精品久久久久一区| 91在线免费看| 免费高清不卡av| 中文字幕亚洲区| 精品卡一卡二卡三卡四在线| 一本到一区二区三区| 韩国v欧美v亚洲v日本v| 亚洲一区二区三区不卡国产欧美| 精品免费日韩av| 欧美综合在线视频| 懂色av一区二区夜夜嗨| 日本特黄久久久高潮| 亚洲日本成人在线观看| 久久这里只精品最新地址| 欧美日韩你懂得| 成人久久久精品乱码一区二区三区| 婷婷久久综合九色综合绿巨人| 亚洲成人久久影院| 久久一区二区三区四区| 欧美三级中文字| 99久久精品一区| 国产成人av网站| 蜜桃视频一区二区三区| 亚洲一区二区精品视频| 中文文精品字幕一区二区| 欧美一区二区三区视频在线观看 | 欧美亚洲国产一区在线观看网站| 国产自产高清不卡| 日本视频中文字幕一区二区三区| 亚洲精品中文在线观看| 亚洲国产激情av| 久久综合久久综合亚洲| 日韩精品一区二区三区蜜臀| 欧美另类一区二区三区| 欧美性大战久久久久久久蜜臀| 99在线精品观看| 国产福利一区二区三区视频| 狠狠色狠狠色综合系列| 日本欧美一区二区| 肉丝袜脚交视频一区二区| 亚洲午夜久久久久久久久久久| 最新国产成人在线观看| 国产精品久久久99| 中文字幕一区二区在线观看| 亚洲国产成人一区二区三区| 中文幕一区二区三区久久蜜桃| 久久久噜噜噜久噜久久综合| 精品卡一卡二卡三卡四在线| 精品久久人人做人人爰| 欧美精品一区二| 久久久精品黄色| 中文一区二区在线观看| 国产精品高潮呻吟久久| 综合久久久久久| 亚洲欧美日韩小说| 亚洲永久精品大片| 亚洲国产一区在线观看| 日韩电影免费在线观看网站| 蜜臀久久99精品久久久久久9| 久久国产精品色| 国产自产v一区二区三区c| 国产成人av影院| 成人免费毛片app| 色婷婷激情综合| 欧美人体做爰大胆视频| 日韩女优视频免费观看| 久久久久高清精品| 亚洲色大成网站www久久九九| 亚洲最大的成人av| 三级精品在线观看| 国产精品亚洲人在线观看| av亚洲精华国产精华| 欧美日韩在线播| 日韩亚洲欧美一区| 国产精品美女视频| 亚洲一区二区三区视频在线 | 884aa四虎影成人精品一区| 制服丝袜成人动漫| 国产三级久久久| 亚洲人成精品久久久久| 天天av天天翘天天综合网色鬼国产 | 蜜臂av日日欢夜夜爽一区| 久久66热偷产精品| 91麻豆国产福利在线观看| 欧美男男青年gay1069videost| 精品国产成人系列| 亚洲免费观看高清完整版在线 | 日本成人在线看| 成人a级免费电影| 欧美群妇大交群中文字幕| 国产亚洲综合在线| 亚洲一区二三区| 国产剧情一区二区三区| 欧美三级在线看| 中日韩av电影| 久久se精品一区二区| 色综合久久久网| 久久综合久色欧美综合狠狠| 亚洲成a人v欧美综合天堂| 国产成人av一区二区三区在线 | 精品日韩一区二区| 亚洲伊人伊色伊影伊综合网| 国产精品1区二区.| 91精品在线观看入口| 综合精品久久久| 国产suv一区二区三区88区| 欧美一级二级在线观看| 夜夜精品浪潮av一区二区三区| 国产精品亚洲视频| 日韩美女一区二区三区四区| 亚洲高清免费视频| 97久久精品人人澡人人爽| 久久人人爽人人爽| 蜜臀av国产精品久久久久| 欧美在线观看禁18| 亚洲视频图片小说| 成人av在线资源网| 久久综合久久综合九色| 麻豆高清免费国产一区| 欧美久久久久久蜜桃| 亚洲最新视频在线观看| 91麻豆文化传媒在线观看| 国产视频一区在线播放| 韩国在线一区二区| 日韩欧美自拍偷拍| 日韩影院精彩在线| 7777女厕盗摄久久久| 亚洲成人黄色小说| 欧美日韩色综合| 亚洲一区二区三区四区在线 | 日本亚洲欧美天堂免费| 在线播放中文字幕一区| 亚洲.国产.中文慕字在线| 色婷婷亚洲一区二区三区| 亚洲男同性恋视频| 91网页版在线| 亚洲精品免费在线播放| 色综合久久九月婷婷色综合| 亚洲同性同志一二三专区| 91在线视频网址| 亚洲亚洲精品在线观看| 777xxx欧美| 精品中文字幕一区二区| 国产亚洲欧美日韩日本| 国产·精品毛片| 日本一区二区久久| 99视频精品免费视频| 亚洲免费av在线| 欧美三级乱人伦电影| 视频一区视频二区在线观看| 宅男噜噜噜66一区二区66| 蜜臀va亚洲va欧美va天堂 | 成人美女在线观看| 日韩一区中文字幕| 色88888久久久久久影院按摩| 亚洲高清中文字幕| 在线综合亚洲欧美在线视频| 国产真实乱子伦精品视频| 国产亚洲一区二区三区| 成人动漫一区二区在线| 成人免费小视频| 欧美日韩免费高清一区色橹橹| 日韩高清不卡在线| 久久午夜色播影院免费高清| va亚洲va日韩不卡在线观看| 一区二区三区在线免费视频 | 91啦中文在线观看| 午夜欧美视频在线观看|