anchor.diff:    FHasNext := FFDICabInfo.hasNext;
   
       {Enumerate the files and build the file list}
  -  if not FDICopy(FFDIContext, FCabName, FCabPath, 0,
  +  if not FDICopy(FFDIContext, PAnsiChar(FCabName), PAnsiChar(FCabPath), 0,
       @FDI_EnumerateFiles, nil, Self) then begin
       CloseCabFile;
       raise EAbFDICopyError.Create;
  
positive.code:   inherited CreateInit;
    FMode := Mode and fmOpenWrite;
    FArchiveName := FileName;
    StrPLCopy(FCabName, AnsiString(ExtractFileName(FileName)), Length(FCabName));
    StrPLCopy(FCabPath, AnsiString(ExtractFilePath(FileName)), Length(FCabPath));
    SpanningThreshold := AbDefCabSpanningThreshold;
    FFolderThreshold := AbDefFolderThreshold;
    FItemInProgress := nil;
  
negative.code:     fFailOnIncompressible := 0;
      setID             := SetID;
      StrPCopy(szDisk, '');
      StrPLCopy(szCab, FCabName, Length(szCab));
      StrPLCopy(szCabPath, FCabPath, Length(szCabPath));
    end;
  
      {obtain an FCI context}
  