Example #1
0
        private bool TransferStatusCallback(int msgType, int percent, ulong bytesTransferred, uint hresult, IStream stream)
        {
            switch (msgType)
            {
            case MSG_STATUS:
                Progress?.Invoke(this, new ProgressEventArgs(percent));
                break;

            case MSG_END_STREAM:
                var wrappedStream = new NativeStreamWrapper(stream);
                if (cancel)
                {
                    wrappedStream.Dispose();
                }
                else
                {
                    PageScanned?.Invoke(this, new PageScannedEventArgs(wrappedStream));
                }
                break;

            case MSG_END_TRANSFER:
                TransferComplete?.Invoke(this, EventArgs.Empty);
                break;
            }
            return(!cancel);
        }