if(gbCancelDownload)
if((gdwDownloadDialogStatus == CS_CANCEL) || (gdwDownloadDialogStatus == CS_PAUSE))
int ProgressCB(int aBytesSoFar, int aTotalFinalSize){  long lBytesDiffSoFar;  double dPercentSoFar;  int  iRv = nsFTPConn::OK;  if(sgProduct.dwMode != SILENT)  {    SetStatusUrl();    if(glTotalKb == 0)      glTotalKb = aTotalFinalSize;    /* Calculate the difference between the last set of bytes read against     * the current set of bytes read.  If the value is negative, that means     * that it started a new file, so reset lBytesDiffSoFar to aBytesSoFar */    lBytesDiffSoFar = ((aBytesSoFar - glLastBytesSoFar) < 1) ? aBytesSoFar : (aBytesSoFar - glLastBytesSoFar);    /* Save the current bytes read as the last set of bytes read */    glLastBytesSoFar = aBytesSoFar;    glAbsoluteBytesSoFar += lBytesDiffSoFar;    dPercentSoFar = GetPercentSoFar();    if(gbDlgDownloadMinimized)      SetMinimizedDownloadTitle((int)dPercentSoFar);    UpdateGaugeFileProgressBar(dPercentSoFar);    SetStatusStatus();    if(gbCancelDownload)      iRv = nsFTPConn::E_USER_CANCEL;  }  ProcessWindowsMessages();  return(iRv);}