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

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

?? xinstall.cpp

?? verilog ADPLL file with testbench
?? CPP
字號:
//=============================================================================================
/*
	文件:		XInstall.cpp

	說明:
	---------------------------------------------------
		用來安裝 Xfilter 個人防火墻。
	---------------------------------------------------

	工程:		Xfilter 個人防火墻
	作者:		朱雁輝,朱雁冰
	創建日期:	2001/08/28
	網址:		http://www.xfilt.com
	電子郵件:	xstudio@xfilt.com
	版權所有 (c) 2001-2002 X 工作室

	警告:
	---------------------------------------------------
		本電腦程序受著作權法的保護。未經授權,不能使用
	和修改本軟件全部或部分源代碼。凡擅自復制、盜用或散
	布此程序或部分程序或者有其它任何越權行為,將遭到民
	事賠償及刑事的處罰,并將依法以最高刑罰進行追訴。
	
		凡通過合法途徑購買本軟件源代碼的用戶被默認授權
	可以在自己的程序中使用本軟件的部分代碼,但作者不對
	代碼產生的任何后果負責。
	
		使用了本軟件代碼的程序只能以可執行文件形式發布,
	未經特別許可,不能將含有本軟件源代碼的源程序以任何
	形式發布。
	---------------------------------------------------	
*/
//=============================================================================================

#include "stdafx.h"
#include "XInstall.h"

BOOL CXInstall::IsWinsock2()
{
	WORD	wVersionRequested	= MAKEWORD(2, 0);
	WSADATA wsaData;
	
	if(WSAStartup(wVersionRequested, &wsaData) != 0)
		return FALSE;
 
	if (LOBYTE(wsaData.wVersion) != 2)
	{
		WSACleanup();
		return FALSE; 
	}

	return TRUE;
}

BOOL CXInstall::IsInstalled(TCHAR *sPathName)
{
	TCHAR tsPathName[MAX_PATH];

	if( ReadReg(REG_INSTALL_PATH_ITEM, 
				(BYTE*)tsPathName, 
				MAX_PATH, 
				HKEY_LOCAL_MACHINE, 
				REG_INSTALL_KEY, REG_SZ
				)
		)
		{
			if(sPathName != NULL)
				_tcscpy(sPathName, tsPathName);
			return TRUE;
		}

	return FALSE;
}

int CXInstall::InstallProvider(TCHAR *sPathName)
{
	if(IsInstalled())
		return XERR_PROVIDER_ALREADY_INSTALL;

	_tcscpy(m_sPathName, sPathName);

	int iRet;
	if((iRet = EnumHookKey()) != XERR_SUCCESS)
		return iRet;

	if(!SaveReg(
			REG_INSTALL_PATH_ITEM, 
			(BYTE*)sPathName, 
			_tcslen(sPathName),
			HKEY_LOCAL_MACHINE, 
			REG_INSTALL_KEY, 
			REG_SZ
			)
		)
		return XERR_PROVIDER_SAVE_PATH_FAILED;

	return XERR_SUCCESS;
}

BOOL CXInstall::RemoveProvider()
{
	int iRet = XERR_SUCCESS;

	if(!IsInstalled())
		return XERR_PROVIDER_NOT_INSTALL;

	if(iRet = EnumHookKey(TRUE) != XERR_SUCCESS)
		return iRet;

	if(!DeleteReg())
		return XERR_PROVIDER_REG_DELETE_FAILED;

	return XERR_SUCCESS;
}

//=============================================================================================
// 私有安裝函數
//

int CXInstall::EnumHookKey(BOOL IsRemove)
{
	HKEY hkey = NULL;

	if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_PROTOCOL_CATALOG_KEY, 0, KEY_READ, &hkey) != ERROR_SUCCESS)
		return XERR_PROVIDER_OPEN_REG_FAILED;

	__try
	{
		TCHAR sSubKey[MAX_PATH];
		DWORD dwIndex	= 0;
		int	  iRet		= 0;

		while(RegEnumKey(hkey, dwIndex, sSubKey, MAX_PATH) == ERROR_SUCCESS)
		{
			if((iRet = SaveHookKey(hkey, sSubKey, IsRemove)) != XERR_SUCCESS)
				return iRet;

			dwIndex ++;
		}
	}
	__finally
	{
		RegCloseKey(hkey);
	}

	return XERR_SUCCESS;
}

int CXInstall::SaveHookKey(HKEY hkey, LPCTSTR sSubKey, BOOL IsRemove)
{
	HKEY	hSubKey		= NULL;
	BYTE	ItemValue	  [MAX_PROTOCOL_CATALOG_LENTH];
	DWORD	ItemSize	= MAX_PROTOCOL_CATALOG_LENTH;

	if(RegOpenKeyEx(hkey, sSubKey, 0, KEY_ALL_ACCESS, &hSubKey) != ERROR_SUCCESS)
		return XERR_PROVIDER_OPEN_REG_FAILED;

	__try
	{
		if(RegQueryValueEx(hSubKey, REG_PROTOCOL_CATALOG_ITEM, 0, NULL, ItemValue, &ItemSize) != ERROR_SUCCESS
			|| (ItemSize != MAX_PROTOCOL_CATALOG_LENTH))
			return XERR_PROVIDER_READ_VALUE_FAILED;

		WSAPROTOCOL_INFOW *mProtocolInfo = (WSAPROTOCOL_INFOW*)(ItemValue + MAX_PATH);
		
		if(mProtocolInfo->ProtocolChain.ChainLen == 1)
		{
			TCHAR sItem[21];
			_stprintf(sItem, _T("%u"), mProtocolInfo->dwCatalogEntryId);
			if(!IsRemove)
			{
				if(!SaveReg(
						sItem, 
						ItemValue,
						_tcslen((TCHAR*)ItemValue), 
						HKEY_LOCAL_MACHINE, 
						REG_INSTALL_KEY, 
						REG_SZ
						)
					)
					return XERR_PROVIDER_CREATE_ITEM_FAILED;

				_tcscpy((TCHAR*)ItemValue, m_sPathName);

				if(RegSetValueEx(hSubKey, REG_PROTOCOL_CATALOG_ITEM, 0, REG_BINARY, ItemValue, ItemSize) != ERROR_SUCCESS)
					return XERR_PROVIDER_SET_VALUE_FAILED;
			}
			else
			{
				TCHAR sProvider[MAX_PATH];
				
				int iRet = ReadReg(
								sItem, 
								(BYTE*)sProvider, 
								MAX_PATH, 
								HKEY_LOCAL_MACHINE, 
								REG_INSTALL_KEY, REG_SZ
								);
				_tcscpy((TCHAR*)ItemValue, sProvider);
				iRet = RegSetValueEx(hSubKey, REG_PROTOCOL_CATALOG_ITEM, 0, REG_BINARY, ItemValue, ItemSize);
			}
		}
	}
	__finally
	{
		RegCloseKey(hSubKey);
	}

	return XERR_SUCCESS;
}

//=============================================================================================
// 注冊表操作函數
//

BOOL CXInstall::ReadReg(
	TCHAR	*sKey, 
	BYTE	*pBuffer,	
	DWORD	dwBufSize,
	HKEY	hkey, 
	TCHAR	*sSubKey, 
	DWORD	ulType
)
{
	HKEY	hSubkey;

	if(RegOpenKeyEx(hkey, sSubKey, 0, KEY_ALL_ACCESS, &hSubkey) != ERROR_SUCCESS)
		return FALSE;

	__try
	{
		DWORD	dwType;

		if (RegQueryValueEx(hSubkey, sKey, 0, &dwType, pBuffer, &dwBufSize) == ERROR_SUCCESS
			&& dwType == ulType)
			return TRUE;
	}
	__finally
	{
		RegCloseKey(hSubkey);
	}

	return FALSE;
}

BOOL CXInstall::SaveReg(
	TCHAR	*sKey, 
	BYTE	*pBuffer,
	DWORD	dwBufSize,
	HKEY	hkey, 
	TCHAR	*sSubKey, 
	DWORD	ulType
)
{
	HKEY	hSubkey;
	DWORD	dwDisposition;

	if (RegCreateKeyEx(hkey, sSubKey, 0, NULL, REG_OPTION_NON_VOLATILE
		, KEY_ALL_ACCESS, NULL, &hSubkey, &dwDisposition) != ERROR_SUCCESS)
		return FALSE;

	if (RegSetValueEx(hSubkey, sKey, 0, ulType, pBuffer, dwBufSize) != ERROR_SUCCESS)
	{
		RegCloseKey(hSubkey);
		return FALSE;
	}

	RegCloseKey(hSubkey);

	return TRUE;
}

BOOL CXInstall::DeleteReg(
	HKEY	hkey,
	TCHAR	*sSubKey, 
	TCHAR	*sItem
)
{
	if(hkey == NULL || sSubKey == NULL)
		return FALSE;

	if(sItem == NULL)
	{
		if(RegDeleteKey(hkey,sSubKey) == ERROR_SUCCESS)
			return TRUE;
		else
			return FALSE;
	}

	HKEY	hSubKey;

	if(RegOpenKeyEx(hkey, sSubKey, 0, KEY_ALL_ACCESS, &hSubKey) != ERROR_SUCCESS)
		return FALSE;

	__try
	{
		if(RegDeleteValue(hSubKey, sItem) == ERROR_SUCCESS)
			return TRUE;
	}
	__finally
	{
		RegCloseKey(hSubKey);
	}

	return FALSE;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看av一区二区| 欧美久久免费观看| 成人成人成人在线视频| 播五月开心婷婷综合| 色欧美日韩亚洲| 亚洲五码中文字幕| 亚洲国产精品久久久久秋霞影院 | 天堂成人免费av电影一区| 久久夜色精品国产欧美乱极品| 91丨九色丨黑人外教| 激情综合色丁香一区二区| 国产精品丝袜在线| 色老头久久综合| 日韩视频在线你懂得| 午夜精品福利一区二区蜜股av| 色噜噜狠狠一区二区三区果冻| 有码一区二区三区| 成人精品一区二区三区四区| 欧美www视频| 成人做爰69片免费看网站| 国产精品久久久久影院老司 | 美国三级日本三级久久99| 精品久久久影院| 成人18视频日本| 国内精品在线播放| 男女激情视频一区| 日韩成人免费看| 视频在线观看一区二区三区| 亚洲精品国产视频| 日韩美女啊v在线免费观看| 国产欧美一区二区精品忘忧草| 日韩欧美一级在线播放| 欧美一区二区三区在| 欧美一区二区三区免费| 欧美精品电影在线播放| 欧美日韩精品一区二区在线播放| 在线免费视频一区二区| 91小宝寻花一区二区三区| 91色九色蝌蚪| 日本精品一区二区三区高清 | 亚洲另类在线一区| 亚洲三级在线看| 一色桃子久久精品亚洲| 中文字幕在线观看一区二区| 国产精品久久久久9999吃药| 国产精品欧美一级免费| 日韩一区有码在线| 亚洲精品午夜久久久| 亚洲一区二区三区四区在线观看 | 亚洲成人av中文| 丝袜美腿亚洲一区二区图片| 亚洲va天堂va国产va久| 日韩不卡在线观看日韩不卡视频| 日韩电影在线免费| 精品一区二区在线播放| 夫妻av一区二区| 久久精品国产99国产| 亚洲女性喷水在线观看一区| 国产亚洲人成网站| 欧美优质美女网站| 91网站在线播放| 成人黄色小视频| 粉嫩在线一区二区三区视频| 久久激五月天综合精品| 天天av天天翘天天综合网色鬼国产| 国产日本欧美一区二区| 久久久99精品免费观看不卡| 国产免费成人在线视频| 日本一区二区视频在线| 中文字幕一区不卡| 一区二区三区精品视频| 亚洲在线一区二区三区| 国产永久精品大片wwwapp| 成人免费看片app下载| 91视频精品在这里| 国产91富婆露脸刺激对白| 亚洲成人高清在线| 成人性视频网站| 亚洲九九爱视频| jlzzjlzz亚洲日本少妇| 亚洲精品欧美激情| 美女一区二区久久| 91香蕉视频污| 欧美大片国产精品| 亚洲精品免费在线| 久久不见久久见免费视频1| av亚洲精华国产精华精| 91麻豆精品国产91久久久 | 国产高清精品久久久久| 在线观看视频一区二区欧美日韩| 欧美三级电影网| 五月天一区二区三区| 精品一区二区三区免费毛片爱| 国产精品亚洲视频| 国产成人av一区二区| 成人性色生活片| 日韩欧美一级片| 亚洲精品成人悠悠色影视| 国产美女一区二区三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产成人av福利| 欧美视频一二三区| 亚洲日本电影在线| 国产成人午夜精品影院观看视频 | 精品在线一区二区| 99久久精品国产一区二区三区| 日韩视频在线观看一区二区| 中文字幕在线一区免费| 韩国女主播一区| 亚洲国产精品国自产拍av| 福利一区二区在线| 亚洲午夜一区二区三区| 国产无遮挡一区二区三区毛片日本 | 亚洲日本乱码在线观看| 欧美日韩一区二区三区视频| 日本一区中文字幕| 亚洲人123区| 欧美xxxx在线观看| av一区二区三区| 亚洲在线中文字幕| 丰满放荡岳乱妇91ww| 色94色欧美sute亚洲线路一ni | 丝袜a∨在线一区二区三区不卡| 久久久噜噜噜久久中文字幕色伊伊| 日韩一级大片在线观看| 日本一区二区三区在线观看| 中文字幕在线观看一区| 国产成人h网站| 久久中文字幕电影| 久久99精品久久久| 日韩欧美一级精品久久| 日本视频免费一区| 制服丝袜一区二区三区| 午夜精品福利在线| 91超碰这里只有精品国产| 亚洲高清免费一级二级三级| 色哟哟日韩精品| 亚洲成在线观看| 欧美高清在线一区二区| 一本久久a久久免费精品不卡| 丝袜美腿高跟呻吟高潮一区| 亚洲精品一区二区三区影院| 日本丰满少妇一区二区三区| 日日夜夜免费精品视频| 精品国产凹凸成av人网站| 成人免费视频app| 五月天亚洲精品| 日本一区二区三区高清不卡| 欧美日韩久久一区二区| 国产精品影视在线观看| 丝袜美腿亚洲一区| 国产精品成人在线观看| 欧美一激情一区二区三区| eeuss影院一区二区三区| 日韩精品成人一区二区在线| 国产精品区一区二区三| 日韩一级精品视频在线观看| 99re亚洲国产精品| 国产一区二区三区电影在线观看 | 99国产精品久久久久久久久久久| 国产乱妇无码大片在线观看| 日韩精品一二三| 国产剧情一区在线| 北条麻妃国产九九精品视频| av中文字幕在线不卡| 欧美天天综合网| 2021中文字幕一区亚洲| 欧美激情艳妇裸体舞| 蜜臀av一级做a爰片久久| 国产主播一区二区三区| 青青草成人在线观看| 国产精品动漫网站| 中文成人综合网| 成人免费精品视频| 亚洲精品日韩专区silk| 国产精品一区二区久激情瑜伽| 色综合久久综合网欧美综合网| 亚洲成人资源网| 国产婷婷色一区二区三区四区| 91蜜桃免费观看视频| 免费国产亚洲视频| 国产精品久久久久永久免费观看 | 中文子幕无线码一区tr| 国产日韩欧美高清在线| 2017欧美狠狠色| 中文字幕在线播放不卡一区| 亚洲欧美偷拍三级| 五月婷婷激情综合| 国产精品99精品久久免费| 国产成人免费网站| 色综合天天综合网天天看片| 欧美三级视频在线播放| 欧美一区二区三区免费| 国产精品国产成人国产三级| 亚洲视频1区2区| 久久 天天综合| 欧洲一区二区av| 欧美经典一区二区| 视频一区二区三区在线| 国产成人在线网站|