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;
}