func init // add using namespaces sys.add_use('System.Net') sys.add_use('System.ComponentModel') // initialize instance this.wc = sys.get_undef_manager("WebClient") // initialize events sys.event_add('onProgress', 'DownloadProgressChangedEventHandler', '', 'DownloadProgressChanged', this.wc) sys.event_imp('onProgress', '', '', '', 'Object sender, DownloadProgressChangedEventArgs args') if(linked('onDownload')) a = block.reggen() a.inc().inc().println('if(args.Cancelled && args.Error != null) return;') sys.event_add('onDownload', 'DownloadDataCompletedEventHandler', '', 'DownloadDataCompleted', this.wc) sys.event_imp('onDownload', '', '', '', 'Object sender, DownloadDataCompletedEventArgs args', a) block.delete(a) end end func doDownload(uri) blk.println(this.wc, '.DownloadDataAsync(new Uri(', d("URI"), '));') end func doCancel() blk.println(this.wc, '.CancelAsync();') end