HRESULT CExtractCallbackConsole::ExtractResult(HRESULT result) { /* 追加ここから */ CProgressDialog* pDlg = g_StdOut.GetProgressDialog(); if (pDlg) { pDlg->SetCompleted(pDlg->GetTotalSize()); pDlg->SendExtractingInfo(ARCEXTRACT_END); } /* 追加ここまで */ if (result == S_OK) { (*OutStream) << endl; if (NumFileErrorsInCurrentArchive == 0) (*OutStream) << kEverythingIsOk << endl; else { NumArchiveErrors++; (*OutStream) << "Sub items Errors: " << NumFileErrorsInCurrentArchive << endl; } } if (result == S_OK) return result; // NumArchiveErrors++; // 削除 // if (result == E_ABORT || result == ERROR_DISK_FULL) // 削除 // return result; // 削除 /* 追加ここから */ if (result == E_ABORT || result == ERROR_PASSWORD_FILE) { NumArchiveErrors = 0; NumFileErrors = 0; return result; } NumArchiveErrors++; if (result == ERROR_DISK_FULL) return ERROR_DISK_FULL; /* 追加ここまで */ (*OutStream) << endl << kError; if (result == E_OUTOFMEMORY) (*OutStream) << kMemoryExceptionMessage; else (*OutStream) << NError::MyFormatMessageW(result); (*OutStream) << endl; return S_OK; }