private void PackUriResourceHandler_ReadResponse(object sender, CfxResourceHandlerReadEventArgs readResponse)
        {
            if (_StreamResourceInfo == null)
            {
                readResponse.SetReturnValue(false);
                return;
            }

            if (_Done)
            {
                return;
            }

            var stream    = _StreamResourceInfo.Stream;
            var buffer    = new byte[readResponse.BytesToRead];
            var bytesRead = stream.Read(buffer, 0, readResponse.BytesToRead);

            System.Runtime.InteropServices.Marshal.Copy(buffer, 0, readResponse.DataOut, bytesRead);
            readResponse.BytesRead = bytesRead;
            readResponse.SetReturnValue(true);

            if (stream.Position != stream.Length)
            {
                return;
            }

            Clean();
            _Logger?.Info(Loaded);
        }
Exemple #2
0
        private void WebResourceHandler_Read(object sender, CfxResourceHandlerReadEventArgs e)
        {
            int bytesToCopy = webResource.data.Length - bytesDone;

            if (bytesToCopy == 0)
            {
                return;
            }
            if (bytesToCopy > e.BytesToRead)
            {
                bytesToCopy = e.BytesToRead;
            }
            Marshal.Copy(webResource.data, bytesDone, e.DataOut, bytesToCopy);
            e.BytesRead = bytesToCopy;
            bytesDone  += bytesToCopy;
            e.SetReturnValue(true);
        }