protected virtual int OnDataAvailable(IntPtr p1, int p2) { int result = 1; if (this.currentFile != null) { this.currentFile.BytesExtracted += p2; } if (this.DataAvailable != null) { byte[] data = new byte[p2]; Marshal.Copy(p1, data, 0, p2); DataAvailableEventArgs e = new DataAvailableEventArgs(data); this.DataAvailable(this, e); if (!e.ContinueOperation) { result = -1; } } if ((this.ExtractionProgress != null) && (this.currentFile != null)) { ExtractionProgressEventArgs e = new ExtractionProgressEventArgs(); e.FileName = this.currentFile.FileName; e.FileSize = this.currentFile.UnpackedSize; e.BytesExtracted = this.currentFile.BytesExtracted; e.PercentComplete = this.currentFile.PercentComplete; this.ExtractionProgress(this, e); if (!e.ContinueOperation) { result = -1; } } return(result); }
private void rar_ExtractionProgress(object sender, ExtractionProgressEventArgs e) { OnPatchProgressChange(null, new ProgressChangeEventArgs((int)e.PercentComplete, 0, 0)); }
protected virtual int OnDataAvailable( IntPtr p1, int p2 ) { int result = 1; if( this.currentFile != null ) this.currentFile.BytesExtracted += p2; if( this.DataAvailable != null ) { byte[] data = new byte[p2]; Marshal.Copy( p1, data, 0, p2 ); DataAvailableEventArgs e = new DataAvailableEventArgs( data ); this.DataAvailable( this, e ); if( !e.ContinueOperation ) result = -1; } if( ( this.ExtractionProgress != null ) && ( this.currentFile != null ) ) { ExtractionProgressEventArgs e = new ExtractionProgressEventArgs(); e.FileName = this.currentFile.FileName; e.FileSize = this.currentFile.UnpackedSize; e.BytesExtracted = this.currentFile.BytesExtracted; e.PercentComplete = this.currentFile.PercentComplete; this.ExtractionProgress( this, e ); if( !e.ContinueOperation ) result = -1; } return result; }