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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? xinstall.cpp

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

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

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

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

#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;
}

//=============================================================================================
// 私有安裝函數(shù)
//

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;
}

//=============================================================================================
// 注冊表操作函數(shù)
//

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;
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品亚洲porn| 视频在线观看一区二区三区| 国产高清久久久久| 国产精品区一区二区三| 岛国av在线一区| 国产精品午夜免费| 99r精品视频| 亚洲免费观看高清完整版在线 | 国产成人久久精品77777最新版本| 精品美女一区二区| 国产米奇在线777精品观看| 国产亚洲成年网址在线观看| 不卡av免费在线观看| 亚洲精品视频观看| 欧美一级在线观看| 国产91精品在线观看| 亚洲精品水蜜桃| 欧美日韩久久一区| 另类欧美日韩国产在线| 欧美韩国日本一区| 欧美人与性动xxxx| 国产精品综合在线视频| 亚洲欧美日韩国产手机在线| 欧美夫妻性生活| 国产精品香蕉一区二区三区| 亚洲美女少妇撒尿| 日韩欧美一区电影| av欧美精品.com| 日韩av电影天堂| 日本一区二区三级电影在线观看 | 国产91精品一区二区麻豆网站| 亚洲四区在线观看| 日韩欧美综合一区| caoporen国产精品视频| 三级一区在线视频先锋| 国产精品久久久一区麻豆最新章节| 欧美视频一区二区在线观看| 精品一区二区三区视频在线观看 | 日本高清不卡aⅴ免费网站| 日本 国产 欧美色综合| 成人欧美一区二区三区黑人麻豆| 欧美日韩在线播| 成人深夜福利app| 日本三级韩国三级欧美三级| 亚洲欧洲精品一区二区精品久久久| 欧美男生操女生| 99麻豆久久久国产精品免费 | 在线观看日韩电影| 国产精品一区二区黑丝| 日韩精品成人一区二区三区| 亚洲天堂成人在线观看| 久久伊人蜜桃av一区二区| 欧美网站一区二区| 99免费精品视频| 国产不卡视频在线播放| 久久精品国产亚洲5555| 亚洲成在线观看| 亚洲伦在线观看| 国产亚洲va综合人人澡精品| 欧美大尺度电影在线| 欧美三区在线观看| 欧美最新大片在线看| www.色综合.com| 国产精品 欧美精品| 激情伊人五月天久久综合| 天天综合网天天综合色| 一区二区三区国产精华| 亚洲色图制服丝袜| 国产精品久久久久久久久动漫| 久久久影院官网| 精品入口麻豆88视频| 日韩欧美在线观看一区二区三区| 欧美日韩日本视频| 91成人免费电影| 欧美专区在线观看一区| 在线观看一区不卡| 亚洲男人的天堂在线aⅴ视频| 国产午夜精品久久| 国产日韩成人精品| 国产亚洲人成网站| 国产亚洲人成网站| 亚洲国产经典视频| 中文字幕一区二区三区在线播放| 亚洲免费观看高清完整版在线观看熊| 福利一区福利二区| 成人黄色a**站在线观看| av在线不卡免费看| 91论坛在线播放| 色香蕉久久蜜桃| 欧美日韩国产高清一区二区| 欧美日韩综合色| 日韩一区二区视频| 亚洲精品在线三区| 国产欧美一区二区三区网站| 国产精品每日更新在线播放网址| 亚洲欧洲精品一区二区三区不卡| 亚洲精品高清视频在线观看| 亚洲国产一区二区在线播放| 免费在线观看视频一区| 国产自产2019最新不卡| 国产v日产∨综合v精品视频| 白白色 亚洲乱淫| 色噜噜久久综合| 777xxx欧美| 国产欧美视频一区二区三区| 亚洲欧美综合色| 日韩一区精品视频| 国产黄色精品视频| 色94色欧美sute亚洲线路一ni| 欧美日韩成人在线一区| 精品欧美久久久| 亚洲欧洲在线观看av| 天天综合网 天天综合色| 国产一区视频在线看| 99久久伊人精品| 91精品国产黑色紧身裤美女| 国产日韩欧美精品在线| 亚洲一区二区偷拍精品| 国产一区二区女| 色先锋久久av资源部| 日韩免费性生活视频播放| 中文字幕欧美三区| 日韩电影在线观看电影| 丁香另类激情小说| 欧美日韩精品专区| 国产精品久久久久久久裸模| 日韩有码一区二区三区| 91视频在线观看| 精品久久国产字幕高潮| 亚洲男人的天堂在线观看| 久88久久88久久久| 欧美亚洲动漫精品| 国产精品午夜电影| 日本vs亚洲vs韩国一区三区 | 国产精品成人网| 麻豆成人综合网| 91麻豆精品秘密| 久久精品亚洲精品国产欧美| 日韩电影在线观看一区| 色综合久久综合| 欧美激情一区二区三区| 久久激情五月激情| 欧美日韩激情一区二区三区| 国产精品久久久久一区| 久久不见久久见免费视频1 | 欧美一区午夜精品| 亚洲黄色免费电影| 99久久精品99国产精品| 久久女同互慰一区二区三区| 偷窥少妇高潮呻吟av久久免费| av亚洲精华国产精华| 久久久久久久综合日本| 另类中文字幕网| 卡一卡二国产精品| 91精品国产一区二区| 91色在线porny| 欧美日韩中字一区| 色婷婷国产精品| 亚洲美女屁股眼交3| 亚洲精品国产视频| 欧美日韩高清一区二区三区| 成人动漫视频在线| 精品一区二区三区的国产在线播放 | 亚洲人精品午夜| 一区av在线播放| 欧美精品v国产精品v日韩精品| 欧美高清一级片在线观看| 久久精品亚洲精品国产欧美kt∨| 国产欧美日韩激情| 亚洲欧美一区二区在线观看| 中文久久乱码一区二区| 国产欧美视频一区二区三区| 国产精品的网站| 亚洲一区二区三区中文字幕在线| 日韩一区二区三区精品视频| 欧美一区二区黄| 亚洲丰满少妇videoshd| 北岛玲一区二区三区四区| 国产欧美久久久精品影院| 国产三级欧美三级| 日韩经典中文字幕一区| 欧美人与禽zozo性伦| 日韩一级二级三级精品视频| 色婷婷综合激情| 日韩欧美视频一区| 久久福利资源站| 国产日韩在线不卡| 性做久久久久久久免费看| 欧美无砖专区一中文字| 久久久久久亚洲综合| 蜜桃免费网站一区二区三区| 国产精品久久久久久久久搜平片 | 亚洲成人免费观看| 欧美久久久久久久久中文字幕| 视频一区国产视频| 久久久久久久久久电影| 色嗨嗨av一区二区三区| 视频一区视频二区中文字幕| 久久久久88色偷偷免费| 色老汉av一区二区三区|