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

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

?? ipmsg.h

?? spring+hibenate+struts開發
?? H
?? 第 1 頁 / 共 4 頁
字號:

protected:
	int		hostCnt;
	Host	**array[MAX_ARRAY];
	Host	*Search(Kind kind, HostSub *hostSub, int *insertIndex=NULL);
	int		Cmp(HostSub *hostSub1, HostSub *hostSub2, Kind kind);

public:
	THosts(void);
	~THosts();

	void	Enable(Kind kind, BOOL _enable) { enable[kind] = _enable; }
	BOOL	AddHost(Host *host);
	BOOL	DelHost(Host *host);
	int		HostCnt(void) { return hostCnt; }
	Host	*GetHost(int index, Kind kind=NAME) { return array[kind][index]; }
	Host	*GetHostByName(HostSub *hostSub) { return enable[NAME] ? Search(NAME, hostSub) : NULL; }
	Host	*GetHostByAddr(HostSub *hostSub) { return enable[ADDR] ? Search(ADDR, hostSub) : NULL; }
	Host	*GetHostByNameAddr(HostSub *hostSub) { return enable[NAME_ADDR] ? Search(NAME_ADDR, hostSub) : NULL; }
	int		PriorityHostCnt(int priority, int range=1);
};

struct AddrObj : public TListObj {
	ULONG	addr;
	int		portNo;
};

struct UrlObj : public TListObj {
	char	protocol[MAX_NAMEBUF];
	char	program[MAX_PATH];
};

ULONG ResolveAddr(const char *_host);

class TBroadcastObj : public TListObj {
	char	*host;
	ULONG	addr;
public:
	TBroadcastObj(const char *_host=NULL, ULONG _addr=0) { host=strdup(_host); addr=_addr; }
	~TBroadcastObj() { if (host) free(host); };
	const char *Host() { return	host; }
	ULONG	Addr(BOOL realTime=FALSE) { return realTime ? (addr = ResolveAddr(host)) : addr; }
};

class TBroadcastList : public TList {
public:
	TBroadcastList() {}
	~TBroadcastList() { Reset(); }
	void Reset(void);
//	BOOL SetHost(const char *host);
	void SetHostRaw(const char *host, ULONG addr=0) { TBroadcastObj *obj = new TBroadcastObj(host, addr); AddObj(obj); }
//	BOOL IsExistHost(const char *host);
	TBroadcastObj *Top() { return (TBroadcastObj *)TopObj(); }
	TBroadcastObj *Next(TBroadcastObj *obj) { return (TBroadcastObj *)NextObj(obj); }
};

enum SendWidth { SW_NICKNAME, SW_ABSENCE, SW_GROUP, SW_HOST, SW_IPADDR, SW_USER, SW_PRIORITY, MAX_SENDWIDTH };
inline BOOL GetItem(UINT columnItems, int sw) { return (columnItems & (1 << sw)) ? TRUE : FALSE; }
inline void SetItem(UINT *columnItems, int sw, BOOL on) { if (on) *columnItems |= (1 << sw); else *columnItems &= ~(1 << sw); }

#define CFG_ALL			0xffffffff
#define CFG_GENERAL		0x00000001
#define CFG_ABSENCE		0x00000002
#define CFG_WINSIZE		0x00000004
#define CFG_FONT		0x00000008
#define CFG_BROADCAST	0x00000010
#define CFG_CLICKURL	0x00000020
#define CFG_PRIORITY	0x00000040
#define CFG_FINDHIST	0x00000080
#define CFG_HOSTINFO	0x00001000
#define CFG_DELHOST		0x00002000
#define CFG_DELCHLDHOST	0x00004000
#define CFG_CRYPT		0x00008000

#define FT_STRICTDATE	0x00000001
#define RS_REALTIME		0x00000001

struct Cfg {
protected:
	BOOL	ReadFontRegistry(TRegistry *reg, char *key, LOGFONT *font);
	BOOL	WriteFontRegistry(TRegistry *reg, char *key, LOGFONT *font);

public:
	THosts	priorityHosts;
	THosts	fileHosts;
	int		PriorityMax;
	int		PriorityReject;
	char	**PrioritySound;

	ULONG	nicAddr;
	int		portNo;
	BOOL	NoPopupCheck;
	BOOL	OpenCheck;
	BOOL	NoErase;
	BOOL	NoBeep;
	BOOL	OneClickPopup;
	int		DelayTime;
	BOOL	LogCheck;
	char	LogFile[MAX_PATH];
	char	SoundFile[MAX_PATH];
	BOOL	AbsenceSave;
	BOOL	AbsenceCheck;
	int		AbsenceMax;
	int		AbsenceChoice;
	char	(*AbsenceStr)[MAX_PATH];
	char	(*AbsenceHead)[MAX_NAMEBUF];

	int		FindMax;
	char	(*FindStr)[MAX_NAMEBUF];
	BOOL	FindAll;

	HCRYPTPROV	hSmallCsp;
	PubKey		smallPubKey;
	HCRYPTKEY	hSmallPrivKey;

	HCRYPTPROV	hCsp;
	PubKey		pubKey;
	BYTE		*privBlob;
	int			privBlobLen;
	int			privEncryptType;
	BYTE		*privEncryptSeed;
	int			privEncryptSeedLen;
	HCRYPTKEY	hPrivKey;
	
	BOOL	QuoteCheck;
	BOOL	SecretCheck;
	BOOL	IPAddrCheck;
	BOOL	HotKeyCheck;
	int		HotKeyModify;
	int		HotKeySend;
	int		HotKeyRecv;
	int		HotKeyMisc;
	BOOL	ControlIME;
	int		GlidLineCheck;
	UINT	ColumnItems;
	BOOL	AllowSendList;
	int		fileTransOpt;
	int		ResolveOpt;
	int		EncryptNum;

	int		ViewMax;
	int		TransMax;
	int		TcpbufMax;

	int		NickNameCheck;
	char	NickNameStr[MAX_NAMEBUF];
	char	GroupNameStr[MAX_NAMEBUF];
	BOOL	AbnormalButton;
	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 {
	SOCKET	sd;
	ULONG	addr;
	int		port;
	BOOL	server;
	BOOL	complete;
	DWORD	startTick;
	DWORD	lastTick;
};

class MsgMng {
protected:
	SOCKET		udp_sd;
	SOCKET		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; }
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
岛国一区二区在线观看| 看国产成人h片视频| 最新日韩在线视频| 一区二区三区四区蜜桃| 天天综合天天做天天综合| 免费一级片91| 高清不卡一区二区在线| 欧美午夜理伦三级在线观看| 精品国产乱码久久久久久久久 | 久久久综合精品| 中文字幕国产精品一区二区| 久久激情五月激情| 成人av在线播放网站| 色999日韩国产欧美一区二区| 91麻豆精品91久久久久同性| 久久久av毛片精品| 日韩和的一区二区| 91福利在线导航| 国产精品久久久久久久久快鸭| 日韩精品成人一区二区三区 | 91精品国产高清一区二区三区| 国产日韩欧美制服另类| 日韩av电影一区| 色婷婷激情一区二区三区| 中文字幕第一区第二区| 久久99精品久久久久久动态图| 在线观看视频一区二区| 国产精品久久久久久久久免费樱桃| 精品一区免费av| 欧美一区二区二区| 午夜在线成人av| 欧美美女直播网站| 婷婷中文字幕一区三区| 欧美色手机在线观看| 亚洲自拍另类综合| 在线亚洲欧美专区二区| 亚洲国产成人tv| 欧美日韩国产小视频在线观看| 一区二区免费看| 欧美日韩高清一区二区不卡| 亚洲国产成人高清精品| 欧美性猛交xxxx乱大交退制版| 国产精品美女视频| 在线观看日韩毛片| 美女看a上一区| 日本一区二区在线不卡| 国产99久久久精品| 一区二区三区中文字幕电影| 欧美日韩成人综合| 国产高清在线精品| 亚洲午夜久久久久| 久久嫩草精品久久久精品 | 国产清纯白嫩初高生在线观看91 | 欧美国产日产图区| 欧美精品久久99久久在免费线| 精品一区二区精品| 一区二区三区四区乱视频| 久久青草国产手机看片福利盒子 | 青青草原综合久久大伊人精品优势| 精品久久久久久亚洲综合网| 99久久久久久| 精品一区二区三区在线观看国产| 亚洲欧洲日韩在线| 2020国产精品| 欧美成人艳星乳罩| 欧美区在线观看| 欧美影片第一页| 91丨九色丨黑人外教| 国产超碰在线一区| 国产 日韩 欧美大片| 国产宾馆实践打屁股91| 国产在线精品一区二区不卡了 | 欧美日免费三级在线| eeuss鲁片一区二区三区在线观看| 日本三级亚洲精品| 午夜电影网一区| 亚洲成a人v欧美综合天堂| 亚洲免费毛片网站| 亚洲欧美另类在线| 一区二区不卡在线播放| 一区二区三区四区视频精品免费| 亚洲欧美在线aaa| 亚洲国产综合色| 日韩av二区在线播放| 日日摸夜夜添夜夜添国产精品| 亚洲精品一卡二卡| 午夜亚洲国产au精品一区二区| 亚洲午夜精品一区二区三区他趣| 天天免费综合色| 精品综合免费视频观看| 国产精品夜夜嗨| 91成人网在线| 精品国产伦一区二区三区观看体验 | 欧美视频精品在线观看| 日韩欧美亚洲国产精品字幕久久久| 欧美成人aa大片| 亚洲日韩欧美一区二区在线| 亚洲国产中文字幕| 国产乱码精品一区二区三区av| 91亚洲大成网污www| 欧美一区二区三区四区高清| 一区二区三区在线观看动漫 | 在线观看视频91| 精品国产一区a| 性做久久久久久免费观看| 国产一区二区三区日韩| 欧美日韩的一区二区| 国产精品久久99| 国内精品国产成人国产三级粉色| 91麻豆国产福利在线观看| 久久午夜国产精品| 免费观看日韩av| 7777精品伊人久久久大香线蕉 | 日韩福利电影在线| 欧美探花视频资源| 亚洲国产三级在线| 色欧美乱欧美15图片| 亚洲国产精品高清| 国产91色综合久久免费分享| 欧美刺激午夜性久久久久久久| 亚洲va韩国va欧美va| 欧美日韩电影在线| 日韩成人一区二区三区在线观看| 在线观看视频一区二区| 亚洲精品成人在线| 欧美色涩在线第一页| 日韩精品一卡二卡三卡四卡无卡| 欧美日本在线观看| 极品少妇xxxx精品少妇| 精品成人一区二区三区四区| 国产乱子轮精品视频| 中文字幕av免费专区久久| 91在线视频18| 免费成人在线播放| 久久久久久麻豆| 91丝袜美女网| 久久99热国产| 亚洲免费在线看| 欧美一区二区三区四区久久| 狠狠色丁香久久婷婷综| 中文字幕在线观看不卡视频| 在线观看日韩国产| 国内精品写真在线观看| 亚洲人妖av一区二区| 91精品国产一区二区三区蜜臀| 国产麻豆欧美日韩一区| 亚洲午夜在线视频| 久久精品人人做人人综合 | 亚洲黄色免费电影| 2021国产精品久久精品| 欧美在线你懂得| 国产传媒日韩欧美成人| 亚洲黄色尤物视频| 国产精品久久久久天堂| 精品国产凹凸成av人网站| 91麻豆国产精品久久| av高清不卡在线| 黑人巨大精品欧美黑白配亚洲| 一区二区三区日韩精品视频| 国产午夜三级一区二区三| 91精品国产综合久久久蜜臀图片| 成人av影院在线| 风间由美性色一区二区三区| 激情图区综合网| 国产一区不卡在线| 狠狠色狠狠色综合系列| 久久成人久久鬼色| 久久精品国产亚洲一区二区三区| 五月婷婷综合网| 日日摸夜夜添夜夜添亚洲女人| 亚洲午夜久久久久中文字幕久| 一区二区三区中文字幕在线观看| 亚洲人成网站色在线观看| 中文字幕一区二区三区在线观看| 国产欧美一区二区三区网站| 国产日韩精品久久久| 亚洲同性同志一二三专区| 一区二区三区不卡视频| 亚洲va欧美va人人爽午夜| 日本91福利区| 成人午夜看片网址| 欧美军同video69gay| 欧美国产综合一区二区| 一区二区三区日韩| 国产精品综合二区| 91久久免费观看| 精品国产精品网麻豆系列| 国产精品久久久久久久久搜平片| 一区二区在线观看免费视频播放| 日韩成人午夜精品| 成人一级片在线观看| 欧美久久免费观看| 国产精品网站在线播放| 麻豆精品久久精品色综合| 成人av网站免费| 久久久久久久电影| 麻豆精品久久久| 欧美伊人精品成人久久综合97| 欧美成人女星排名| 亚洲一区二区在线视频|