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

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

?? pkgadmindlg.cpp

?? ecos實(shí)時(shí)嵌入式操作系統(tǒng)
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	const std::vector<std::string>& packages = m_CdlPkgData->get_packages ();	for (std::vector<std::string>::const_iterator package = packages.begin (); package != packages.end (); package++)	{		// add a package node		TRACE (_T("Adding package %s:"), CString (package->c_str ()));		HTREEITEM hPackage = m_ctrlPackageTree.InsertItem (CString (m_CdlPkgData->get_package_aliases (*package) [0].c_str ()));		m_ctrlPackageTree.SetItemData (hPackage, (DWORD) new CString (package->c_str ()));		m_ctrlPackageTree.SetItemImage (hPackage, 0, 0);		const std::vector<std::string>& versions = m_CdlPkgData->get_package_versions (* package);		for (std::vector<std::string>::const_iterator version = versions.begin (); version != versions.end (); version++)		{			// add a version node			TRACE (_T(" %s"), CString (version->c_str ()));			const HTREEITEM hVersion = m_ctrlPackageTree.InsertItem (CString (version->c_str ()), hPackage);			m_ctrlPackageTree.SetItemImage (hVersion, 1, 1);		}		TRACE (_T("\n"));		m_ctrlPackageTree.SortChildren (hPackage); // sort the version nodes	}	m_ctrlPackageTree.SortChildren (NULL); // sort the package nodes  if(this==AfxGetApp()->m_pMainWnd){ // if the dialog is the application	  // update the caption bar	  CString strCaption (m_strRepository);	  strCaption.Replace (_TCHAR('/'), _TCHAR('\\'));	  strCaption += _T(" - eCos Package Administration Tool");	  SetWindowText (strCaption);  }	return true;}void CPkgAdminDlg::OnPkgadminRemove() {	const HTREEITEM hTreeItem = m_ctrlPackageTree.GetSelectedItem ();	if (! hTreeItem)		return;	if (IDYES != CWnd::MessageBox (_T("The selected package will be deleted from the repository. Core eCos packages may be restored only by reinstalling eCos.\n\nDo you wish to continue?"),		_T("Remove Package"), MB_YESNO | MB_ICONEXCLAMATION))		return;	const CString * pstrPackage = (const CString *) m_ctrlPackageTree.GetItemData (hTreeItem);	if (pstrPackage) // if a package node is selected	{		// remove all package version nodes		bool bStatus = true;		HTREEITEM hChildItem = m_ctrlPackageTree.GetChildItem (hTreeItem);		while (hChildItem && bStatus)		{			const HTREEITEM hNextChildItem = m_ctrlPackageTree.GetNextSiblingItem (hChildItem);						bStatus = RemovePackageVersion (hChildItem);			hChildItem = hNextChildItem;		}		// remove the package node		if (bStatus)		{			delete pstrPackage;			m_ctrlPackageTree.DeleteItem (hTreeItem);		}	}	else // a version node is selected	{		// remove the version node		const HTREEITEM hParentItem = m_ctrlPackageTree.GetParentItem (hTreeItem);		ASSERT (hParentItem);		if (RemovePackageVersion (hTreeItem) && ! m_ctrlPackageTree.ItemHasChildren (hParentItem)) // if the only version was deleted		{			// remove the package node			delete pstrPackage;			m_ctrlPackageTree.DeleteItem (hParentItem); 		}	}}void CPkgAdminDlg::ClearPackageTree(){	HTREEITEM hPackage = m_ctrlPackageTree.GetRootItem ();	if (! hPackage) // if no packages in the tree...		return;     // ...nothing to do	while (hPackage)	{		const HTREEITEM hNextPackage = m_ctrlPackageTree.GetNextSiblingItem (hPackage);		TRACE (_T("Deleting package %s\n"), * ((CString *) m_ctrlPackageTree.GetItemData (hPackage)));		delete (CString *) m_ctrlPackageTree.GetItemData (hPackage);		m_ctrlPackageTree.DeleteItem (hPackage);		hPackage = hNextPackage;	}}void CPkgAdminDlg::OnDestroy() {	CeCosDialog::OnDestroy();		// free memory allocated to the tree item data CStrings	ClearPackageTree ();	// free memory allocated to the CDL database	if (m_CdlPkgData)		delete m_CdlPkgData;}void CPkgAdminDlg::OnPkgadminAdd() {	CFileDialog dlg (TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT, _T("eCos Package Files (*.epk)|*.epk||"), GetParent ());	TCHAR szBuffer [MAX_PATH * 16] = _T("");	dlg.m_ofn.lpstrFile = szBuffer;	dlg.m_ofn.nMaxFile = MAX_PATH * 16;	dlg.m_ofn.lpstrTitle = _T("Open eCos Package Files");	if (IDOK == dlg.DoModal ())	{		bool bRepositoryChanged = false;		POSITION posPathName = dlg.GetStartPosition ();		while (posPathName)		{			// get an eCos package distribution file			CString strPathName = dlg.GetNextPathName (posPathName);			// extract the licence file			CString strCommand;			strCommand.Format (_T("add %s --extract_license"), strPathName);			strCommand.Replace (_TCHAR('\\'), _TCHAR('/')); // backslashes -> forward slashes for Tcl_EvalFile			EvalTclFile (3, strCommand);			CString strLicenseFile = m_strRepository + _T("/pkgadd.txt");			strLicenseFile.Replace (_TCHAR('/'), _TCHAR('\\')); // forward slashes -> backslashes for Win32			// read the license file			CFile fileLicenseFile;			if (fileLicenseFile.Open (strLicenseFile, CFile::modeRead))			{				TRACE (_T("License file found at %s\n"), strLicenseFile);				const DWORD dwLicenseLength = fileLicenseFile.GetLength ();				char * pszBuffer = new char [dwLicenseLength + 1]; // allocate a buffer				fileLicenseFile.Read (pszBuffer, dwLicenseLength);				fileLicenseFile.Close ();				CFile::Remove (strLicenseFile); // delete the license file when read				pszBuffer [dwLicenseLength] = NULL; // terminate the string in the buffer				CString strLicenseText (pszBuffer); // copy into a CString to convert to Unicode				delete [] pszBuffer;				if (-1 == strLicenseText.Find (_T("\r\n"))) // if the file has LF line endings...					strLicenseText.Replace (_T("\n"), _T("\r\n")); // ... replace with CRLF line endings				// display the license text				CPkgAdminLicenseDlg dlgLicense (this);				dlgLicense.m_strLicense = strLicenseText;				dlgLicense.SetCaption (strPathName + _T(" - Add Packages"));				if (IDOK != dlgLicense.DoModal ()) // if license not accepted by user					continue; // try the next file			}			// add the contents of the package distribution file			strCommand.Format (_T("add %s --accept_license"), strPathName);			strCommand.Replace (_TCHAR('\\'), _TCHAR('/')); // backslashes -> forward slashes for Tcl_EvalFile			if (! EvalTclFile (3, strCommand))  // if not successful				continue; // try the next file			bRepositoryChanged = true;		}		// refresh the package tree only if necessary		if (bRepositoryChanged && ! PopulatePackageTree (m_strRepository))			DestroyWindow ();	}}bool CPkgAdminDlg::EvalTclFile(int nArgc, LPCTSTR pszArgv){	CPkgAdminTclWaitDlg dlgWait;	TRACE (_T("Evaluating ecosadmin.tcl %s\n"), pszArgv);	// set up the data structure which is passed to the Tcl thread	CString strArgc;	strArgc.Format (_T("%d"), nArgc);	std::string argv0 = UnicodeToStdStr (m_strRepository) + "/ecosadmin.tcl";	std::string argv = UnicodeToStdStr (pszArgv);	std::string argc = UnicodeToStdStr (strArgc);	dlgWait.etsInfo.argv0 = (char *) argv0.c_str ();	dlgWait.etsInfo.argv = (char *) argv.c_str ();	dlgWait.etsInfo.argc = (char *) argc.c_str ();	// display the 'please wait' dialog	// the Tcl command is invoked from CPkgAdminTclWaitDlg::OnCreate()	CWaitCursor curWait;	dlgWait.DoModal ();	curWait.Restore ();	// retrieve status information from the data structure	int nStatus = dlgWait.etsInfo.status;	CString strErrorMessage (dlgWait.etsInfo.result);	// report any error	if (! strErrorMessage.IsEmpty ())	{		AfxMessageBox (_T("Command execution error:\n\n") + strErrorMessage);		return false;	}	else if (TCL_OK != nStatus)	{		AfxMessageBox (_T("Command execution error"));		return false;	}	return true;}bool CPkgAdminDlg::RemovePackageVersion(HTREEITEM hTreeItem){	const HTREEITEM hParentItem = m_ctrlPackageTree.GetParentItem (hTreeItem);	ASSERT (hParentItem);	CString * pstrPackage = (CString *) m_ctrlPackageTree.GetItemData (hParentItem);	ASSERT (pstrPackage);	CString strCommand;	strCommand.Format (_T("remove %s --version %s"), * pstrPackage, m_ctrlPackageTree.GetItemText (hTreeItem));	if (! EvalTclFile (3, strCommand)) // if not successful		return false;		m_ctrlPackageTree.DeleteItem (hTreeItem); // remove the selected item from the tree	return true;}void CPkgAdminDlg::OnPkgadminRepository() {	CFileDialog dlg (TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST, _T("eCos Package Database Files (ecos.db)|ecos.db||"), GetParent ());	dlg.m_ofn.lpstrTitle = _T("Open eCos Package Database File");	int nStatus;	do	{		nStatus = dlg.DoModal ();		if (IDOK == nStatus)		{			const CString strPathName = dlg.GetPathName ();			const int nPathNameIndex = strPathName.ReverseFind (_TCHAR('\\'));			ASSERT (nPathNameIndex != -1);			m_strRepository = strPathName.Mid (0, nPathNameIndex);			m_strRepository.Replace (_TCHAR('\\'), _TCHAR('/'));		}	}	while ((IDOK == nStatus) && ! PopulatePackageTree (m_strRepository));}void CPkgAdminDlg::OnSelchangedPkgadminTree(NMHDR*, LRESULT* pResult) {	//NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;	// enable the remove button only if a node is selected	m_btnRemove.EnableWindow (NULL != m_ctrlPackageTree.GetSelectedItem ());	*pResult = 0;}std::string CPkgAdminDlg::UnicodeToStdStr(LPCTSTR str){	int nLength = 1 + _tcslen (str);	char * pszString = new char [nLength];	#ifdef _UNICODE	WideCharToMultiByte (CP_ACP, 0, str, -1, pszString, nLength, NULL, NULL);	#else	strcpy (pszString, str);	#endif	std::string stdstr = std::string (pszString);	delete [] pszString;	return stdstr;}bool CPkgAdminDlg::FindUserToolsPath(){	HKEY hKey;	if (ERROR_SUCCESS != RegOpenKeyEx (HKEY_CURRENT_USER, _T("Software\\Red Hat\\eCos\\Configuration Tool\\User Tools"), 0, KEY_READ, &hKey))		return false;		TCHAR szBuffer [MAX_PATH + 1];	DWORD dwBufferLength = MAX_PATH + 1;	LONG lStatus = RegQueryValueEx (hKey, _T("Folder"), NULL, NULL, (LPBYTE) szBuffer, &dwBufferLength);	RegCloseKey (hKey);	if (ERROR_SUCCESS != lStatus)		return false;	m_strUserTools = szBuffer;	TRACE (_T("User tools found at %s\n"), m_strUserTools);	return ! m_strUserTools.IsEmpty ();}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99国产精品免费| 国产日本欧美一区二区| 欧美日本韩国一区| 精品国产污网站| 亚洲欧美激情一区二区| 美女精品一区二区| 91亚洲精华国产精华精华液| 亚洲综合色噜噜狠狠| 五月天激情综合网| 国产a视频精品免费观看| 欧美私模裸体表演在线观看| 久久久无码精品亚洲日韩按摩| 一个色综合av| av一区二区不卡| 欧美一卡二卡三卡| 亚洲精品欧美二区三区中文字幕| 国产一区二区三区香蕉| 91精品视频网| 亚洲不卡在线观看| 色婷婷国产精品| 欧美激情综合网| 国精产品一区一区三区mba桃花| 8v天堂国产在线一区二区| 久久精品国产色蜜蜜麻豆| 666欧美在线视频| 国产精品一线二线三线| www国产亚洲精品久久麻豆| 成人av免费在线播放| 久久久国产精华| 色综合中文字幕| 亚洲色图一区二区| 91亚洲精品久久久蜜桃网站| 五月婷婷综合激情| 国产区在线观看成人精品| 色综合天天综合给合国产| 免费观看在线色综合| 91精品国产综合久久香蕉麻豆| 国内精品嫩模私拍在线| 亚洲欧美日韩国产成人精品影院| 91精品国产综合久久精品麻豆| 国产精品一区二区免费不卡| 一级做a爱片久久| 国产亚洲精品久| 丁香桃色午夜亚洲一区二区三区 | 麻豆精品国产传媒mv男同 | 欧美激情资源网| 欧美日韩免费一区二区三区视频 | 欧美一区二区久久| av网站免费线看精品| 麻豆成人久久精品二区三区小说| 成人免费小视频| 色域天天综合网| 国产麻豆91精品| 三级欧美韩日大片在线看| 日韩欧美国产一二三区| 国产主播一区二区| 日韩一区精品字幕| 亚洲精品成人在线| 国产精品丝袜91| 欧美在线视频日韩| 日本强好片久久久久久aaa| 日韩视频永久免费| 成人午夜激情片| 麻豆国产精品777777在线| 亚洲成人免费视频| 亚洲精品免费看| 一区在线观看视频| 中文字幕人成不卡一区| 国产日韩欧美精品在线| 精品福利二区三区| 日韩欧美电影一区| 日韩欧美国产高清| 91精品国产欧美一区二区成人| 欧美亚洲综合一区| 在线国产亚洲欧美| 色综合中文字幕国产| 国产精品亚洲成人| 国产精品一区二区久激情瑜伽| 久久国产精品第一页| 美女www一区二区| 久久成人久久爱| 国内精品国产成人国产三级粉色 | 色一情一乱一乱一91av| 99久久综合狠狠综合久久| 成人国产免费视频| 99麻豆久久久国产精品免费| 波多野结衣精品在线| aa级大片欧美| 色哟哟欧美精品| 欧美日韩免费在线视频| 91麻豆精品国产自产在线| 欧美一区二区三区视频免费| 日韩一级片网站| 久久亚洲精精品中文字幕早川悠里| 26uuu欧美日本| 国产精品午夜在线观看| 亚洲欧美影音先锋| 一区二区高清在线| 日韩福利视频网| 国产一区二区调教| 97精品久久久久中文字幕| 精品一区二区三区免费毛片爱 | 极品尤物av久久免费看| 国产91丝袜在线观看| 99久久国产免费看| 欧美人动与zoxxxx乱| 精品精品国产高清a毛片牛牛 | 久久亚洲一区二区三区四区| 国产网红主播福利一区二区| 亚洲欧美日韩成人高清在线一区| 香蕉加勒比综合久久| 狠狠狠色丁香婷婷综合久久五月| 成人永久aaa| 欧美性生活大片视频| 欧美xingq一区二区| 91麻豆精品国产91久久久久久久久 | 色狠狠一区二区三区香蕉| 丁香另类激情小说| 欧美视频精品在线观看| 欧美不卡123| 综合分类小说区另类春色亚洲小说欧美| 一区二区三区日本| 麻豆视频观看网址久久| av电影在线观看一区| 欧美精品乱人伦久久久久久| 欧美日韩国产一二三| 久久综合色天天久久综合图片| 亚洲丝袜另类动漫二区| 麻豆精品一区二区| 91在线观看免费视频| 日韩欧美二区三区| 一区二区三区电影在线播| 国内不卡的二区三区中文字幕 | 中文字幕日本乱码精品影院| 午夜精品影院在线观看| www.欧美日韩国产在线| 欧美成人免费网站| 亚洲一区在线电影| 成人综合婷婷国产精品久久| 欧美一区三区二区| 一区二区三区中文字幕电影| 国产精品1024| 99久久99久久精品免费看蜜桃| 欧美一级午夜免费电影| 亚洲中国最大av网站| av成人老司机| 国产亚洲人成网站| 久久er精品视频| 欧美精品九九99久久| 亚洲精选视频在线| 懂色av一区二区三区免费看| 精品日本一线二线三线不卡 | 亚洲超碰精品一区二区| 97久久精品人人爽人人爽蜜臀| 久久久777精品电影网影网 | 国产精品美女久久久久久久| 久久se精品一区二区| 欧美一区二区女人| 日韩中文字幕不卡| 欧美日韩久久久| 99在线精品观看| 久久久电影一区二区三区| 蜜臀久久久久久久| 91精品国产色综合久久ai换脸 | 婷婷综合另类小说色区| 在线观看日韩精品| 一区二区三区不卡在线观看 | 国产精品久久久久久久久免费丝袜 | 99国产精品99久久久久久| 国产网红主播福利一区二区| 国内精品久久久久影院薰衣草 | 久久国产尿小便嘘嘘| 日韩欧美视频一区| 久久电影网电视剧免费观看| 在线电影国产精品| 日韩精品乱码免费| 欧美精品aⅴ在线视频| 天天综合色天天综合色h| 欧美怡红院视频| 亚洲影院免费观看| 欧美日韩精品一区二区三区四区| 亚洲国产综合视频在线观看| 国产一区91精品张津瑜| 精品国产91九色蝌蚪| 国产超碰在线一区| 亚洲三级电影全部在线观看高清| 成人av免费网站| 亚洲精品精品亚洲| 欧美美女一区二区三区| 蜜臀av性久久久久蜜臀av麻豆| 日韩精品一区二区三区四区视频| 国模冰冰炮一区二区| 国产精品嫩草99a| 欧美自拍偷拍一区| 视频一区中文字幕国产| 欧美不卡一区二区| aaa亚洲精品一二三区| 亚欧色一区w666天堂| 亚洲一级不卡视频| 日韩美女在线视频|