func init if(linked("RegistryKey")) // add using module sys.add_use('Microsoft.Win32') // defines an instance of RegistryKey this.setfield('rk', d("RegistryKey")) // initialize properties if(linked("onError")) sys.add_use('System.IO') this.setfield('ex', 'ex' + this.id) end end end func make_value(data) return(this.rk + '.GetValue(' + d("ValueName") + ', ' + sys.if_null(this.props("DefaultValue").value) + ', RegistryValueOptions.' + this.props("ValueOptions").value + ')') end func doGetValue(data) if(linked("RegistryKey")) linked("onError") ? blk.println('try {').inc() : '' event("onValue", make_value(data)) if(linked("onError")) blk.dec().println('} catch(IOException ', this.ex, ') {').inc() event("onError", this.ex + '.Message') blk.dec().println('}') end end end func doSetValue(data) if(linked("RegistryKey")) linked("onError") ? blk.println('try {').inc() : '' blk.println(this.rk, '.SetValue(', d("ValueName"), ', ', sys.if_null(d("Data")), ', RegistryValueKind.', this.props("ValueKind").value, ');') if(linked("onError")) blk.dec().println('} catch(IOException ', this.ex, ') {').inc() event("onError", this.ex + '.Message') blk.dec().println('}') end end end func Value if(linked("RegistryKey")) return(make_value()) end end func ValueKind if(linked("RegistryKey")) return(this.rk + '.GetValueKind(' + d("ValueName") + ')') end end