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

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

?? install.cpp

?? Original ipmsg protocol specification is written in Japanese. This document was translated by Mr.Ka
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
static char *install_id = 
	"@(#)Copyright (C) H.Shirouzu 1998-2002   install.cpp	Ver2.00";
/* ========================================================================
	Project  Name			: Installer for IPMSG32
	Module Name				: Installer Application Class
	Create					: 1998-06-14(Sun)
	Update					: 2002-11-03(Sun)
	Copyright				: H.Shirouzu
	Reference				: 
	======================================================================== */

#include "../tlib.h"
#include "instrc.h"
#include "install.h"

char	*SetupFiles [] = { INSTALL_EXENAME, README_NAME, OPENLAB_NAME, NULL };

/*
	WinMain
*/
int WINAPI WinMain(HINSTANCE hI, HINSTANCE, LPSTR cmdLine, int nCmdShow)
{
	TInstApp	app(hI, cmdLine, nCmdShow);

	return	app.Run();
}

/*
	僀儞僗僩乕儖傾僾儕働乕僔儑儞僋儔僗
*/
TInstApp::TInstApp(HINSTANCE _hI, LPSTR _cmdLine, int _nCmdShow) : TApp(_hI, _cmdLine, _nCmdShow)
{
}

TInstApp::~TInstApp()
{
}

void TInstApp::InitWindow(void)
{
	InitCommonControls();
	TDlg *maindlg = new TInstDlg(cmdLine);
	mainWnd = maindlg;
	maindlg->Create();
}


/*
	儊僀儞僟僀傾儘僌僋儔僗
*/
TInstDlg::TInstDlg(char *cmdLine) : TDlg(INSTALL_DIALOG), staticText(this)
{
	cfg.mode = SETUP_MODE;
	cfg.portNo = IPMSG_DEFAULT_PORT;
	cfg.startupLink	= TRUE;
	cfg.programLink	= TRUE;
	cfg.desktopLink	= TRUE;
	cfg.delPubkey	= TRUE;

	if (cmdLine)
	{
		for (char *tok = strtok(cmdLine, " \t\n"); tok; tok = strtok(NULL, " \t\n"))
		{
			if (strcmp(tok, UNINSTALL_CMDLINE) == 0)
				cfg.mode = UNINSTALL_MODE;
			else if (*tok >= '0' && *tok <= '9' && atoi(tok) > 0)
				cfg.portNo = atoi(tok);
		}
	}
}

TInstDlg::~TInstDlg()
{
}

/*
	儊僀儞僟僀傾儘僌梡 WM_INITDIALOG 張棟儖乕僠儞
*/
BOOL TInstDlg::EvCreate(LPARAM lParam)
{
	if (IsNewShell() != TRUE)
	{
		MessageBox(NOTNEWSHELL_MSGSTR);
		::PostQuitMessage(0);
		return	TRUE;
	}

	if (cfg.portNo != IPMSG_DEFAULT_PORT)
	{
		char	buf[100];
		::GetWindowText(hWnd, buf, sizeof(buf));
		::wsprintf(buf + strlen(buf), " (PortNo = %d)", cfg.portNo);
		SetWindowText(buf);
	}

	GetWindowRect(&rect);
	int		cx = ::GetSystemMetrics(SM_CXFULLSCREEN), cy = ::GetSystemMetrics(SM_CYFULLSCREEN);
	int		xsize = rect.right - rect.left, ysize = rect.bottom - rect.top;

	::SetClassLong(hWnd, GCL_HICON, (LONG)::LoadIcon(TApp::hI, (LPCSTR)SETUP_ICON));
	MoveWindow((cx - xsize)/2, (cy - ysize)/2, xsize, ysize, TRUE);
	Show();

// 僾儘僷僥傿僔乕僩偺惗惉
	staticText.CreateByWnd(GetDlgItem(INSTALL_STATIC));
	propertySheet = new TInstSheet(&staticText, &cfg);

// 尰嵼僨傿儗僋僩儕愝掕
	char	buf[MAX_PATH], setupDir[MAX_PATH], resetupDir[MAX_PATH];

	::GetModuleFileName(NULL, resetupDir, sizeof(resetupDir));
	GetParentDir(resetupDir, resetupDir);
	SetDlgItemText(RESETUP_EDIT, resetupDir);

// Program Files偺僷僗庢傝弌偟
	TRegistry	reg(HKEY_LOCAL_MACHINE);
	if (reg.OpenKey(REGSTR_PATH_SETUP) == TRUE)
	{
		if (reg.GetStr(REGSTR_PROGRAMFILES, buf, sizeof(buf)) == TRUE)
			MakePath(setupDir, buf, IPMSG_STR);
		reg.CloseKey();
	}

// 婛偵僙僢僩傾僢僾偝傟偰偄傞応崌偼丄僙僢僩傾僢僾僨傿儗僋僩儕傪撉傒弌偡
	if (reg.OpenKey(REGSTR_PATH_APPPATHS) == TRUE)
	{
		if (reg.OpenKey(IPMSG_EXENAME) == TRUE)
		{
			reg.GetStr(REGSTR_PATH, setupDir, sizeof(setupDir));
			reg.CloseKey();
		}
		reg.CloseKey();
	}
	SetDlgItemText(FILE_EDIT, setupDir);

	if (cfg.mode != UNINSTALL_MODE && (strcmp(setupDir, resetupDir) == 0 || GetDriveTypeEx(resetupDir) == DRIVE_REMOTE))
		cfg.mode = RESETUP_MODE;
	::SendMessage(GetDlgItem(cfg.mode == SETUP_MODE ? SETUP_RADIO : cfg.mode == RESETUP_MODE ? RESETUP_RADIO : UNINSTALL_RADIO), BM_SETCHECK, 1, 0);
	ChangeMode();

	return	TRUE;
}

/*
	儊僀儞僟僀傾儘僌梡 WM_COMMAND 張棟儖乕僠儞
*/
BOOL TInstDlg::EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl)
{
	switch (wID)
	{
	case IDOK:
		propertySheet->GetData();
		if (cfg.mode == UNINSTALL_MODE)
			UnInstall();
		else
			Install();
		return	TRUE;

	case IDCANCEL:
		::PostQuitMessage(0);
		return	TRUE;

	case FILE_BUTTON:
		BrowseDirDlg(this, FILE_EDIT, "Select Install Directory");
		return	TRUE;

	case SETUP_RADIO:
	case RESETUP_RADIO:
	case UNINSTALL_RADIO:
		if (wNotifyCode == BN_CLICKED)
			ChangeMode();
		return	TRUE;
	}
	return	FALSE;
}

void TInstDlg::ChangeMode(void)
{
	cfg.mode = SendDlgItemMessage(SETUP_RADIO, BM_GETCHECK, 0, 0) ? SETUP_MODE : SendDlgItemMessage(RESETUP_RADIO, BM_GETCHECK, 0, 0) ? RESETUP_MODE : UNINSTALL_MODE;
	::EnableWindow(GetDlgItem(FILE_EDIT), cfg.mode == SETUP_MODE);
	::EnableWindow(GetDlgItem(RESETUP_EDIT), cfg.mode == RESETUP_MODE);
	propertySheet->Paste();
}

BOOL TInstDlg::Install(void)
{
	char	buf[MAX_PATH], setupDir[MAX_PATH], setupPath[MAX_PATH];

// 尰嵼丄婲摦拞偺 ipmsg 傪廔椆
	if (TerminateIPMsg() != TRUE)
		return	FALSE;

// 僀儞僗僩乕儖僷僗愝掕
	GetDlgItemText(cfg.mode == SETUP_MODE ? FILE_EDIT : RESETUP_EDIT, setupDir, sizeof(setupDir));
	CreateDirectory(setupDir, NULL);
	DWORD	attr = GetFileAttributes(setupDir);
	if (attr == 0xffffffff || (attr & FILE_ATTRIBUTE_DIRECTORY) == 0)
		return	MessageBox(NOTCREATEDIR_MSGSTR), FALSE;
	MakePath(setupPath, setupDir, IPMSG_EXENAME);

	if (MessageBox(START_MSGSTR, INSTALL_STR, MB_OKCANCEL|MB_ICONINFORMATION) != IDOK)
		return	FALSE;

// 僼傽僀儖僐僺乕
	if (cfg.mode == SETUP_MODE)
	{
		char			installPath[MAX_PATH], orgDir[MAX_PATH];
		WIN32_FIND_DATA	data;
		HANDLE			fh;
		BOOL			copy = TRUE;

		GetDlgItemText(RESETUP_EDIT, orgDir, sizeof(orgDir));
		MakePath(buf, orgDir, IPMSG_EXENAME);
		if ((fh = ::FindFirstFile(buf, &data)) != INVALID_HANDLE_VALUE)
		{
			if (data.nFileSizeLow < MAX_WRAPPER_IPMSGSIZE)
				MakePath(buf, orgDir, RESOLVE_WRAPPER_IPMSG);
			::FindClose(fh);
		}
		if ((fh = ::FindFirstFile(setupPath, &data)) != INVALID_HANDLE_VALUE)
		{
			if (data.nFileSizeLow < MAX_WRAPPER_IPMSGSIZE)
				copy = FALSE;
			::FindClose(fh);
		}
		if (copy && ::CopyFile(buf, setupPath, FALSE) == FALSE)
			return	MessageBox(setupPath, NOTCREATEFILE_MSGSTR), FALSE;

		for (int cnt=0; SetupFiles[cnt] != NULL; cnt++)
		{
			MakePath(buf, orgDir, SetupFiles[cnt]);
			MakePath(installPath, setupDir, SetupFiles[cnt]);
			if (::CopyFile(buf, installPath, FALSE) == FALSE)
				return	MessageBox(installPath, NOTCREATEFILE_MSGSTR), FALSE;
		}
	}

// 僗僞乕僩傾僢僾仌僨僗僋僩僢僾偵搊榐
	TRegistry	reg(HKEY_CURRENT_USER);
	if (reg.OpenKey(REGSTR_SHELLFOLDERS) == TRUE)
	{
		char	*regStr[]	= { REGSTR_STARTUP, REGSTR_PROGRAMS, REGSTR_DESKTOP, NULL };
		BOOL	execFlg[]	= { cfg.startupLink, cfg.programLink, cfg.desktopLink };

		for (int cnt=0; regStr[cnt] != NULL; cnt++)
		{
			if (reg.GetStr(regStr[cnt], buf, sizeof(buf)) == TRUE)
			{
				if (cnt != 0 || RemoveSameLink(buf, buf) != TRUE)
					::wsprintf(buf + strlen(buf), "\\%s", IPMSG_SHORTCUT_NAME);
				if (execFlg[cnt])
					SymLink(setupPath, buf);
				else
					DeleteLink(buf);
			}
		}
		reg.CloseKey();
	}

// 儗僕僗僩儕偵傾僾儕働乕僔儑儞忣曬傪搊榐
	reg.ChangeTopKey(HKEY_LOCAL_MACHINE);
	if (reg.OpenKey(REGSTR_PATH_APPPATHS) == TRUE)
	{
		if (reg.CreateKey(IPMSG_EXENAME) == TRUE)
		{
			reg.SetStr(NULL, setupPath);
			reg.SetStr(REGSTR_PATH, setupDir);
			reg.CloseKey();
		}
		reg.CloseKey();
	}

// 儗僕僗僩儕偵傾儞僀儞僗僩乕儖忣曬傪搊榐
	if (reg.OpenKey(REGSTR_PATH_UNINSTALL) == TRUE)
	{
		if (reg.CreateKey(IPMSG_NAME) == TRUE)
		{
			MakePath(buf, setupDir, INSTALL_EXENAME);
			strcat(buf, " /r");
			reg.SetStr(REGSTR_VAL_UNINSTALLER_DISPLAYNAME, IPMSG_FULLNAME);
			reg.SetStr(REGSTR_VAL_UNINSTALLER_COMMANDLINE, buf);
			reg.CloseKey();
		}
		reg.CloseKey();
	}

// 僐僺乕偟偨傾僾儕働乕僔儑儞傪婲摦
	if (MessageBox(SETUPCOMPLETE_MSGSTR, INSTALL_STR, MB_OKCANCEL|MB_ICONINFORMATION) == IDOK)
	{
		::SetCurrentDirectory(setupDir);
		::WinExec(setupPath, SW_SHOW);
	}
	if (cfg.mode == SETUP_MODE)
		::ShellExecute(NULL, NULL, setupDir, 0, 0, SW_SHOW);

	::PostQuitMessage(0);
	return	TRUE;
}

BOOL TInstDlg::UnInstall(void)
{
// 尰嵼丄婲摦拞偺 ipmsg 傪廔椆
	if (TerminateIPMsg() != TRUE)
		return	FALSE;

	if (MessageBox(START_MSGSTR, UNINSTALL_STR, MB_OKCANCEL|MB_ICONINFORMATION) != IDOK)
		return	FALSE;

// 僗僞乕僩傾僢僾仌僨僗僋僩僢僾偐傜嶍彍
	TRegistry	reg(HKEY_CURRENT_USER);
	if (reg.OpenKey(REGSTR_SHELLFOLDERS) == TRUE)
	{
		char	buf[MAX_PATH];
		char	*regStr[]	= { REGSTR_STARTUP, REGSTR_PROGRAMS, REGSTR_DESKTOP, NULL };

		for (int cnt=0; regStr[cnt] != NULL; cnt++)
		{
			if (reg.GetStr(regStr[cnt], buf, sizeof(buf)) == TRUE)
			{
				if (cnt == 0)
					RemoveSameLink(buf);
				::wsprintf(buf + strlen(buf), "\\%s", IPMSG_SHORTCUT_NAME);
				DeleteLink(buf);
			}
		}
		reg.CloseKey();
	}

// 儗僕僗僩儕偐傜儐乕僓乕愝掕忣曬傪嶍彍
	if (reg.ChangeApp(HSTOOLS_STR) == TRUE)
		reg.DeleteChildTree(REGSTR_IPMSG);

// 儗僕僗僩儕偐傜傾僾儕働乕僔儑儞忣曬傪嶍彍
	char	setupDir[MAX_PATH];		// 僙僢僩傾僢僾僨傿儗僋僩儕忣曬傪曐懚
	GetDlgItemText(RESETUP_EDIT, setupDir, sizeof(setupDir));

	reg.ChangeTopKey(HKEY_LOCAL_MACHINE);
	if (reg.OpenKey(REGSTR_PATH_APPPATHS) == TRUE)
	{
		if (reg.OpenKey(IPMSG_EXENAME) == TRUE)
		{
			reg.GetStr(REGSTR_PATH, setupDir, sizeof(setupDir));
			reg.CloseKey();
		}
		reg.DeleteKey(IPMSG_EXENAME);
		reg.CloseKey();
	}

// 儗僕僗僩儕偐傜傾儞僀儞僗僩乕儖忣曬傪嶍彍
	if (reg.OpenKey(REGSTR_PATH_UNINSTALL) == TRUE)
	{
		reg.DeleteKey(IPMSG_NAME);
		reg.CloseKey();
	}

// 廔椆儊僢僙乕僕
	MessageBox(UNINSTCOMPLETE_MSGSTR);

// 僀儞僗僩乕儖僨傿儗僋僩儕傪奐偔
	if (GetDriveTypeEx(setupDir) != DRIVE_REMOTE)
		::ShellExecute(NULL, NULL, setupDir, 0, 0, SW_SHOW);

// 岞奐尞偺嶍彍
#ifndef MS_DEF_PROV
typedef unsigned long HCRYPTPROV;
#define MS_DEF_PROV				"Microsoft Base Cryptographic Provider v1.0"
#define MS_ENHANCED_PROV		"Microsoft Enhanced Cryptographic Provider v1.0"
#define CRYPT_DELETEKEYSET      0x00000010
#define CRYPT_MACHINE_KEYSET    0x00000020
#define PROV_RSA_FULL			1
#endif
	BOOL		(WINAPI *pCryptAcquireContext)(HCRYPTPROV *, LPCSTR, LPCSTR, DWORD, DWORD);
	HINSTANCE	advdll;

	if (cfg.delPubkey && (advdll = ::LoadLibrary("advapi32.dll")) && (pCryptAcquireContext = (BOOL (WINAPI *)(HCRYPTPROV *, LPCSTR, LPCSTR, DWORD, DWORD))::GetProcAddress(advdll, "CryptAcquireContextA")))
	{
		HCRYPTPROV	csp = NULL;
		char		contName[MAX_PATH], userName[MAX_PATH];
		DWORD		size = sizeof(userName);

		::GetUserName(userName, &size);

		::wsprintf(contName, "ipmsg.rsa1024.%s", userName);
		pCryptAcquireContext(&csp, contName, MS_ENHANCED_PROV, PROV_RSA_FULL, CRYPT_DELETEKEYSET|CRYPT_MACHINE_KEYSET);
		pCryptAcquireContext(&csp, contName, MS_ENHANCED_PROV, PROV_RSA_FULL, CRYPT_DELETEKEYSET);

		::wsprintf(contName, "ipmsg.rsa512.%s", userName);
		pCryptAcquireContext(&csp, contName, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_DELETEKEYSET|CRYPT_MACHINE_KEYSET);
		pCryptAcquireContext(&csp, contName, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_DELETEKEYSET);
	}

	::PostQuitMessage(0);
	return	TRUE;
}

/*
	摨偠撪梕傪帩偮僔儑乕僩僇僢僩傪嶍彍乮僗僞乕僩傾僢僾傊偺廳暋搊榐傛偗乯
*/
BOOL TInstDlg::RemoveSameLink(const char *dir, char *remove_path)
{
	char			path[MAX_PATH], dest[MAX_PATH], arg[MAX_PATH];
	HANDLE			fh;
	WIN32_FIND_DATA	data;
	BOOL			ret = FALSE;

	::wsprintf(path, "%s\\*.*", dir);
	if ((fh = ::FindFirstFile(path, &data)) == INVALID_HANDLE_VALUE)
		return	FALSE;

	do {
		::wsprintf(path, "%s\\%s", dir, data.cFileName);
		if (ReadLink(path, dest, arg) == TRUE && *arg == 0)
		{
			int		dest_len = strlen(dest), ipmsg_len = strlen(IPMSG_EXENAME);
			if (dest_len > ipmsg_len && strncmpi(dest + dest_len - ipmsg_len, IPMSG_EXENAME, ipmsg_len) == 0) {
				ret = ::DeleteFile(path);
				if (remove_path != NULL)
					strcpy(remove_path, path);
			}
		}

	} while (::FindNextFile(fh, &data) == TRUE);

	::FindClose(fh);
	return	ret;
}


/*

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久天天| 99久久er热在这里只有精品66| 亚洲女同女同女同女同女同69| 精品欧美一区二区久久| 日韩视频在线观看一区二区| 欧美视频在线播放| 欧美性极品少妇| 欧美午夜不卡视频| 欧美日韩国产综合一区二区三区| 91猫先生在线| 一本色道久久综合亚洲91| 99久久99久久综合| 色综合色综合色综合色综合色综合| 成a人片亚洲日本久久| 99久久精品国产一区| 91色.com| 在线不卡免费欧美| 欧美一区二区日韩一区二区| 日韩丝袜情趣美女图片| 精品91自产拍在线观看一区| 久久久国际精品| 中文字幕欧美日韩一区| 亚洲女同一区二区| 午夜电影网亚洲视频| 麻豆精品一区二区av白丝在线| 看国产成人h片视频| 豆国产96在线|亚洲| 91网站最新网址| 欧美二区在线观看| 精品99久久久久久| 亚洲欧洲中文日韩久久av乱码| 亚洲理论在线观看| 久久se精品一区二区| 成人午夜看片网址| 欧美色综合天天久久综合精品| 91精品国产色综合久久不卡电影| 欧美精品一区二区三区视频 | 成人小视频在线观看| eeuss鲁片一区二区三区在线看| 欧美午夜电影一区| 久久久久久久久久久久久久久99 | 国产精品久久久久久久浪潮网站| 亚洲精品日韩专区silk| 青青草伊人久久| caoporm超碰国产精品| 欧美精品日韩精品| 国产精品久久午夜| 久久精品久久99精品久久| 福利一区福利二区| 337p亚洲精品色噜噜狠狠| 日本一区二区免费在线观看视频 | 亚洲一区在线视频观看| 免费一级片91| 色综合久久久久综合99| 久久精品视频在线看| 天天色综合成人网| av不卡一区二区三区| 精品久久久久久久一区二区蜜臀| 亚洲欧美福利一区二区| 国产麻豆9l精品三级站| 91精品国产综合久久久久久| 亚洲欧美日韩国产成人精品影院| 国产在线播放一区三区四| 欧美精品18+| 一区二区三区蜜桃| 99在线精品免费| 日本一区二区综合亚洲| 国产一区二区三区观看| 日韩一区二区三区精品视频| 亚洲gay无套男同| 在线观看日韩电影| 亚洲精品国产第一综合99久久 | 一区二区三区四区激情 | 最新成人av在线| 国产91露脸合集magnet| 欧美videos中文字幕| 免费日韩伦理电影| 91.com视频| 日韩**一区毛片| 欧美性受xxxx黑人xyx| 一区二区理论电影在线观看| 91美女在线看| 亚洲一区影音先锋| 欧美午夜精品免费| 日韩电影在线一区二区三区| 欧美日韩精品福利| 偷窥少妇高潮呻吟av久久免费| 欧美在线视频日韩| 亚洲成人激情自拍| 这里只有精品电影| 麻豆成人免费电影| 国产色综合一区| 成人精品一区二区三区四区| 1024精品合集| 久久久久九九视频| 免费观看一级特黄欧美大片| 欧美成人在线直播| 懂色av中文字幕一区二区三区| 中文字幕不卡三区| 91亚洲男人天堂| 亚洲成在人线免费| 日韩亚洲电影在线| 高清shemale亚洲人妖| 亚洲精品视频在线观看免费 | 亚洲精品国产高清久久伦理二区| 在线看国产日韩| 免费高清不卡av| 日本一区二区三区在线不卡| 在线中文字幕不卡| 久久精品72免费观看| 欧美精彩视频一区二区三区| 色吊一区二区三区 | 欧美成人女星排行榜| 成人看片黄a免费看在线| 亚洲一卡二卡三卡四卡五卡| 精品国产乱码久久久久久夜甘婷婷 | 精品一区二区成人精品| 国产精品乱人伦一区二区| 欧美日本一区二区| 国产91露脸合集magnet| 亚洲mv大片欧洲mv大片精品| 久久久久久久久久久99999| 在线视频一区二区免费| 国产一区二区三区免费播放 | 精品视频全国免费看| 国产一区三区三区| 亚洲一区二区美女| 国产精品网站在线观看| 91精品国产一区二区三区 | 91麻豆高清视频| 国产酒店精品激情| 亚洲成av人片一区二区梦乃| 中文字幕亚洲在| 久久久久久久免费视频了| 88在线观看91蜜桃国自产| 成人性生交大片免费| 久久机这里只有精品| 亚洲国产精品欧美一二99| 国产精品色婷婷久久58| 日韩精品一区二区三区在线观看| 日本乱码高清不卡字幕| 成人v精品蜜桃久久一区| 久久疯狂做爰流白浆xx| 午夜天堂影视香蕉久久| 亚洲色图丝袜美腿| 国产精品二三区| 欧美激情一区二区三区四区| 欧美一级高清大全免费观看| 欧美在线观看一二区| av中文字幕不卡| 成人污污视频在线观看| 国产高清在线观看免费不卡| 裸体健美xxxx欧美裸体表演| 香蕉成人啪国产精品视频综合网| 亚洲三级在线免费观看| 亚洲欧洲三级电影| 成人欧美一区二区三区白人| 国产婷婷色一区二区三区四区| 精品福利一二区| 精品国产乱子伦一区| 精品日韩一区二区三区| 精品人伦一区二区色婷婷| 日韩一区二区三区四区| 欧美α欧美αv大片| 日韩欧美精品在线视频| 日韩精品一区二区三区四区| 日韩一区二区三区在线观看| 欧美成人女星排名| 久久久亚洲精品石原莉奈| 国产日韩在线不卡| 中文字幕一区二区三区在线播放| 国产精品毛片无遮挡高清| 国产精品黄色在线观看| 亚洲另类在线制服丝袜| 亚洲第一电影网| 免费在线观看一区| 国产精品一二三四五| 成人晚上爱看视频| 欧美羞羞免费网站| 日韩一区二区免费在线电影| 亚洲精品在线免费观看视频| 欧美激情综合网| 亚洲精品日韩一| 捆绑调教一区二区三区| 成人爽a毛片一区二区免费| 99久久久精品免费观看国产蜜| 欧美视频一区在线| 久久综合色8888| 亚洲精品综合在线| 久久69国产一区二区蜜臀| 本田岬高潮一区二区三区| 欧美日韩国产成人在线免费| 日韩精品一区二区三区中文精品| 欧美国产日韩精品免费观看| 亚洲欧美欧美一区二区三区| 青青草97国产精品免费观看无弹窗版| 久久精品久久99精品久久| 色综合中文字幕| 欧美精品一区二区高清在线观看| 中文字幕av一区二区三区高|