コード例 #1
0
ファイル: XCopy.cs プロジェクト: modulexcite/backer_upper
        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);
        }
コード例 #2
0
ファイル: XCopy.cs プロジェクト: modulexcite/backer_upper
        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);
        }