anchor.diff:    {starting value for output CRC}
     FCRC32 := -1;
     FCurrentProgress := 0;
  -  FSpanned := False;
  -  FMode := 0;
  -  FArchiveName := '';
  -  FCurrentDisk := 0;
   end;
   { -------------------------------------------------------------------------- }
   destructor TAbUnzipHelper.Destroy;
  
positive.code:   if (FOutPos = AbBufferSize) or
       (LongInt(FOutPos) + FOutSent = FUncompressedSize) then
      uzFlushOutBuf;
  end;
  { -------------------------------------------------------------------------- }
  procedure TAbUnzipHelper.DoRequestNthDisk( DiskNumber : Byte;
                                             var Abort : Boolean );
  var
    pMessage : string;
    pCaption : string;
  begin
    if Assigned( FOnRequestNthDisk ) then
      FOnRequestNthDisk( Self, DiskNumber, Abort )
    else begin
      pMessage:= Format(AbStrRes(AbDiskNumRequest), [DiskNumber]);
      pCaption := AbStrRes(AbDiskRequest);
      {$IFDEF MSWINDOWS}
      Abort := Windows.MessageBox( 0, PChar(pMessage), PChar(pCaption),
        MB_TASKMODAL or MB_OKCANCEL ) = IDCANCEL;
      {$ENDIF}
      {$IFDEF LINUX}
      {$IFDEF NoQt}
      WriteLn(pMessage);
      {$ELSE }
      Abort := QDialogs.MessageDlg(pCaption, pMessage, mtWarning, mbOKCancel, 0) = mrCancel;
      {$ENDIF}
      {$ENDIF}
    end;
  end;
  { -------------------------------------------------------------------------- }
  procedure TAbUnzipHelper.DoProgress(Progress : Byte; var Abort : Boolean);
  
negative.code:     destructor Destroy;
        override;
  
      function Execute : LongInt;
        {returns the CRC}
      property OnProgress : TAbProgressEvent
        read FOnProgress
        write FOnProgress;
      property CompressedSize : LongInt
        read FCompressedSize
        write FCompressedSize;
  