void CDfuFileMgrDlgExtract::OnCancel() { if (m_hFile!=0) STDFUFILES_CloseDFUFile(m_hFile); CDialog::OnCancel(); }
void CDfuFileMgrDlg::OnButtongenerate() { HANDLE hFile; TCHAR szFilters[]= "Dfu Files (*.dfu)|*.dfu|All Files (*.*)|*.*||"; WORD Vid, Pid, Bcd; CFileDialog* dlg; dlg = new CFileDialog(FALSE, _T("dfu"), _T("*.dfu"), OFN_CREATEPROMPT |OFN_PATHMUSTEXIST |OFN_OVERWRITEPROMPT, szFilters, this); UpdateData(TRUE); if (m_Vid.IsEmpty() || m_Pid.IsEmpty() || m_Bcd.IsEmpty() ) { AfxMessageBox("One of following element is empty. Please fill before continuing...\r\nVID, PID or Bcd Version"); return; } else if(m_Images.GetSize() == 0) { AfxMessageBox("Image list is empty. Please select an S19, Hex or bin file"); return; } if (dlg->DoModal()==IDOK) { char *dummy; Vid=(WORD)strtoul(m_Vid, &dummy, 16); Pid=(WORD)strtoul(m_Pid, &dummy, 16); Bcd=(WORD)strtoul(m_Bcd, &dummy, 16); if (STDFUFILES_CreateNewDFUFile((LPSTR)(LPCSTR)dlg->GetFileName(), &hFile, Vid, Pid, Bcd)==STDFUFILES_NOERROR) { for (int i=0;i<m_Images.GetSize();i++) { CString Tmp, Tmp1; HANDLE Image=(HANDLE)m_Images.GetAt(i); m_ListFiles.GetText(i, Tmp1); if (STDFUFILES_AppendImageToDFUFile(hFile, Image)==STDFUFILES_NOERROR) { Tmp.Format("Success for '%s' !",Tmp1); AfxMessageBox(Tmp); } else { Tmp.Format("Failure for '%s'...", Tmp1); AfxMessageBox(Tmp); } } STDFUFILES_CloseDFUFile(hFile); } } UpdateData(FALSE); }
void CDfuFileMgrDlgExtract::OnButtonopen() { TCHAR szFilters[]= "Dfu Files (*.dfu)|*.dfu|All Files (*.*)|*.*||"; char Path[MAX_PATH]; char Tmp[MAX_PATH]; char *pTmp; GetModuleFileName(NULL, Path, MAX_PATH); strrev(Path); pTmp = strchr(Path, '\\'); strrev(pTmp); lstrcpy(Tmp, pTmp); lstrcpy(Path, Tmp); lstrcat(Path, "*.dfu"); CFileDialog* dlg; dlg = new CFileDialog(TRUE, _T("dfu"), _T("*.dfu"), OFN_FILEMUSTEXIST, szFilters, this); UpdateData(TRUE); m_ListFiles.ResetContent(); if (dlg->DoModal()==IDOK) { BYTE Alts; WORD Vid; WORD Pid; WORD Bcd; if (m_hFile!=0) STDFUFILES_CloseDFUFile(m_hFile); if (STDFUFILES_OpenExistingDFUFile((LPSTR)(LPCSTR)dlg->GetPathName(), &m_hFile, &Vid, &Pid, &Bcd, &Alts) == STDFUFILES_NOERROR) { BYTE Alt; CString Tmp, Tmp1; m_Pid.Format("%04X", Pid); m_Vid.Format("%04X", Vid); m_Bcd.Format("%04X", Bcd); m_FileBaseName=dlg->GetPathName().Left(dlg->GetPathName().GetLength()-4); m_DfuFile = dlg->GetPathName(); UpdateData(FALSE); for (BYTE i=0;i<Alts;i++) { HANDLE Image; CString Tmp; if (STDFUFILES_ReadImageFromDFUFile(m_hFile, i, &Image)==STDFUFILES_NOERROR) { char Name[512]; STDFUFILES_GetImageAlternate(Image, &Alt); STDFUFILES_GetImageName(Image, Name); STDFUFILES_DestroyImage(&Image); Tmp.Format("Image for Target ID %02i", Alt); if (Name[0]!='\0') { Tmp+=" ("; Tmp+=Name; Tmp+=")"; } m_ListFiles.AddString(Tmp); } else { AfxMessageBox("Unable to read images in file..."); break; } if(m_ListFiles.GetCount()>0) m_ListFiles.SetCurSel(0); } } else AfxMessageBox("Error... Maybe bad or old file format"); } }