// 処理を行う。\r
{\r
ProcessDialog procDlg;\r
+ procDlg.fnArchive = & this->fnArchive;\r
+ procDlg.nFileCount = mkDlg.files.GetCount();\r
procDlg.Show(true);\r
\r
- // コールバックを送信。\r
- TPI_PROCESSINFO piInfo;\r
- piInfo.eMessage = TPI_MESSAGE_STATUS;\r
- piInfo.eStatus = 0x1000;\r
- piInfo.fiInfo.fnFileName = this->fnArchive;\r
- piInfo.fiInfo.nUnpackedSize = mkDlg.files.GetCount();\r
- procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
-\r
tpi.Command(TPI_COMMAND_CREATE, & swInfo, this->fnArchive.GetFullPath(), mkDlg.files);\r
this->ErrorCheck(tpi.nErrorCode);\r
procDlg.Show(false);\r
\r
// 進捗ダイアログ表示。\r
ProcessDialog procDlg;\r
- procDlg.Show(true);\r
+ procDlg.fnArchive = & this->fnArchive;\r
\r
// DnD以外で書庫を開く場合、TPIを読み込み。\r
TPI_PROCESSINFO piInfo;\r
if (! this->LoadTPI(this->fnArchive.GetFullPath(), & piInfo.fiInfo.nUnpackedSize))\r
{\r
- procDlg.Show(false);\r
tpi.FreeLibrary();\r
if (nMode == 2)\r
{\r
return;\r
}\r
\r
- // 最初のコールバックを送信。\r
- piInfo.eMessage = TPI_MESSAGE_STATUS;\r
- piInfo.eStatus = 0x1000;\r
- piInfo.nProcessedSize = 0;\r
- piInfo.fiInfo.fnFileName = this->fnArchive;\r
- procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
+ procDlg.nFileCount = piInfo.fiInfo.nUnpackedSize;\r
+ procDlg.Show(true);\r
\r
// 配列のサイズを確保。\r
this->fileinfo.Alloc(piInfo.fiInfo.nUnpackedSize);\r
wxTreeItemId\r
idRoot = this->tree_ctrl->AddRoot(wxEmptyString),\r
#ifdef __WINDOWS__\r
- idArchive = this->tree_ctrl->AppendItem(idRoot, piInfo.fiInfo.fnFileName.GetFullName(), g_hIconT.Add(GetFileTypeIcon(piInfo.fiInfo.fnFileName))),\r
+ idArchive = this->tree_ctrl->AppendItem(idRoot, this->fnArchive.GetFullName(), g_hIconT.Add(GetFileTypeIcon(piInfo.fiInfo.fnFileName))),\r
#else\r
- idArchive = this->tree_ctrl->AppendItem(idRoot, piInfo.fiInfo.fnFileName.GetFullName(), g_hIconT.Add(GetFileTypeIcon(piInfo.fiInfo.fnFileName).ConvertToImage().Rescale(16, 16))),\r
+ idArchive = this->tree_ctrl->AppendItem(idRoot, this->fnArchive.GetFullName(), g_hIconT.Add(GetFileTypeIcon(piInfo.fiInfo.fnFileName).ConvertToImage().Rescale(16, 16))),\r
#endif\r
idArcRoot = this->tree_ctrl->AppendItem(idRoot, wxT("-----"), 0, 1);\r
\r
// ファイル情報をロード。\r
if (tpi.GetFileInformation(& piInfo.fiInfo, true))\r
{\r
+ piInfo.eMessage = TPI_MESSAGE_STATUS;\r
piInfo.eStatus = 0x1001;\r
+ piInfo.nProcessedSize = 0;\r
do\r
{\r
piInfo.nProcessedSize++;\r
- if (this->ErrorCheck(procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo)) == TPI_CALLBACK_CANCEL)\r
+ if (this->ErrorCheck(procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo), wxT("Callback")) == TPI_CALLBACK_CANCEL)\r
{\r
procDlg.Show(false);\r
tpi.CloseArchive();\r
// 処理を行う。\r
{\r
ProcessDialog procDlg;\r
+ procDlg.fnArchive = & this->fnArchive;\r
+ procDlg.nFileCount = mkDlg.files.GetCount();\r
procDlg.Show(true);\r
\r
- // コールバックを送信。\r
- TPI_PROCESSINFO piInfo;\r
- piInfo.eMessage = TPI_MESSAGE_STATUS;\r
- piInfo.eStatus = 0x1000;\r
- piInfo.fiInfo.fnFileName = this->fnArchive;\r
- piInfo.fiInfo.nUnpackedSize = mkDlg.files.GetCount();\r
- procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
-\r
tpi.Command(TPI_COMMAND_ADD, & swInfo, this->fnArchive.GetFullPath(), mkDlg.files);\r
this->ErrorCheck(tpi.nErrorCode);\r
procDlg.Show(false);\r
// 処理を行う。\r
{\r
ProcessDialog procDlg;\r
+ procDlg.fnArchive = & this->fnArchive;\r
+ procDlg.nFileCount = mkDlg.files.GetCount();\r
procDlg.Show(true);\r
\r
- // コールバックを送信。\r
- TPI_PROCESSINFO piInfo;\r
- piInfo.eMessage = TPI_MESSAGE_STATUS;\r
- piInfo.eStatus = 0x1000;\r
- piInfo.fiInfo.fnFileName = this->fnArchive;\r
- piInfo.fiInfo.nUnpackedSize = mkDlg.files.GetCount();\r
- procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
-\r
tpi.Command(TPI_COMMAND_EXTRACT, & swInfo, this->fnArchive.GetFullPath(), mkDlg.files);\r
this->ErrorCheck(tpi.nErrorCode);\r
procDlg.Show(false);\r
\r
// 処理を行う。\r
{\r
- TPI_SWITCHES swInfo;\r
+ wxArrayString asFiles = MakeTargetFileList(this, false);\r
ProcessDialog procDlg;\r
+ procDlg.fnArchive = & this->fnArchive;\r
+ procDlg.nFileCount = asFiles.GetCount();\r
procDlg.Show(true);\r
- wxArrayString asFiles = MakeTargetFileList(this, false);\r
-\r
- // コールバックを送信。\r
- TPI_PROCESSINFO piInfo;\r
- piInfo.eMessage = TPI_MESSAGE_STATUS;\r
- piInfo.eStatus = 0x1000;\r
- piInfo.fiInfo.fnFileName = this->fnArchive;\r
- piInfo.fiInfo.nUnpackedSize = asFiles.GetCount();\r
- procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
\r
+ TPI_SWITCHES swInfo;\r
tpi.Command(TPI_COMMAND_DELETE, & swInfo, this->fnArchive.GetFullPath(), asFiles);\r
this->ErrorCheck(tpi.nErrorCode);\r
procDlg.Show(false);\r
void MainFrame::OnArcTest(wxCommandEvent&)\r
{\r
// 処理を行う。\r
+ wxArrayString asFiles = MakeTargetFileList(this, false);\r
ProcessDialog procDlg;\r
+ procDlg.fnArchive = & this->fnArchive;\r
+ procDlg.nFileCount = asFiles.GetCount();\r
procDlg.Show(true);\r
- wxArrayString asFiles = MakeTargetFileList(this, false);\r
-\r
- // コールバックを送信。\r
- TPI_PROCESSINFO piInfo;\r
- piInfo.eMessage = TPI_MESSAGE_STATUS;\r
- piInfo.eStatus = 0x1000;\r
- piInfo.fiInfo.fnFileName = this->fnArchive;\r
- piInfo.fiInfo.nUnpackedSize = asFiles.GetCount();\r
- procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
\r
TPI_SWITCHES swInfo;\r
bool bIsCorrect = tpi.Command(TPI_COMMAND_TEST, & swInfo, this->fnArchive.GetFullPath(), asFiles);\r
void MainFrame::OnArcRepair(wxCommandEvent&)\r
{\r
// 処理を行う。\r
+ wxArrayString asFiles = MakeTargetFileList(this, false);\r
ProcessDialog procDlg;\r
+ procDlg.fnArchive = & this->fnArchive;\r
+ procDlg.nFileCount = asFiles.GetCount();\r
procDlg.Show(true);\r
- wxArrayString asFiles = MakeTargetFileList(this, false);\r
-\r
- // コールバックを送信。\r
- TPI_PROCESSINFO piInfo;\r
- piInfo.eMessage = TPI_MESSAGE_STATUS;\r
- piInfo.eStatus = 0x1000;\r
- piInfo.fiInfo.fnFileName = this->fnArchive;\r
- piInfo.fiInfo.nUnpackedSize = asFiles.GetCount();\r
- procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
\r
TPI_SWITCHES swInfo;\r
tpi.Command(TPI_COMMAND_REPAIR, & swInfo, this->fnArchive.GetFullPath(), asFiles);\r