⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webcertmanpage.cpp

📁 MiniCA V2.0版本源码。《小型CA系统V2.1含源码》发表以来
💻 CPP
📖 第 1 页 / 共 3 页
字号:
					lpItemInfoi->SetImage(5);
					m_ListOne.InsertItem(m_ItemInfo[EKEYSUAGE], lpItemInfoi);
				}
				
				//添加好记名称
				lp = m_ListOne.GetData(m_ItemInfo[FRINEDNAME]);
				if(lp!=NULL)
				{
					lp->SetSubItemText(0, strFrendName);
					//m_ListOne.UpdateData(m_ItemInfo[FRINEDNAME], lp); //update internal nodes
				}
				iGetCurIndex = m_ListOne.GetCurIndex(m_ItemInfo[FRINEDNAME]);
				m_ListOne.SetItemText(iGetCurIndex, 1, strFrendName);
				
				//添加密钥长度
				lp = m_ListOne.GetData(m_ItemInfo[KEYLEN]);
				if(lp!=NULL)
				{
					lp->SetSubItemText(0, strKeyLen);
					//m_ListOne.UpdateData(m_ItemInfo[FRINEDNAME], lp); //update internal nodes
				}
				iGetCurIndex = m_ListOne.GetCurIndex(m_ItemInfo[KEYLEN]);
				m_ListOne.SetItemText(iGetCurIndex, 1, strKeyLen);
				
				//添加申请时间
				lp = m_ListOne.GetData(m_ItemInfo[INPUTIME]);
				if(lp!=NULL)
				{
					lp->SetSubItemText(0, strInputTime);
					//m_ListOne.UpdateData(m_ItemInfo[FRINEDNAME], lp); //update internal nodes
				}
				iGetCurIndex = m_ListOne.GetCurIndex(m_ItemInfo[INPUTIME]);
				m_ListOne.SetItemText(iGetCurIndex, 1, strInputTime);
				
				//添加有效期
				lp = m_ListOne.GetData(m_ItemInfo[CERTDAY]);
				if(lp!=NULL)
				{
					lp->SetSubItemText(0, strDay);
					//m_ListOne.UpdateData(m_ItemInfo[FRINEDNAME], lp); //update internal nodes
				}
				iGetCurIndex = m_ListOne.GetCurIndex(m_ItemInfo[CERTDAY]);
				m_ListOne.SetItemText(iGetCurIndex, 1, strDay);
				
				//添加证书类型
				lp = m_ListOne.GetData(m_ItemInfo[CERTYPE]);
				if(lp!=NULL)
				{
					lp->SetSubItemText(0, strCertType);
					//m_ListOne.UpdateData(m_ItemInfo[FRINEDNAME], lp); //update internal nodes
				}
				iGetCurIndex = m_ListOne.GetCurIndex(m_ItemInfo[CERTYPE]);
				m_ListOne.SetItemText(iGetCurIndex, 1, strCertType);
				
				//添加证书状态
				lp = m_ListOne.GetData(m_ItemInfo[CERTSTATE]);
				if(lp!=NULL)
				{
					lp->SetSubItemText(0, strCertState);
					lp->SetImage(uCertState);
					//m_ListOne.UpdateData(m_ItemInfo[FRINEDNAME], lp); //update internal nodes
					//m_ListOne.UpdateData(m_ItemInfo[FRINEDNAME], lp); //update internal nodes
				}
				iGetCurIndex = m_ListOne.GetCurIndex(m_ItemInfo[CERTSTATE]);
				
				lvItem.iItem = iGetCurIndex;
				lvItem.iImage = uCertState;
				
				m_ListOne.SetItem(&lvItem);				//更改图标
				m_ListOne.SetItemText(iGetCurIndex, 1, strCertState);
				
				
				//添加证书制作时间
				lp = m_ListOne.GetData(m_ItemInfo[MADETIME]);
				if(lp!=NULL)
				{
					lp->SetSubItemText(0, strMadeTime);
					//m_ListOne.UpdateData(m_ItemInfo[FRINEDNAME], lp); //update internal nodes
				}
				iGetCurIndex = m_ListOne.GetCurIndex(m_ItemInfo[MADETIME]);
				m_ListOne.SetItemText(iGetCurIndex, 1, strMadeTime);
				
				//添加证书作废时间
				lp = m_ListOne.GetData(m_ItemInfo[REVOKETIME]);
				if(lp!=NULL)
				{
					lp->SetSubItemText(0, strRevokeTime);
					//m_ListOne.UpdateData(m_ItemInfo[FRINEDNAME], lp); //update internal nodes
				}
				iGetCurIndex = m_ListOne.GetCurIndex(m_ItemInfo[REVOKETIME]);
				m_ListOne.SetItemText(iGetCurIndex, 1, strRevokeTime);
		}
		//m_ListOne处理******************************end*********************************
		m_pRs.MoveNext();
		
		if(m_pRs.IsEof())
			break;
	}
	if(!m_bIsSignleRec)
	{
		//m_List处理**********************
		//定位到当前记录nPageIndex
		if(!strUserId.IsEmpty())	//说明是页面切换,只有页面切换时候STRUSERID才不为空
		{
			LVFINDINFO info;
			info.flags = LVFI_STRING;
			info.psz = strUserId;
			nIndex = m_List.FindItem(&info);
		}
		if(nIndex != -1)
		{
			m_List.SetFocus();									//设置选中 2 - 1
			m_List.SetItemState(nIndex, LVIS_SELECTED, LVIS_SELECTED);  //设置选中 2 - 2
			m_List.SetSelectionMark(nIndex);
		}
		m_List.SetRedraw();
	}
	else
		m_ListOne.SetRedraw();
	}
	catch(CADOException & eAdo)
	{
		AddMsg(eAdo.GetErrorMessage(), M_ERROR);
		return;
	}
	m_Slider.SetFocus();

}

void CWebCertManPage::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	*pResult = 0;
}

void CWebCertManPage::OnDblclkListOne(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int nIndex = m_ListOne.GetSelectedItem();
	if(nIndex == -1)
		return;
	CSuperGridCtrl::CTreeItem * pItem = m_ListOne.GetTreeItem(nIndex);
	if(!pItem)
		return;

	BOOL bRedraw=0;
	if(m_ListOne.ItemHasChildren(pItem))
	{
		m_ListOne.SetRedraw(0);
		int nScrollIndex=0;
		if(m_ListOne.IsCollapsed(pItem))
		{		
			if(m_ListOne.OnItemExpanding(pItem, nIndex))
			{
				nScrollIndex = m_ListOne.Expand(pItem, nIndex);
				m_ListOne.OnItemExpanded(pItem, nIndex);
				bRedraw=1;
			}
		}	
		
		else 
		{
			if(m_ListOne.OnCollapsing(pItem))
			{
				m_ListOne.Collapse(pItem);
				m_ListOne.OnItemCollapsed(pItem);
				bRedraw=1;
			}
		}
		m_ListOne.SetRedraw(1);
		
		if(bRedraw)
		{
			CRect rc;
			m_ListOne.GetItemRect(nIndex,rc,LVIR_BOUNDS);
			m_ListOne.InvalidateRect(rc);
			m_ListOne.UpdateWindow();
			m_ListOne.EnsureVisible(nScrollIndex,1);
		}
	}//ItemHasChildren	
	*pResult = 0;
}

void CWebCertManPage::OnDestroy() 
{
	CPropertyPage::OnDestroy();
	
	// TODO: Add your message handler code here
	try
	{
		if(m_pDb.IsOpen())
			m_pDb.Close();
		if(m_pRs.IsOpen())
			m_pRs.Close();
	}
	catch(CADOException & eAdo)
	{
		AddMsg(eAdo.GetErrorMessage(), M_ERROR);
		return;
	}

}

void CWebCertManPage::AddMsg(CString info, DWORD type)
{
	((CMiniMainDlg *)AfxGetMainWnd())->AddMsg(MiniCT_0003,info, type);		//MiniCT_0003
}

void CWebCertManPage::AddList()
{
	CItemInfo* lpRoot = new CItemInfo();
	lpRoot->SetImage(0);
	lpRoot->SetItemText(_T(MiniCT_1108));	//MiniCT_1108
	m_pRootItem = m_ListOne.InsertRootItem(lpRoot);//previous on N.Y.P.D we call it CreateTreeCtrl(lp)
	if( m_pRootItem == NULL )
		return;
	
	CStringArray strArray;
	strArray.Add(MiniCT_1109);	//USERINFO 0					//MiniCT_1109
	strArray.Add(MiniCT_1110);	//KEYUSAGE 1					//MiniCT_1110 "密钥用途"
	strArray.Add(MiniCT_1111);	//EKEYSUAGE 2					//MiniCT_1111 "扩展用途"
	strArray.Add(MiniCT_1103);	//FRINEDNAME 3					//MiniCT_1103 "好记名称"
	strArray.Add(MiniCT_1101);	//KEYLEN 4						//MiniCT_1101 "密钥长度"
	strArray.Add(MiniCT_1106);	//INPUTIME 5					//MiniCT_1106 "申请时间"
	strArray.Add(MiniCT_1102);		//CERTDAY 6						//MiniCT_1102 "有效期"
	strArray.Add(MiniCT_1112);	//CERTYPE 7						//MiniCT_1112 "证书类型"
	strArray.Add(MiniCT_1113);		//CERTSTATE 8				//MiniCT_1113 "证书状态"
	strArray.Add(MiniCT_1114);		//MADETIME 9				//MiniCT_1114 "制作时间"
	strArray.Add(MiniCT_1115);		//REVOKETIME 10				//MiniCT_1115 "作废时间"
	
	for(int i = 0; i < ReqMaxEntry; i++)
	{
		CItemInfo* lpItemInfoi = new CItemInfo();
		lpItemInfoi->SetItemText(strArray[i]);
		if(i < FRINEDNAME)
		{
			lpItemInfoi->SetImage(4);	
		}
		else if(i!= 5 && i != 9 && i != 10)
			lpItemInfoi->SetImage(5);	
		else 
			lpItemInfoi->SetImage(6);	
		m_ItemInfo[i] = m_ListOne.InsertItem(m_pRootItem, lpItemInfoi, TRUE);
	}
}

void CWebCertManPage::OnBcview() 
{
	// TODO: Add your control notification handler code here
	m_bIsSignleRec = !m_bIsSignleRec;	
	if(m_bIsSignleRec)//多记录->单记录
	{
		GetDlgItem(IDC_LIST)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_LIST_ONE)->ShowWindow(SW_SHOW);
		int nIndex = m_List.GetSelectionMark();
		if(nIndex != -1)
		{
			//取得证书ID
			CString strID = m_List.GetItemText(nIndex, 0);
			if(!strID.IsEmpty())
			{
				CString strSql;
				strSql.Format("ID = %s", strID);
				try
				{
					m_pRs.FindFirst(strSql);
					_variant_t  var = m_pRs.GetBookFind();
					m_dCurrentPage = var.dblVal;
				}
				catch(CADOException & eAdo)
				{
					AddMsg(eAdo.GetErrorMessage(), M_ERROR);
					return;
				}

			}
		}
		else
		{
			m_dCurrentPage = 1;
		}
		GoToPage(m_dCurrentPage);

	}
	else//单记录->多记录
	{
		GetDlgItem(IDC_LIST_ONE)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_LIST)->ShowWindow(SW_SHOW);
		int iGetCurIndex = m_ListOne.GetCurIndex(m_pRootItem);
		CString strId = m_ListOne.GetItemText(iGetCurIndex, 0);
		
		if(strId.GetAt(0) >'0' && strId.GetAt(0) <= '9')	//说明为数字
		{
			CString strSql;
			strSql.Format("ID = %s", strId);
			UINT uIndex = 1;
			try
			{
				m_pRs.FindFirst(strSql);
				_variant_t  var = m_pRs.GetBookFind();
				if(var.vt)
					uIndex = var.dblVal;;
			}
			catch(CADOException & eAdo)
			{
				AddMsg(eAdo.GetErrorMessage(), M_ERROR);
				return;
			}

			m_dCurrentPage = (uIndex - 1)/Multi_RecodePerPage + 1;
			GoToPage(m_dCurrentPage, strId);
		}
	}
}

void CWebCertManPage::OnRclickList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	//判断是否选中证书
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	//判断当时选中几个证书
	UINT nSelect  =  m_List.GetSelectedCount();
	//得到序号值,如果不空认为选中证书
	CString strID = m_List.GetItemText(pNMListView->iItem,0);
	if(strID.IsEmpty())
	{
		//判断是否选中以作废证书
		//		CString strName = m_List.GetItemText(pNMListView->iItem, 0);
		//		if(strName == "已作废证书")
		{
			//			AfxMessageBox("黑名单");
		}
		return;
	}
	CPoint pt;
	GetCursorPos(&pt); // 当前鼠标坐标
	//	if(GetCount()<=0)
	//		return;
	BCMenu m_PopMenu;
	m_PopMenu.LoadMenu(IDR_MENU_WEBDBMEN);
	m_PopMenu.LoadToolbar(IDR_MINICAMENU);

	CLanguage::TranslateMenu(&m_PopMenu, MAKEINTRESOURCE(IDR_MENU_WEBDBMEN));

	CMenu * pPopup = m_PopMenu.GetSubMenu(0);
	SetForegroundWindow(); //点击可以关闭
	ASSERT(pPopup);
	if(nSelect > 1)
		pPopup->EnableMenuItem(ID_MENUITEM_VIEWCERT,MF_GRAYED | MF_BYCOMMAND);//如果选择多个,则屏蔽查看证书选择
	UINT nSelection = pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_VERTICAL|
		TPM_NONOTIFY|TPM_RETURNCMD,pt.x, pt.y,this, NULL);
	m_PopMenu.DestroyMenu();

	try
	{

		if(nSelection == ID_MENUITEM_MADECSR)//仅制作csr,条件,存在证书申请
		{
			MadeCsrOnly(strID);
		}
		else if(nSelection == ID_MENUITEM_MADE)//制作(当前考虑情况,重新制作,为加载CSR)
		{
			MadeCert(strID, m_pRs);
		}
		else if(nSelection == ID_MENUITEM_MARKCERT)//标记制作
		{
			MarkCert(strID);
		}
		else if(nSelection == ID_MENUITEM_MARKCANCLE)//取消标记
		{
			CancelMark(strID);
		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -