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

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

?? ipmsg.h

?? 飛鴿傳書軟件的源代碼 c++編寫的 能夠正常運行
?? 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一区二区三区免费野_久草精品视频
欧美三级在线视频| 欧美一级一区二区| www久久精品| 亚洲成av人片在线观看| 三级不卡在线观看| 成人午夜在线免费| 日韩一区二区三区免费观看| 国产精品高潮呻吟久久| 蜜臀av性久久久久蜜臀av麻豆| 99这里只有精品| 欧美不卡123| 亚洲18女电影在线观看| eeuss影院一区二区三区| 8x8x8国产精品| 亚洲欧美偷拍另类a∨色屁股| 国产一区二区三区香蕉| 91精品国产高清一区二区三区 | 国产精品综合视频| 欧美美女一区二区| 亚洲视频一区二区在线| 日本亚洲欧美天堂免费| 91玉足脚交白嫩脚丫在线播放| 在线播放中文一区| 国产精品不卡在线观看| 成人免费视频视频在线观看免费| 日韩欧美一级二级三级久久久| 亚州成人在线电影| 一本到不卡免费一区二区| 中文字幕制服丝袜一区二区三区| 国产综合久久久久影院| 欧美不卡123| 黑人巨大精品欧美黑白配亚洲| 日韩一区二区精品| 蜜桃一区二区三区在线| 欧美久久高跟鞋激| 日韩黄色免费网站| 欧美一区二区三区小说| 首页亚洲欧美制服丝腿| 欧美肥大bbwbbw高潮| 日韩精品高清不卡| 欧美一区国产二区| 免费成人美女在线观看.| 日韩一区二区三区电影在线观看| 日韩国产高清影视| 日韩一级片在线观看| 美女爽到高潮91| 精品人伦一区二区色婷婷| 极品少妇xxxx精品少妇偷拍| 精品美女在线播放| 韩国视频一区二区| 国产三级精品在线| 99精品欧美一区| 亚洲综合在线免费观看| 欧美日韩一二三区| 毛片一区二区三区| 久久综合色综合88| 粉嫩av亚洲一区二区图片| 一区在线中文字幕| 欧美中文字幕一区二区三区| 亚洲成人激情av| 精品视频1区2区3区| 午夜成人免费电影| 精品国产不卡一区二区三区| 国产一区二区三区在线看麻豆| 国产女人aaa级久久久级| 92国产精品观看| 亚洲动漫第一页| 日韩精品专区在线影院观看 | 亚洲国产精品99久久久久久久久| 国产电影一区二区三区| 亚洲欧洲三级电影| 欧美三级视频在线| 激情六月婷婷久久| 1000精品久久久久久久久| 色综合激情久久| 亚洲乱码日产精品bd| 欧美精品九九99久久| 久久精品国产免费| 国产精品麻豆久久久| 欧美午夜一区二区三区免费大片| 亚洲国产cao| 久久这里都是精品| 99视频一区二区| 日韩福利视频导航| 亚洲国产高清在线观看视频| 欧美色综合天天久久综合精品| 老汉av免费一区二区三区| 国产精品久久久久久久久快鸭| 欧美日韩一级二级| 国产成a人无v码亚洲福利| 亚洲欧洲99久久| 欧美一区二区三区免费| 成人综合婷婷国产精品久久 | 91久久精品日日躁夜夜躁欧美| 一级特黄大欧美久久久| 日韩欧美综合一区| 91在线一区二区三区| 青青草原综合久久大伊人精品| 国产欧美日韩一区二区三区在线观看| 一本高清dvd不卡在线观看| 久热成人在线视频| 一区二区三区在线视频免费| 久久蜜桃av一区二区天堂| 国产精品久久精品日日| 欧美一级夜夜爽| 91麻豆国产福利在线观看| 国产在线精品不卡| 午夜伦理一区二区| 国产精品美女久久久久高潮| 欧美一个色资源| 91福利国产精品| 国产成人啪午夜精品网站男同| 午夜精品久久久久久久蜜桃app| 中文在线一区二区| 欧美一区二区女人| 欧美乱熟臀69xxxxxx| 国产91精品精华液一区二区三区| 丝瓜av网站精品一区二区| 中文字幕一区免费在线观看| 日韩欧美亚洲国产另类| 91蝌蚪porny九色| 国产精品伊人色| 蜜桃久久久久久久| 有码一区二区三区| 国产精品久久久久久久久图文区| 日韩一级精品视频在线观看| 色婷婷激情综合| 成人高清在线视频| 国产一区啦啦啦在线观看| 亚洲第一搞黄网站| 一区二区三区在线影院| 国产精品久久久久国产精品日日| 69堂精品视频| 欧美日韩一区在线观看| 一本在线高清不卡dvd| av亚洲精华国产精华| 国产精品一区二区在线观看网站| 美女任你摸久久| 午夜久久电影网| 亚洲成人免费在线观看| 一区二区三区**美女毛片| 亚洲日本护士毛茸茸| 欧美国产精品一区二区| 欧美大片一区二区| 欧美二区三区91| 欧美欧美午夜aⅴ在线观看| 欧美色图免费看| 在线区一区二视频| 一本色道a无线码一区v| 成人精品国产福利| 韩国在线一区二区| 国产一区二区久久| 国产一区不卡在线| 中文在线一区二区| www久久久久| 久久婷婷综合激情| 欧美精品一区视频| 久久欧美中文字幕| 久久久久亚洲蜜桃| 欧美激情综合网| 国产精品美日韩| 国产精品热久久久久夜色精品三区 | 91麻豆视频网站| 91蜜桃在线免费视频| 色综合网站在线| 欧美性生交片4| 91精品国产色综合久久ai换脸| 7777女厕盗摄久久久| 日韩精品在线一区| 久久久亚洲精品一区二区三区| 国产亚洲精品福利| 国产精品久99| 一区二区三区四区中文字幕| 一区二区三区电影在线播| 香蕉影视欧美成人| 免费看日韩精品| 激情综合色丁香一区二区| 激情都市一区二区| 岛国av在线一区| 欧美伊人久久大香线蕉综合69| 7777精品伊人久久久大香线蕉经典版下载 | 在线精品观看国产| 欧美日韩国产小视频| 日韩你懂的在线观看| 国产欧美日韩亚州综合| 亚洲卡通动漫在线| 免费在线视频一区| 高清国产一区二区| 欧美影院午夜播放| 精品久久久久久久人人人人传媒 | 欧美日韩精品电影| 欧美日韩免费一区二区三区视频| 欧美久久免费观看| 日韩亚洲欧美一区二区三区| 精品国产网站在线观看| 国产欧美一区二区三区鸳鸯浴| 国产精品久久三区| 亚洲欧洲日韩综合一区二区| 午夜影院久久久| 久久99热国产|