void CFormViewShellDoc::Serialize(CArchive& ar) { CString execArg; CFrameWnd * pWnd = (CFrameWnd*)AfxGetMainWnd(); if(pWnd == NULL) return; CFormViewShellView* pView = (CFormViewShellView*)pWnd->GetActiveView(); if (ar.IsStoring()) { // TODO: 여기에 저장 코드를 추가합니다. pView->GetDlgItemText(IDC_EDIT3, execArg); ar << execArg; pView->GetDlgItemText(IDC_EXEC_FILE, execArg); ar << execArg; pView->GetDlgItemText(IDC_SRC_FILE, execArg); ar << execArg; pView->GetDlgItemText(IDC_PATH, execArg); ar << execArg; pView->GetDlgItemText(IDC_EDIT4, execArg); ar << execArg; ar << pView->m_ExecFileName; ar << pView->m_PreCmdOptStr; int lbCnt = pView->m_ListBox_Out.GetCount(); ar << lbCnt; for(int lbIndex = 0; lbIndex < lbCnt; lbIndex++) { pView->m_ListBox_Out.GetText(lbIndex, execArg); ar << execArg; } ar << pView->m_Check_EnableErrPop.GetCheck(); //ITEMIDLIST t = pView->m_InputPathiIdList; // ar << pView->m_InputPathiIdList; // ar << pView->m_OutputPathiIdList; pView->GetDlgItemText(IDC_EDIT6, execArg); ar << execArg; pView->GetDlgItemText(IDC_EDIT7, execArg); ar << execArg; pView->GetDlgItemText(IDC_EDIT8, execArg); ar << execArg; int lbExFolderCnt = pView->m_ExFolderListBox.GetCount(); ar << lbExFolderCnt; for(int lbIndex = 0; lbIndex < lbExFolderCnt; lbIndex++) { pView->m_ExFolderListBox.GetText(lbIndex, execArg); ar << execArg; } // 멀티커맨드라인 강제 딜레이 pView->GetDlgItemText(IDC_EDIT_DELAY_TIME, execArg); ar << execArg; // 멀티커맨드라인 경로 저장 int lbTclFilesCnt = pView->m_TclFilesListBox.GetCount(); ar << lbTclFilesCnt; for(int lbIndex = 0; lbIndex < lbTclFilesCnt; lbIndex++) { //pView->m_SettingFilePath = ar.m_strFileName; CString tempFilePath = ar.m_strFileName; int i = tempFilePath.ReverseFind('\\');//실행 파일 이름을 지우기 위해서 왼쪽에 있는 '/'를 찾는다. CString currPath = tempFilePath.Right(tempFilePath.GetLength() - i); tempFilePath = m_tclFilePath + currPath; pView->m_TclFilesListBox.GetText(lbIndex, execArg); i = execArg.ReverseFind('\\');//실행 파일 이름을 지우기 위해서 왼쪽에 있는 '/'를 찾는다. execArg = execArg.Right(execArg.GetLength() - i);// 파일이름과 확장자만 얻는다. execArg = m_tclFilePath + execArg; ar << execArg; // 다중 쉘API 호출시 창 확대 ((CMainFrame*)(pWnd->GetActiveFrame()))->SetWindowPos(NULL,0,0,1300,700,SWP_NOMOVE); } // 멀티커맨드라인 체그박스저장 for(int lbIndex = 0; lbIndex < lbTclFilesCnt; lbIndex++) { ar << pView->m_TclFilesListBox.GetCheck(lbIndex);; } // 멀티커맨드라인라면 생략 if(lbTclFilesCnt){ // mtcl 창닫기 ar << pView->m_MTCL_ExitCheckBox.GetCheck(); }else{ // 하위폴더 검색 유무 ar << pView->m_ChkSubFolder.GetCheck(); // 결과리스트 보기 유무 ar << pView->m_ViewList.GetCheck(); // 빈폴더 제거 유무 ar << pView->m_EmptyFolderCheck.GetCheck(); // stcl 창닫기 ar << pView->m_ExitCheckBox.GetCheck(); } //===================== 저장할 데이터를 이하에 구현===================== } else { // TODO: 여기에 로딩 코드를 추가합니다. BOOL isEmpty = ar.IsBufferEmpty(); BOOL isMultiCommand = !(ar.m_strFileName.Right(5)).Compare(".mtcl"); pView->m_FirstLoaded = FALSE; ar >> execArg; pView->SetDlgItemText(IDC_EDIT3, execArg); ar >> execArg; pView->SetDlgItemText(IDC_EXEC_FILE, execArg); ar >> execArg; pView->SetDlgItemText(IDC_SRC_FILE, execArg); ar >> execArg; pView->SetDlgItemText(IDC_PATH, execArg); ar >> execArg; pView->SetDlgItemText(IDC_EDIT4, execArg); /*if(!execArg.IsEmpty()) pView->m_ExtName.SetCheck(TRUE); else pView->m_ExtName.SetCheck(FALSE); */ ar >> pView->m_ExecFileName; ar >> pView->m_PreCmdOptStr; int lbCnt = 0; ar >> lbCnt; pView->m_ListBox_Out.ResetContent(); for(int lbIndex = 0; lbIndex < lbCnt; lbIndex++) { ar >> execArg; pView->m_ListBox_Out.AddString(execArg); } pView->SetDlgItemText(IDC_EDIT5, pView->m_PreCmdOptStr); pView->DisplayCommand(FALSE); pView->m_FirstLoaded = TRUE; int nCheck = 0; ar >> nCheck; pView->m_Check_EnableErrPop.SetCheck(nCheck); pView->SetDlgItemText(IDC_EDIT6, ""); if(!ar.IsBufferEmpty()) { ar >> execArg; pView->SetDlgItemText(IDC_EDIT6, execArg); } pView->SetDlgItemText(IDC_EDIT7, ""); if(!ar.IsBufferEmpty()) { ar >> execArg; pView->SetDlgItemText(IDC_EDIT7, execArg); }