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

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

?? cfg.cpp

?? 飛鴿傳書軟件的源代碼 c++編寫的 能夠正常運行
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
static char *cfg_id = 
	"@(#)Copyright (C) H.Shirouzu 1996-2004   cfg.cpp	Ver2.05";
/* ========================================================================
	Project  Name			: IP Messenger for Win32
	Module Name				: Configuration
	Create					: 1996-09-27(Sat)
	Update					: 2004-01-01(Thu)
	Copyright				: H.Shirouzu
	Reference				: 
	======================================================================== */

#include <stdio.h>
#include "tlib.h"
#include "resource.h"
#include "ipmsg.h"
#include "msgstr.h"
#include "blowfish.h"

#define IPMSG_DEFAULT_LISTGETMSEC	3000
#define IPMSG_DEFAULT_RETRYMSEC		1500
#define IPMSG_DEFAULT_RETRYMAX		3
#define IPMSG_DEFAULT_RECVMAX_NT	100
#define IPMSG_DEFAULT_RECVMAX_95	30
#define IPMSG_DEFAULT_ABSENCEMAX	8
#define IPMSG_DEFAULT_FINDMAX		12
#define IPMSG_DEFAULT_DELAY			500
#define IPMSG_DEFAULT_UPDATETIME	10
#define IPMSG_DEFAULT_KEEPHOSTTIME	(3600 * 24 * 180)	// 180擔娫
#define IPMSG_DEFAULT_QUOTE			">"
#define IPMSG_DEFAULT_ENCRYPTNUM	20

#define IPMSG_DEFAULT_VIEWMAX		(8 * 1024 * 1024)	// 8MB
#define IPMSG_DEFAULT_TRANSMAX		(64 * 1024)			// 64KB
#define IPMSG_DEFAULT_TCPBUFMAX		(256 * 1024)		// 256KB

#define IPMSG_DEFAULT_NICKNAMEWIDTH	97
#define IPMSG_DEFAULT_ABSENCEWIDTH	16
#define IPMSG_DEFAULT_GROUPWIDTH	88
#define IPMSG_DEFAULT_HOSTWIDTH		58
#define IPMSG_DEFAULT_IPADDRWIDTH	110
#define IPMSG_DEFAULT_USERWIDTH		90
#define IPMSG_DEFAULT_PRIORITYWIDTH	21

#define NOBEEP_STR			"NoBeep"
#define LISTGET_STR			"ListGet"
#define LISTGETMSEC_STR		"ListGetMSec"
#define RETRYMSEC_STR		"RetryMSec2"
#define RETRYMAX_STR		"RetryMax"
#define RECVMAXNT_STR		"RecvMaxNT"
#define RECVMAX95_STR		"RecvMax95"
#define NOERASE_STR			"NoErase"
#define DEBUG_STR			"Debug"
#define BROADCAST_STR		"BroadCast"
#define CLICKABLEURL_STR	"ClickableUrl"
#define NOPOPUPCHECK_STR	"NoPopup"
#define OPENCHECK_STR		"OpenCheck"
#define ABSENCESAVE_STR		"AbsenceSave"
#define ABSENCECHECK_STR	"AbsenceCheck"
#define ABSENCEMAX_STR		"AbsenceMax"
#define ABSENCESTR_STR		"AbsenceStr"
#define ABSENCEHEAD_STR		"AbsenceHead"
#define FINDMAX_STR			"FindMax2"
#define FINDALL_STR			"FindAll"
#define FINDSTR_STR			"FindStr"
#define PASSWORD_STR		"PasswordStr"
#define PASSWDLOGCHECK_STR	"PasswdLogCheck"
#define DELAYTIME_STR		"DelayTime"
#define QUOTECHECK_STR		"QuoteCheck"
#define SECRETCHECK_STR		"SecretCheck"
#define IPADDRCHECK_STR		"IPAddrCheck"
#define ONECLICKPOPUP_STR	"OneClickPopup"
#define ABNORMALBTN_STR		"AbnormalButton"
#define DIALUPCHECK_STR		"DialUpCheck"
#define NICKNAMECHECK_STR	"NickNameCheck"
#define NICKNAMESTR_STR		"NickNameStr"
#define GROUPNAMESTR_STR	"GroupNameStr"
#define ABSENCENONPOPUP_STR	"AbsenceNonPopup"
#define LANG_STR			"Lang"
#define SORT_STR			"Sort"
#define UPDATETIME_STR		"UpdateTime"
#define KEEPHOSTTIME_STR	"KeepHostTime"
#define MSGMINIMIZE_STR		"MsgMinimize"
#define DEFAULTURL_STR		"DefaultUrl"
#define SHELLEXEC_STR		"ShellExec"
#define EXTENDENTRY_STR		"ExtendEntry"
#define QUOTESTR_STR		"QuoteStr"
#define CONTROLIME_STR		"ControlIME"
#define HOTKEY_STR			"HotKey"
#define HOTKEYCHECK_STR		"HotKeyCheck"
#define HOTKEYMODIFY_STR	"HotKeyModify"
#define HOTKEYSEND_STR		"HotKeySend"
#define HOTKEYRECV_STR		"HotKeyRecv"
#define HOTKEYMISC_STR		"HotKeyMisc"
#define ALLOWSENDLIST_STR	"AllowSendList"
#define FILETRANSOPT_STR	"FileTransOpt"
#define RESOLVEOPT_STR		"ResolveOpt"
#define ENCRYPTNUM_STR		"EncryptNum"

#define VIEWMAX_STR			"ViewMax"
#define TRANSMAX_STR		"TransMax"
#define TCPBUFMAX_STR		"TcpbufMax"

#define LOGCHECK_STR		"LogCheck"
#define LOGFILE_STR			"LogFile"
#define SOUNDFILE_STR		"SoundFile"
#define ICON_STR			"Icon"
#define REVICON_STR			"RevIcon"
#define LASTOPEN_STR		"lastOpen"
#define LASTSAVE_STR		"lastSave"

#define WINSIZE_STR			"WindowSize"

#define SENDPRIORITY_STR	"SendPriority"
#define SENDNICKNAME_STR	"SendNickName"
#define SENDABSENCE_STR		"SendAbsence"
#define SENDUSERNAME_STR	"SendUserName"
#define SENDGROUPNAME_STR	"SendGroupName"
#define SENDHOSTNAME_STR	"SendHostName"
#define SENDIPADDR_STR		"SendIPAddr"
#define SENDORDER_STR		"SendOrder"

#define SENDXDIFF_STR		"SendXdiff"
#define SENDYDIFF_STR		"SendYdiff"
#define SENDMIDYDIFF_STR	"SendMidYdiff"
#define SENDSAVEPOS_STR		"SendSavePos"
#define SENDXPOS_STR		"SendXpos"
#define SENDYPOS_STR		"SendYpos"

#define RECVXDIFF_STR		"RecvXdiff"
#define RECVYDIFF_STR		"RecvYdiff"
#define RECVSAVEPOS_STR		"RecvSavePos"
#define RECVXPOS_STR		"RecvXpos"
#define RECVYPOS_STR		"RecvYpos"

#define FONT_STR			"Fonts"
#define SENDEDITFONT_STR	"SendEdit"
#define SENDLISTFONT_STR	"SendListView"
#define RECVHEADFONT_STR	"RecvHead"
#define RECVEDITFONT_STR	"RecvEdit"

#define HEIGHT_STR			"Height"
#define WIDTH_STR			"Width"
#define ESCAPEMENT_STR		"Escapement"
#define ORIENTATION_STR		"Orientation"
#define WEIGHT_STR			"Weight"
#define ITALIC_STR			"Italic"
#define UNDERLINE_STR		"UnderLine"
#define STRIKEOUT_STR		"StrikeOut"
#define CHARSET_STR			"CharSet"
#define OUTPRECISION_STR	"OutPrecision"
#define CLIPPRECISION_STR	"ClipPrecision"
#define QUALITY_STR			"Quality"
#define PITCHANDFAMILY_STR	"PitchAndFamily"
#define FACENAME_STR		"FaceName"

#define HOSTINFO_STR		"HostInfo"
#define USERNAME_STR		"UserName"
#define HOSTNAME_STR		"HostName"
#define IPADDR_STR			"IPAddr"
#define PORTNO_STR			"PortNo"
#define NICKNAME_STR		"NickName"
#define GROUPNAME_STR		"GroupName"
#define PRIORITY_STR		"Priority"
#define PRIORITYMAX_STR		"PriorityMax"
#define PRIORITYSOUND_STR	"PrioritySound"
#define PRIORITYREJECT_STR	"PriorityReject"
#define GLIDLINE_STR		"GlidLine"
#define COLUMNITEMS_STR		"ColumnItems"

#define CRYPT_STR			"Crypt"
#define PRIVBLOB_STR		"PrivBlob"
#define PRIVTYPE_STR		"PrivEncryptType"
#define PRIVSEED_STR		"PrivEncryptSeed"
#define PRIVSEEDLEN_STR		"PrivEncryptSeedLen"

char	*DefaultUrlProtocol[] = { "HTTP", "HTTPS", "FTP", "FILE", "TELNET", NULL };
char	*DefaultAbsence[IPMSG_DEFAULT_ABSENCEMAX] = { DEFABSENCE1_MSGSTR, DEFABSENCE2_MSGSTR, DEFABSENCE3_MSGSTR, DEFABSENCE4_MSGSTR, DEFABSENCE5_MSGSTR, DEFABSENCE6_MSGSTR, DEFABSENCE7_MSGSTR, DEFABSENCE8_MSGSTR };
char	*DefaultAbsenceHead[IPMSG_DEFAULT_ABSENCEMAX] = { DEFABSENCEHEAD1_MSGSTR, DEFABSENCEHEAD2_MSGSTR, DEFABSENCEHEAD3_MSGSTR, DEFABSENCEHEAD4_MSGSTR, DEFABSENCEHEAD5_MSGSTR, DEFABSENCEHEAD6_MSGSTR, DEFABSENCEHEAD7_MSGSTR, DEFABSENCEHEAD8_MSGSTR };

Cfg::Cfg(ULONG _nicAddr, int _portNo)
{
	nicAddr = _nicAddr;
	portNo = _portNo;
	AbsenceHead = NULL;
	AbsenceStr = NULL;
	FindStr = NULL;
	privBlob = NULL;
}

Cfg::~Cfg()
{
	delete [] privBlob;
	delete [] FindStr;
	delete [] AbsenceHead;
	delete [] AbsenceStr;
}

BOOL Cfg::ReadRegistry(void)
{
	char	buf[MAX_LISTBUF], val[MAX_LISTBUF];

	GetRegName(buf, nicAddr, portNo);
	TRegistry	reg(HS_TOOLS, buf);

	if (reg.GetInt(NOPOPUPCHECK_STR, &NoPopupCheck) != TRUE)
	{
		GetRegName(buf, 0, portNo);
		reg.ChangeApp(HS_TOOLS, buf);
		if (reg.GetInt(NOPOPUPCHECK_STR, &NoPopupCheck) != TRUE)
			reg.ChangeApp(HS_TOOLS, IPMSG_MSGSTR);
	}

	NoBeep = FALSE;
	ListGet = FALSE;
	HotKeyCheck = FALSE;
	HotKeyModify = MOD_ALT|MOD_CONTROL;
	HotKeySend = 'S';
	HotKeyRecv = 'R';
	HotKeyMisc = 'D';
	ListGetMSec = IPMSG_DEFAULT_LISTGETMSEC;
	RetryMSec = IPMSG_DEFAULT_RETRYMSEC;
	RetryMax = IPMSG_DEFAULT_RETRYMAX;
	RecvMax = IsWinNT() ? IPMSG_DEFAULT_RECVMAX_NT : IPMSG_DEFAULT_RECVMAX_95;
	NoErase = FALSE;
	Debug = FALSE;
	NoPopupCheck = FALSE;
	OpenCheck = TRUE;
	AbsenceSave = FALSE;
	AbsenceCheck = FALSE;
	AbsenceMax = IPMSG_DEFAULT_ABSENCEMAX;
	AbsenceChoice = 0;
	FindMax = IPMSG_DEFAULT_FINDMAX;
	FindAll = FALSE;
	DelayTime = IPMSG_DEFAULT_DELAY;
	QuoteCheck = TRUE;
	SecretCheck = FALSE;
	IPAddrCheck = FALSE;
	OneClickPopup = FALSE;
	AbnormalButton = FALSE;
	DialUpCheck = FALSE;
	NickNameCheck = IPMSG_NICKNAME;
	*NickNameStr = 0;
	*GroupNameStr = 0;
	AbsenceNonPopup = TRUE;
	Sort = IPMSG_NAMESORT;
	UpdateTime = IPMSG_DEFAULT_UPDATETIME;
	KeepHostTime = IPMSG_DEFAULT_KEEPHOSTTIME;
	MsgMinimize = FALSE;
	DefaultUrl = TRUE;
	ShellExec = FALSE;
	ExtendEntry = TRUE;
	ControlIME = FALSE;
	GlidLineCheck = FALSE;
	PriorityMax = DEFAULT_PRIORITYMAX;
	PriorityReject = 0;
	AllowSendList = TRUE;
	fileTransOpt = 0;
	ResolveOpt = 0;
	EncryptNum = IPMSG_DEFAULT_ENCRYPTNUM;
	ViewMax = IPMSG_DEFAULT_VIEWMAX;
	TransMax = IPMSG_DEFAULT_TRANSMAX;
	TcpbufMax = IPMSG_DEFAULT_TCPBUFMAX;
	privBlobLen = 0;
	hPrivKey = 0;
	hSmallPrivKey = 0;
	// CryptProtectData is available only Win2K/XP
	privEncryptType = IsWin2K() ? PRIV_BLOB_DPAPI : PRIV_BLOB_RAW;
	privEncryptSeed = NULL;
	privEncryptSeedLen = 0;

	strncpyz(QuoteStr, IPMSG_DEFAULT_QUOTE, sizeof(QuoteStr));

	SendWidth[SW_NICKNAME] = IPMSG_DEFAULT_NICKNAMEWIDTH;
	SendWidth[SW_ABSENCE] = IPMSG_DEFAULT_ABSENCEWIDTH;
	SendWidth[SW_GROUP] = IPMSG_DEFAULT_GROUPWIDTH;
	SendWidth[SW_HOST] = IPMSG_DEFAULT_HOSTWIDTH;
	SendWidth[SW_IPADDR] = IPMSG_DEFAULT_IPADDRWIDTH;
	SendWidth[SW_USER] = IPMSG_DEFAULT_USERWIDTH;
	SendWidth[SW_PRIORITY] = IPMSG_DEFAULT_PRIORITYWIDTH;

	SetItem(&ColumnItems, SW_NICKNAME, TRUE);
	SetItem(&ColumnItems, SW_GROUP, TRUE);
	SetItem(&ColumnItems, SW_HOST, TRUE);

	for (int cnt=0; cnt < MAX_SENDWIDTH; cnt++)
		SendOrder[cnt] = cnt;

	SendXdiff		= 0;
	SendYdiff		= 0;
	SendMidYdiff	= 0;
	SendSavePos		= 0;
	SendXpos		= 0;
	SendYpos		= 0;

	RecvXdiff		= 0;
	RecvYdiff		= 0;
	RecvSavePos		= 0;
	RecvXpos		= 0;
	RecvYpos		= 0;

	LogCheck = FALSE;
	PasswdLogCheck = FALSE;
	strncpyz(LogFile, "ipmsg.log", sizeof(LogFile));
	*SoundFile = 0;
	*IconFile = 0;
	*RevIconFile = 0;
	*lastSaveDir = *lastOpenDir = 0;
	memset(&SendEditFont, 0, sizeof(SendEditFont));
	memset(&SendListFont, 0, sizeof(SendListFont));
	memset(&RecvHeadFont, 0, sizeof(RecvHeadFont));
	memset(&RecvEditFont, 0, sizeof(RecvEditFont));

	reg.GetInt(NOBEEP_STR, &NoBeep);
	reg.GetInt(LISTGET_STR, &ListGet);
	reg.GetInt(LISTGETMSEC_STR, (int *)&ListGetMSec);
	reg.GetInt(RETRYMSEC_STR, (int *)&RetryMSec);
	reg.GetInt(RETRYMAX_STR, (int *)&RetryMax);
	reg.GetInt(IsWinNT() ? RECVMAXNT_STR : RECVMAX95_STR, (int *)&RecvMax);
	reg.GetInt(NOERASE_STR, &NoErase);
	reg.GetInt(DEBUG_STR, &Debug);
	reg.GetInt(NOPOPUPCHECK_STR, &NoPopupCheck);
	reg.GetInt(OPENCHECK_STR, &OpenCheck);
	reg.GetInt(ABSENCESAVE_STR, &AbsenceSave);
	if (AbsenceSave)
		reg.GetInt(ABSENCECHECK_STR, &AbsenceCheck);
	reg.GetInt(ABSENCEMAX_STR, &AbsenceMax);
	reg.GetInt(ALLOWSENDLIST_STR, &AllowSendList);
	reg.GetInt(FILETRANSOPT_STR, &fileTransOpt);
	reg.GetInt(RESOLVEOPT_STR, &ResolveOpt);
	reg.GetInt(ENCRYPTNUM_STR, &EncryptNum);

// for File Transfer
	reg.GetInt(VIEWMAX_STR, &ViewMax);
	if (ViewMax < 1024 * 1024)	// 1MB 埲壓偺 MapFileOfView 偼擣傔側偄
		ViewMax = IPMSG_DEFAULT_VIEWMAX;
	reg.GetInt(TRANSMAX_STR, &TransMax);
	if (TransMax < 8 * 1024)	// 8KB 埲壓偺 file transfer buf 偼擣傔側偄
		TransMax = IPMSG_DEFAULT_TRANSMAX;
	reg.GetInt(TCPBUFMAX_STR, &TcpbufMax);
	if (TcpbufMax < 8 * 1024)	// 8KB 埲壓偺 sockbuf 偼擣傔側偄
		TcpbufMax = IPMSG_DEFAULT_TCPBUFMAX;

// for Absence Message
	typedef char MaxBuf[MAX_PATH];
	AbsenceStr = new MaxBuf[AbsenceMax];
	memset(AbsenceStr, 0, MAX_PATH * AbsenceMax);
	reg.GetStr(ABSENCESTR_STR, AbsenceStr[0], sizeof(AbsenceStr[0]));

	typedef char MaxHead[MAX_NAMEBUF];
	AbsenceHead = new MaxHead[AbsenceMax];
	memset(AbsenceHead, 0, MAX_NAMEBUF * AbsenceMax);

	if (reg.CreateKey(ABSENCESTR_STR))
	{
		for (int cnt=0; cnt < AbsenceMax; cnt++)
		{
			char	key[MAX_PATH];

			wsprintf(key, "%s%d", ABSENCESTR_STR, cnt);
			if (reg.GetStr(key, AbsenceStr[cnt], sizeof(AbsenceStr[cnt])) != TRUE)
				strncpyz(AbsenceStr[cnt], DefaultAbsence[cnt < IPMSG_DEFAULT_ABSENCEMAX ? cnt : 0], MAX_PATH);

			wsprintf(key, "%s%d", ABSENCEHEAD_STR, cnt);
			if (reg.GetStr(key, AbsenceHead[cnt], sizeof(AbsenceHead[cnt])) != TRUE)
				strcpy(AbsenceHead[cnt], DefaultAbsenceHead[cnt < IPMSG_DEFAULT_ABSENCEMAX ? cnt : 0]);
		}
		reg.CloseKey();
	}

// Find User
	typedef char MaxFind[MAX_NAMEBUF];
	if (reg.CreateKey(FINDSTR_STR))
	{
		reg.GetInt(FINDMAX_STR, &FindMax);
		reg.GetInt(FINDALL_STR, &FindAll);
		FindStr = new MaxFind[FindMax];
		for (int cnt=0; cnt < FindMax; cnt++)
		{
			char	key[MAX_PATH];
			wsprintf(key, "%d", cnt);
			if (reg.GetStr(key, FindStr[cnt], sizeof(FindStr[cnt])) != TRUE)
				FindStr[cnt][0] = '\0';
		}
		reg.CloseKey();
	}
	else {
		FindStr = new MaxFind[FindMax];
		memset(FindStr, 0, MAX_NAMEBUF * FindMax);
	}

	*PasswordStr = 0;
	reg.GetStr(PASSWORD_STR, PasswordStr, sizeof(PasswordStr));
	reg.GetInt(PASSWDLOGCHECK_STR, &PasswdLogCheck);
	reg.GetInt(DELAYTIME_STR, &DelayTime);
	reg.GetInt(QUOTECHECK_STR, &QuoteCheck);
	reg.GetInt(SECRETCHECK_STR, &SecretCheck);
	reg.GetInt(IPADDRCHECK_STR, &IPAddrCheck);
	reg.GetInt(ONECLICKPOPUP_STR, &OneClickPopup);
	reg.GetInt(ABNORMALBTN_STR, &AbnormalButton);
	reg.GetInt(DIALUPCHECK_STR, &DialUpCheck);
	reg.GetInt(NICKNAMECHECK_STR, &NickNameCheck);
	NickNameCheck = NickNameCheck == IPMSG_NICKNAME;
	reg.GetInt(ABSENCENONPOPUP_STR, &AbsenceNonPopup);
	reg.GetStr(NICKNAMESTR_STR, NickNameStr, sizeof(NickNameStr));
	reg.GetStr(GROUPNAMESTR_STR, GroupNameStr, sizeof(GroupNameStr));
	reg.GetStr(LANG_STR, Lang, sizeof(Lang));
	reg.GetLong(SORT_STR, (long *)&Sort);
//	reg.GetInt(UPDATETIME_STR, &UpdateTime);
	reg.GetInt(KEEPHOSTTIME_STR, &KeepHostTime);
	reg.GetInt(MSGMINIMIZE_STR, &MsgMinimize);
	reg.GetInt(DEFAULTURL_STR, &DefaultUrl);
	reg.GetInt(SHELLEXEC_STR, &ShellExec);
	reg.GetInt(EXTENDENTRY_STR, &ExtendEntry);
	reg.GetInt(CONTROLIME_STR, &ControlIME);
	reg.GetInt(GLIDLINE_STR, &GlidLineCheck);
	reg.GetInt(COLUMNITEMS_STR, (int *)&ColumnItems);
	reg.GetStr(QUOTESTR_STR, QuoteStr, sizeof(QuoteStr));
	if (reg.CreateKey(HOTKEY_STR))
	{
		reg.GetInt(HOTKEYCHECK_STR, &HotKeyCheck);
		reg.GetInt(HOTKEYMODIFY_STR, &HotKeyModify);
		reg.GetInt(HOTKEYSEND_STR, &HotKeySend);
		reg.GetInt(HOTKEYRECV_STR, &HotKeyRecv);
		reg.GetInt(HOTKEYMISC_STR, &HotKeyMisc);
		reg.CloseKey();
	}
	reg.GetInt(LOGCHECK_STR, &LogCheck);
	reg.GetStr(LOGFILE_STR, LogFile, sizeof(LogFile));
	if (LogCheck)
		LogMng::StrictLogFile(LogFile);

	reg.GetStr(SOUNDFILE_STR, SoundFile, sizeof(SoundFile));
	reg.GetStr(ICON_STR, IconFile, sizeof(IconFile));
	reg.GetStr(REVICON_STR, RevIconFile, sizeof(RevIconFile));
	reg.GetStr(LASTOPEN_STR, lastOpenDir, sizeof(lastOpenDir));
	reg.GetStr(LASTSAVE_STR, lastSaveDir, sizeof(lastSaveDir));

// Send/Recv Window Location
	if (reg.CreateKey(WINSIZE_STR))
	{
		reg.GetInt(SENDNICKNAME_STR, &SendWidth[SW_NICKNAME]);
		reg.GetInt(SENDUSERNAME_STR, &SendWidth[SW_USER]);
		reg.GetInt(SENDABSENCE_STR, &SendWidth[SW_ABSENCE]);
		reg.GetInt(SENDPRIORITY_STR, &SendWidth[SW_PRIORITY]);
		reg.GetInt(SENDGROUPNAME_STR, &SendWidth[SW_GROUP]);
		reg.GetInt(SENDHOSTNAME_STR, &SendWidth[SW_HOST]);
		reg.GetInt(SENDIPADDR_STR, &SendWidth[SW_IPADDR]);
		if (reg.CreateKey(SENDORDER_STR))
		{
			for (int cnt=0; cnt < MAX_SENDWIDTH; cnt++)
			{
				wsprintf(buf, "%d", cnt);
				reg.GetInt(buf, &SendOrder[cnt]);
			}
			reg.CloseKey();
		}
		for (cnt=0; cnt < MAX_SENDWIDTH; cnt++)
		{
			if (SendOrder[cnt] >= MAX_SENDWIDTH || SendOrder[cnt] < 0)
				break;
			for (int cnt2=cnt+1; cnt2 < MAX_SENDWIDTH; cnt2++)
				if (SendOrder[cnt] == SendOrder[cnt2])
					break;
			if (cnt2 != MAX_SENDWIDTH)
				break;
		}
		if (cnt != MAX_SENDWIDTH)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97久久超碰国产精品| 欧美大片在线观看一区| 欧美一区中文字幕| 中文字幕一区二区三区精华液| 日日夜夜精品视频免费| 国产高清精品在线| 欧美一级淫片007| 亚洲美女视频在线观看| 国产精品系列在线播放| 在线观看91精品国产麻豆| 中文字幕一区二区三区乱码在线| 久久爱另类一区二区小说| 色88888久久久久久影院野外| 精品国产乱码久久久久久图片| 亚洲一区二区三区中文字幕 | 亚洲成a人片在线不卡一二三区| 国产一区二区免费看| 欧美日韩精品一区二区三区蜜桃| 国产精品电影一区二区| 国产一区中文字幕| 91精品国产综合久久久久久久久久 | 国产不卡在线视频| 欧美一卡二卡在线| 婷婷丁香激情综合| 欧美在线高清视频| 亚洲精品欧美激情| 色婷婷av久久久久久久| 亚洲欧洲国产日本综合| 成人免费三级在线| 国产精品三级久久久久三级| 国产精品乡下勾搭老头1| 久久精品视频免费| 国产精品1区2区| 国产日韩在线不卡| 处破女av一区二区| 国产精品久久久久久久久久免费看| 国产一区二区三区免费播放| 久久一二三国产| 国产精品白丝jk黑袜喷水| 久久天堂av综合合色蜜桃网| 国产精品1024| 国产精品国产三级国产三级人妇| 从欧美一区二区三区| 最新国产の精品合集bt伙计| 91在线视频免费91| 亚洲国产精品一区二区久久恐怖片| 91国模大尺度私拍在线视频| 亚洲一区在线观看免费观看电影高清| 色综合色综合色综合色综合色综合| 亚洲色图欧美激情| 欧洲亚洲国产日韩| 日韩高清在线一区| 精品久久99ma| 岛国精品在线观看| 亚洲一区二区三区四区中文字幕| 欧美三电影在线| 免费欧美高清视频| 国产欧美久久久精品影院| 99re8在线精品视频免费播放| 洋洋成人永久网站入口| 欧美成人一区二区三区片免费| 黑人巨大精品欧美黑白配亚洲| 国产视频亚洲色图| 色一区在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 国产欧美日韩另类一区| 91黄色免费看| 精品一区二区三区欧美| 中文字幕色av一区二区三区| 欧美日本韩国一区二区三区视频 | 午夜精品福利一区二区蜜股av | 欧美一区二区三区男人的天堂| 国产一区久久久| 亚洲另类春色校园小说| 精品国产a毛片| 日本精品视频一区二区三区| 精品一区二区三区免费| 亚洲视频每日更新| 欧美变态凌虐bdsm| 色婷婷av一区二区三区软件| 精品一区二区三区免费| 亚洲国产欧美在线| 国产婷婷精品av在线| 欧美日韩激情一区二区三区| 国产福利精品导航| 免费观看久久久4p| 亚洲午夜私人影院| 国产精品你懂的在线| 精品国产伦一区二区三区观看体验| 日本高清不卡一区| 成人三级伦理片| 黑人巨大精品欧美黑白配亚洲| 亚洲一区二区三区视频在线| 国产精品每日更新| 精品日产卡一卡二卡麻豆| 欧美在线观看一区二区| 成人av午夜电影| 国内精品嫩模私拍在线| 五月天丁香久久| 亚洲综合清纯丝袜自拍| 中文字幕在线观看不卡| 国产亚洲一区二区三区在线观看| 欧美一区二区在线播放| 欧美三级韩国三级日本三斤 | 成人av网站在线| 激情欧美一区二区三区在线观看| 日韩国产精品久久久久久亚洲| 亚洲色图一区二区| 国产精品久久久久久一区二区三区| 久久久一区二区三区捆绑**| 日韩女同互慰一区二区| 欧美一级片免费看| 欧美一区二区三区啪啪| 69堂亚洲精品首页| 欧美日韩的一区二区| 91麻豆精品在线观看| 一本久久综合亚洲鲁鲁五月天 | 亚洲欧美色一区| 亚洲人123区| 亚洲免费伊人电影| 亚洲黄色免费电影| 亚洲第一电影网| 日日欢夜夜爽一区| 日本在线不卡一区| 免费高清视频精品| 国产一区视频导航| 国产suv精品一区二区883| 国产成人aaa| 91一区二区在线观看| 久久99久久精品| 美女www一区二区| 日韩av一区二| 日本成人在线网站| 激情av综合网| 盗摄精品av一区二区三区| av不卡免费电影| 欧美午夜精品免费| 3d成人动漫网站| 26uuu成人网一区二区三区| 久久夜色精品一区| 亚洲天堂精品在线观看| 亚洲a一区二区| 久久99国产精品免费网站| 国产成人一级电影| 91久久精品日日躁夜夜躁欧美| 欧美三级乱人伦电影| 欧美精品一区二区久久久| 国产精品久久99| 性做久久久久久| 国产麻豆精品视频| 欧美午夜影院一区| 26uuu精品一区二区三区四区在线| 中文字幕一区二区三区精华液 | 中文字幕亚洲视频| 日韩成人av影视| 波多野结衣亚洲一区| 欧美日韩国产片| 亚洲国产精品成人综合色在线婷婷 | 亚洲高清在线精品| 中文字幕一区视频| 日本亚洲一区二区| 国产呦精品一区二区三区网站| 99久久免费视频.com| 色www精品视频在线观看| 91国偷自产一区二区开放时间 | 国产成人一区在线| 九九热在线视频观看这里只有精品| 国产成人在线色| 日本高清免费不卡视频| 日韩一级黄色片| 欧美色倩网站大全免费| 国产三级精品三级在线专区| 亚洲精品美国一| 韩国av一区二区三区四区| 99精品国产热久久91蜜凸| 日韩欧美国产小视频| 国产精品久久久久9999吃药| 五月婷婷久久丁香| 国产精品一卡二卡| 在线视频综合导航| 久久精品夜色噜噜亚洲a∨| 日本一区二区三区在线不卡| 三级久久三级久久| 国产成人午夜精品影院观看视频| 欧美色视频一区| 国产清纯白嫩初高生在线观看91| 亚洲国产成人av好男人在线观看| 久久超碰97中文字幕| 欧美日韩亚洲综合| 久久精品视频在线看| 日韩电影在线免费观看| 成人免费视频一区二区| 欧美va亚洲va在线观看蝴蝶网| 亚洲欧美韩国综合色| 婷婷开心久久网| 成人福利在线看| 精品国产人成亚洲区| 性久久久久久久久| 国产成人av电影在线观看| 91麻豆精品国产91久久久使用方法 |