private CopyProgressResult OnProgressChanged(double percent) { // only raise an event when progress has changed CopyProgressResult result = CopyProgressResult.PROGRESS_CONTINUE; if ((int)percent > FilePercentCompleted) { FilePercentCompleted = (int)percent; var handler = ProgressChanged; if (handler != null) { result = handler((int)FilePercentCompleted); } } return(result); }
private CopyProgressResult CopyProgressHandler(long total, long transferred, long streamSize, long streamByteTrans, uint dwStreamNumber, CopyProgressCallbackReason reason, IntPtr hSourceFile, IntPtr hDestinationFile, IntPtr lpData) { CopyProgressResult result = CopyProgressResult.PROGRESS_CONTINUE; if (reason == CopyProgressCallbackReason.CALLBACK_CHUNK_FINISHED) { result = OnProgressChanged((transferred / (double)total) * 100.0); } if (transferred >= total) { OnCompleted(); } if (result == CopyProgressResult.PROGRESS_CANCEL) { IsCancelled = 1; } return(result); }