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

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

?? jelreginstaller.cpp

?? 用java 編寫的源碼開放的文本編輯器。有很多有用的特性
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
				"Could not write \"Java Options\" registry parameter.\n");			bResult &= false;		}	}	else	{		UpdateJarParameter(szBuf);		nResult = RegSetValueEx(hVersionKey, arszValues[1], 0,			REG_SZ, (LPBYTE)szBuf,			(_tcslen(szBuf) + 1) * sizeof(TCHAR));		if(ERROR_SUCCESS == nResult)		{			InstallerLog::Log(Debug,				"Updating \"Java Options\" registry parameter: %s\n",				(LPCSTR)szBuf);		}		else		{			InstallerLog::Log(Error,				"Could not write \"Java Options\" registry parameter.\n");			bResult &= false;		}	}	// "jEdit Target" -- must always be set	CString strJEditTarget;	dwValueSize = MAX_PATH;	nResult = RegQueryValueEx(hVersionKey, arszValues[2], 0, 0, (LPBYTE)szBuf, &dwValueSize);	if(nResult != ERROR_SUCCESS || dwValueSize == 0		|| strstr(szBuf, "jedit.jar") != 0)	{		strJEditTarget = _T("\"");		strJEditTarget += pData->strInstallDir;		strJEditTarget += _T("\\jedit.jar\"");	}	else	{		strJEditTarget = _T("org.gjt.sp.jedit.jEdit");	}	nResult = RegSetValueEx(hVersionKey, arszValues[2], 0,		REG_SZ, (LPBYTE)(LPCTSTR)strJEditTarget,		InstallData::GetBufferByteLen(strJEditTarget));	if(ERROR_SUCCESS == nResult)	{		InstallerLog::Log(Debug,			"Writing \"jEdit Target\" registry parameter: %s\n",			(LPCSTR)strJEditTarget);	}	else	{		InstallerLog::Log(Error,			"Could not write \"jEdit Target\" registry parameter.\n");			bResult &= false;	}	// "jEdit Options" - default is no options;	// make sure an empty item is written	dwValueSize = MAX_PATH;	nResult = RegQueryValueEx(hVersionKey, arszValues[3], 0, 0, (LPBYTE)szBuf, &dwValueSize);	if(!bUseOldParameters || nResult != ERROR_SUCCESS)	{		// "jEdit Options"		char szBuf = 0;		nResult = RegSetValueEx(hVersionKey, arszValues[3], 0,			REG_SZ, (LPBYTE)&szBuf, sizeof(TCHAR));		if(ERROR_SUCCESS == nResult)		{			InstallerLog::Log(Debug,				"Writing empty \"jEdit Options\" registry parameter.\n");		}		else		{			InstallerLog::Log(Error,				"Could not write \"jEdit Options\" registry parameter.\n");			bResult &= false;		}	}	// "jEdit Working Directory"	// always change working directory, so you can't get	// an orphan entry following an uninstall of another version	CString strWorkingDir(pData->strInstallDir);	nResult = RegSetValueEx(hVersionKey, arszValues[4], 0,		REG_SZ, (LPBYTE)(LPCTSTR)strWorkingDir,		InstallData::GetBufferByteLen(strWorkingDir));	if(ERROR_SUCCESS == nResult)	{		InstallerLog::Log(Debug,			"Writing \"jEdit Working Directory\" registry parameter: %s\n",			(LPCTSTR)strWorkingDir);	}	else	{		InstallerLog::Log(Error,			"Could not write \"jEdit Working Directory\" registry parameter.\n");		bResult &= false;	}	// "Launcher GUID"	nResult = RegSetValueEx(hVersionKey, arszValues[5], 0,		REG_SZ, (LPBYTE)(LPCTSTR)pData->strInstallGUID,		InstallData::GetBufferByteLen(pData->strInstallGUID));	if(ERROR_SUCCESS == nResult)	{		InstallerLog::Log(Debug,			"Writing \"Launcher GUID\" registry parameter: %s\n",				(LPCTSTR)pData->strInstallGUID);	}	else	{		InstallerLog::Log(Error,			"Could not write \"Launcher GUID\" registry parameter.\n");		bResult &= false;	}	// "Installation Dir"	nResult = RegSetValueEx(hVersionKey, arszValues[6], 0,		REG_SZ, (LPBYTE)(LPCTSTR)pData->strInstallDir,		InstallData::GetBufferByteLen(pData->strInstallDir));	if(ERROR_SUCCESS == nResult)	{		InstallerLog::Log(Debug,			"Writing \"Installation Dir\" registry parameter: %s\n",			(LPCTSTR)pData->strInstallDir);	}	else	{		InstallerLog::Log(Error,			"Could not write \"Installation Dir\" registry parameter.\n");		bResult &= false;	}	// "Launcher Log Level": set to -1 if not previously set	dwValueSize = MAX_PATH;	nResult = RegQueryValueEx(hVersionKey, arszValues[7], 0, 0, (LPBYTE)szBuf, &dwValueSize);	if(!bUseOldParameters || nResult != ERROR_SUCCESS || dwValueSize == 0)	{		DWORD dwDebug = (DWORD)-1;		nResult = RegSetValueEx(hVersionKey, arszValues[7], 0,			REG_DWORD, (LPBYTE)&dwDebug, sizeof(DWORD));		if(ERROR_SUCCESS == nResult)		{			InstallerLog::Log(Debug,				"Writing \"Launcher Log Level\" registry parameter: %d\n",				dwDebug);		}		else		{			InstallerLog::Log(Error,				"Could not write \"Launcher Log Level\" registry parameter.\n");			bResult &= false;		}	}	RegCloseKey(hVersionKey);	RegCloseKey(hLauncherKey);	InstallerLog::Log(Message, "Registration of command line parameters %s.\n",		bResult ? "succeeded" : "failed");	return S_OK;}// if "jEdit.jar" appears in the parameter,// get the associated directory and change to the// current install directoryvoid JELRegistryInstaller::UpdateJarParameter(LPTSTR lpszParam){	CString strLCParam(lpszParam);	strLCParam.MakeLower();	const TCHAR *pJar = lpszParam + strLCParam.Find(_T("jedit.jar"));	if(pJar <= lpszParam) return;	bool quoted = false;	const TCHAR *pStart = lpszParam;	const TCHAR *p;	for(p = lpszParam; p < pJar; ++p)	{		switch (*p)		{			case _T(';'): pStart = p; break;			case _T(' '): if(!quoted) pStart = p; break;			case _T('\"'): quoted = !quoted; if(quoted) pStart = p; break;			default: break;		}	}	// now pStart points to the beginning of the jedit.jar path,	// or a leading space, quote or semicolon; next we trim	bool bContinue = true;	for(p = pStart; bContinue && p < pJar; ++p)	{		switch(*p)		{			case _T(';'):			case _T(' '):			case _T('\"'): pStart = p; break;			default: bContinue = false; break;		}	}	// now we replace from pStart to pJar with the new install dir	char szNewParam[MAX_PATH];	ZeroMemory(szNewParam, MAX_PATH);	lstrcpyn(szNewParam, lpszParam, pStart - lpszParam);	lstrcat(szNewParam, pData->strInstallDir);	lstrcat(szNewParam, _T("\\"));	lstrcat(szNewParam, pJar);	lstrcpy(lpszParam, szNewParam);}HRESULT JELRegistryInstaller::Uninstall(){	UnregisterCmdLineParameters();	CString strDir(pData->strInstallDir);	// unregister proxy/stub DLL	CString strPath(strDir);	strPath += _T("\\jeservps.dll");	RegisterDLL(strPath, FALSE);	// clean up proxy/stub;  this is interface GUID	CString strPxStubCLSID(_T("CLSID\\{E53269FA-8A5C-42B0-B3BC-82254F4FCED4}"));	RegDeleteKey(HKEY_CLASSES_ROOT, strPxStubCLSID + _T("\\InProcServer32"));	RegDeleteKey(HKEY_CLASSES_ROOT, strPxStubCLSID);	// unregister COM Server	strPath = strDir;	strPath += _T("\\jeditsrv.exe");	RegisterEXE(strPath, FALSE);	CheckUnregisterCtxMenu();	// delete HKEY_CLASSES_ROOT\JEdit.JEditLauncher  and interface key if nothing is left	HKEY hLauncherKey;	if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_CLASSES_ROOT, _T("JEdit.JEditLauncher"),		0, KEY_ALL_ACCESS, &hLauncherKey))	{		RegDeleteKey(hLauncherKey, _T("CLSID"));		RegDeleteKey(hLauncherKey, _T("CurVer"));		RegCloseKey(hLauncherKey);		RegDeleteKey(HKEY_CLASSES_ROOT, _T("JEdit.JEditLauncher"));	}	CString strInterfaceKey(_T("Interface\\{E53269FA-8A5C-42B0-B3BC-82254F4FCED4}"));	if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_CLASSES_ROOT, strInterfaceKey,		0, KEY_ALL_ACCESS, &hLauncherKey))	{		RegDeleteKey(hLauncherKey, _T("NumMethods"));		RegDeleteKey(hLauncherKey, _T("ProxyStubClsid"));		RegDeleteKey(hLauncherKey, _T("ProxyStubClsid32"));		RegDeleteKey(hLauncherKey, _T("TypeLib"));		RegCloseKey(hLauncherKey);		RegDeleteKey(HKEY_CLASSES_ROOT, strInterfaceKey);	}	return S_OK;}HRESULT JELRegistryInstaller::UnregisterCmdLineParameters(){	HKEY hKey;	// delete command line parameters and any empty parent keys	CString strLauncherParamKey((LPCSTR)IDS_REG_LAUNCHER_PARAM_KEY);	int nResult = RegOpenKeyEx(HKEY_CURRENT_USER, strLauncherParamKey,		0, KEY_ALL_ACCESS,  &hKey);	if(nResult == ERROR_SUCCESS)	{		CString strVersion(pData->strInstallVersion);		RegDeleteKey(hKey, strVersion);		DWORD dwSubkeys;		RegQueryInfoKey(hKey, 0, 0, 0, &dwSubkeys, 0, 0, 0, 0, 0, 0, 0);		if(dwSubkeys == 0)		{			RegCloseKey(hKey);			if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER,				_T("Software\\www.jedit.org"), 0, KEY_ALL_ACCESS, &hKey))			{				RegDeleteKey(hKey, _T("jEditLauncher"));				RegQueryInfoKey(hKey, 0, 0, 0, &dwSubkeys, 0, 0, 0, 0, 0, 0, 0);				if(dwSubkeys == 0)				{					RegCloseKey(hKey);					if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER,						_T("Software"), 0, KEY_ALL_ACCESS, &hKey))					{						RegDeleteKey(hKey, _T("www.jedit.org"));					}				}			}		}	}	RegCloseKey(hKey);	return S_OK;}// Unregisters ctx menu handler if the current version is installedHRESULT JELRegistryInstaller::CheckUnregisterCtxMenu(){	// first get the CLSID of the installed handler	CString strCtxMenuKey((LPCSTR)IDS_REG_CTXMENU_KEY);	CString strCurCtxMenuCLSID;	HKEY hCtxMenuKey;	int nResult = RegOpenKeyEx(HKEY_CLASSES_ROOT, strCtxMenuKey, 0,		KEY_ALL_ACCESS, &hCtxMenuKey);	if(nResult == ERROR_SUCCESS)	{		CStringBuf<>buf(strCurCtxMenuCLSID);		DWORD dwlength = buf * sizeof(TCHAR);		nResult = RegQueryValueEx(hCtxMenuKey, 0, 0, 0,			(LPBYTE)buf, &dwlength);	}	RegCloseKey(hCtxMenuKey);	// now get the path to the handler module from the CLSID	CString strCurCtxMenuPath;	CString strServerKey(_T("CLSID\\"));	strServerKey += strCurCtxMenuCLSID;	strServerKey += _T("\\InprocServer32");	nResult = RegOpenKeyEx(HKEY_CLASSES_ROOT, strServerKey, 0,		KEY_ALL_ACCESS, &hCtxMenuKey);	if(nResult == ERROR_SUCCESS)	{		CStringBuf<>buf(strCurCtxMenuPath);		DWORD dwlength = buf * sizeof(TCHAR);		nResult = RegQueryValueEx(hCtxMenuKey, 0, 0, 0,			(LPBYTE)buf, &dwlength);	}	RegCloseKey(hCtxMenuKey);	// NOTE: Ctx menu now always installed	// now compare the installed handler's path to	// the path in this version and delete the key if they match//	CString strPath(pData->arPathNames[pData->nIndexSubjectVer]);//	strPath += _T("\\jeshlstb.dll");//	TCHAR szInstalledPath[MAX_PATH], szCurPath[MAX_PATH];//	GetShortPathName(strCurCtxMenuPath, szInstalledPath, MAX_PATH);//	GetShortPathName(strPath, szCurPath, MAX_PATH);//	HRESULT hr = S_OK;//	if(_tcsicmp(szInstalledPath, szCurPath) == 0)//	{		RegDeleteKey(HKEY_CLASSES_ROOT, strCtxMenuKey);		RegisterDLL(strCurCtxMenuPath, FALSE);//	}//	else hr = S_FALSE;	return S_OK;}HRESULT JELRegistryInstaller::SendMessage(LPVOID p){	p;	return E_NOTIMPL;}LONG JELRegistryInstaller::RegCopyKey(HKEY SrcKey, HKEY TrgKey, TCHAR* TrgSubKeyName){	HKEY	SrcSubKey;	HKEY	TrgSubKey;	int	ValEnumIndx=0;	int	KeyEnumIndx=0;	char	ValName[MAX_PATH+1];	char	KeyName[MAX_PATH+1];	DWORD	size;	DWORD	VarType;	LONG     nResult;	DWORD	KeyDisposition;	FILETIME LastWriteTime;	CString strBuffer;	// create target key	nResult = RegCreateKeyEx(TrgKey, TrgSubKeyName, NULL, NULL,		REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &TrgSubKey,		&KeyDisposition);	if(nResult != ERROR_SUCCESS)		return nResult;	do {		do {			// read value from source key			CStringBuf<1024> buffer(strBuffer);			ULONG buffSize = (ULONG)buffer.Size();			size=MAX_PATH+1;			nResult = RegEnumValue(SrcKey, ValEnumIndx, ValName, &size,				NULL, &VarType, buffer, &buffSize);			// done copying this key			if (nResult == ERROR_NO_MORE_ITEMS)			{				nResult = ERROR_SUCCESS;				break;			}			if(nResult != ERROR_SUCCESS)				break;			// write value to target key			nResult = RegSetValueEx(TrgSubKey, ValName, NULL, VarType,				buffer, buffSize);			if(nResult != ERROR_SUCCESS)				break;			// read next value			ValEnumIndx++;		} while (nResult == ERROR_SUCCESS);		// if copying under the same key avoid endless recursions		TCHAR TrgSubKeyNameRoot[1024];		do {			// enum sub keys			size=MAX_PATH+1;			nResult = RegEnumKeyEx(SrcKey, KeyEnumIndx++, KeyName, &size,				NULL, NULL, NULL, &LastWriteTime);			lstrcpyn(TrgSubKeyNameRoot, TrgSubKeyName, lstrlen(TrgSubKeyName) + 1);		} while ((SrcKey == TrgKey) &&			(nResult == ERROR_SUCCESS) &&			!lstrcmpi(KeyName, TrgSubKeyNameRoot));		// done copying this key		if (nResult == ERROR_NO_MORE_ITEMS)			break;		// unknown error return		if (nResult != ERROR_SUCCESS)			break;		// open the source subkey		InstallerLog::Log(Debug, "Opening sub key %s\n", KeyName);		nResult = RegOpenKeyEx(SrcKey, KeyName, NULL, KEY_ALL_ACCESS,			&SrcSubKey);		if(nResult != ERROR_SUCCESS)			break;		// recurs with the subkey		nResult  = RegCopyKey(SrcSubKey, TrgSubKey, KeyName);		if(nResult != ERROR_SUCCESS)			break;		nResult = RegCloseKey(SrcSubKey);		if(nResult != ERROR_SUCCESS)			break;	} while (true);	RegCloseKey(TrgSubKey);	if (nResult == ERROR_NO_MORE_ITEMS)		return ERROR_SUCCESS;	else		return nResult;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本在线看| 国产91丝袜在线播放| 久久99精品国产麻豆不卡| 国产成人精品亚洲777人妖| 91久久精品一区二区| 久久综合九色综合97婷婷女人 | 亚洲欧洲av在线| 日本午夜一本久久久综合| jlzzjlzz欧美大全| 欧美va日韩va| 日韩激情视频在线观看| 91香蕉视频在线| 国产欧美一区二区精品性色超碰 | 久久久美女艺术照精彩视频福利播放| 中文字幕在线观看一区二区| 精品一区在线看| 在线综合+亚洲+欧美中文字幕| 综合色天天鬼久久鬼色| 日本v片在线高清不卡在线观看| 色8久久人人97超碰香蕉987| 国产精品久久99| 成人国产精品免费网站| www激情久久| 极品美女销魂一区二区三区免费| 欧美精品久久久久久久久老牛影院 | 99视频精品全部免费在线| 欧美本精品男人aⅴ天堂| 天堂影院一区二区| 在线日韩av片| 一区二区三区在线播| 91麻豆免费视频| 中文字幕五月欧美| 一本一道综合狠狠老| 国产精品国产三级国产普通话三级| 国产经典欧美精品| 国产日韩欧美电影| 国产91露脸合集magnet| 国产精品丝袜91| 国产91精品在线观看| 国产精品久久久久久久久搜平片 | 国产精品丝袜91| av不卡在线观看| 亚洲综合色视频| 精品视频在线视频| 亚洲h在线观看| 欧美一区二区在线观看| 麻豆91在线播放免费| 日韩视频在线你懂得| 狠狠色丁香九九婷婷综合五月| 欧美精品一区二区不卡| 成人永久免费视频| 亚洲视频图片小说| 欧美精品乱码久久久久久| 秋霞av亚洲一区二区三| ww亚洲ww在线观看国产| 成人天堂资源www在线| 一区二区三区在线看| 日韩视频一区二区在线观看| 国产aⅴ综合色| 亚洲综合色自拍一区| 日韩丝袜美女视频| eeuss鲁片一区二区三区在线观看| 亚洲婷婷综合色高清在线| 欧美视频第二页| 精品写真视频在线观看| 亚洲欧洲精品成人久久奇米网| 日本韩国欧美国产| 精久久久久久久久久久| 欧美高清一级片在线观看| 色综合中文字幕国产 | 久久精品免费观看| 国产精品欧美一区喷水| 欧美精品1区2区3区| 国产美女久久久久| 洋洋av久久久久久久一区| 欧美成va人片在线观看| 一本大道久久a久久综合| 久久精品久久综合| 亚洲天堂中文字幕| 2021久久国产精品不只是精品| 不卡一区在线观看| 美女久久久精品| 亚洲一区二区三区四区五区中文 | 免费在线一区观看| 国产精品久久久久久久午夜片| 91精品在线观看入口| 国产不卡在线播放| 蜜臀久久99精品久久久久久9| 17c精品麻豆一区二区免费| 欧美成人a∨高清免费观看| 欧美日韩一区二区三区视频| 99久久国产免费看| 国产成人在线视频播放| 蜜臀久久久99精品久久久久久| 一区二区三区在线免费视频| 欧美激情资源网| 精品美女被调教视频大全网站| 在线视频欧美区| 99久久99久久精品免费看蜜桃| 国产一区视频在线看| 青椒成人免费视频| 亚洲国产精品久久人人爱| 中文字幕一区二区三区色视频| 欧美国产乱子伦 | 在线播放/欧美激情| 成人高清伦理免费影院在线观看| 久久se精品一区二区| 日韩中文字幕亚洲一区二区va在线| 亚洲精品国产无套在线观| 国产精品视频一二| 国产精品视频yy9299一区| 久久久久久99久久久精品网站| 欧美成人福利视频| 日韩精品一区二区三区中文精品 | 欧美色网站导航| 色婷婷久久久久swag精品 | 久久精品二区亚洲w码| 性做久久久久久免费观看欧美| 亚洲一区二区三区四区的| 亚洲影视资源网| 香蕉久久夜色精品国产使用方法 | 国产精品视频免费看| 日本一区二区三级电影在线观看| 久久精品这里都是精品| 国产欧美一区二区三区在线看蜜臀 | 色综合 综合色| 色噜噜偷拍精品综合在线| 色婷婷久久99综合精品jk白丝| jlzzjlzz亚洲女人18| 色噜噜狠狠成人网p站| 色狠狠一区二区三区香蕉| 在线观看一区二区视频| 91精品国产福利在线观看| 精品剧情在线观看| 国产三级精品视频| 亚洲婷婷国产精品电影人久久| 亚洲一区二区三区四区中文字幕 | 亚洲国产wwwccc36天堂| 亚洲成人av一区二区三区| 免费成人性网站| 丁香天五香天堂综合| 91高清视频免费看| 91精品国产麻豆国产自产在线| 国产日产欧美一区二区三区| 一色屋精品亚洲香蕉网站| 亚洲国产aⅴ天堂久久| 久久av老司机精品网站导航| proumb性欧美在线观看| 欧美精选一区二区| 国产午夜精品一区二区三区四区| 成人免费视频在线观看| 蜜桃av一区二区| av在线一区二区| 日韩精品一区二区三区视频| 国产精品久久久久久久久免费丝袜| 一区二区三区电影在线播| 蜜臀久久99精品久久久久久9| 成人精品视频.| 911精品国产一区二区在线| 国产日韩欧美亚洲| 免费av网站大全久久| www.亚洲在线| 精品粉嫩超白一线天av| 一区二区三区欧美视频| 国产自产2019最新不卡| 欧美日韩国产小视频| 中文字幕在线视频一区| 日本aⅴ免费视频一区二区三区| 国产sm精品调教视频网站| 日韩一区二区中文字幕| 亚洲国产一区二区三区| 高清不卡在线观看av| 日韩一卡二卡三卡| 亚洲午夜在线视频| 95精品视频在线| 欧美国产精品一区二区三区| 美腿丝袜亚洲色图| 欧美久久久久久久久| 亚洲狠狠丁香婷婷综合久久久| 国产精品一区二区三区四区| 91精品久久久久久久99蜜桃| 亚洲精品v日韩精品| av电影天堂一区二区在线| 国产日韩av一区二区| 国内成人精品2018免费看| 欧美精品tushy高清| 亚洲午夜激情av| 91同城在线观看| 欧美国产日韩a欧美在线观看 | 成人免费观看视频| 精品久久久久久久一区二区蜜臀| 天堂影院一区二区| 欧美精品一二三四| 亚洲动漫第一页| 在线精品国精品国产尤物884a| 日韩码欧中文字| 色综合中文字幕| 亚洲综合在线电影| 欧美性xxxxxx少妇| 亚洲福利国产精品|