func init // adds using namespace sys.add_use('HiAsm') // adds assembly include("SDK") // include external method sys.LoadMethod("ProcessCmdKey") // initialize event handler if(interfaces.contain('CallBack')) error(this.name + ' - can not use more than one element SDKEvents') elseif(linked("onEvent")) interfaces.add('CallBack') sys.add_var(this.name, 'CallbackType') blk_init.println('Share.cmdMan.on_command.addEvent(this);') sys.blocks_store() blk_lvars.inc() blk.inc() event("onEvent", 'data') blk_proc_imp.println('public void callback(object owner, CallbackType type, object data) { // onEvent').inc() .println('if (this.InvokeRequired) {').inc() .println('this.Invoke(new Action(callback), new object[] { owner, type, data });') .dec().println('} else {').inc() .println(this.codename, ' = type;') if(not blk_lvars.empty()) blk_proc_imp.copyhere(blk_lvars) end blk_proc_imp.copyhere(blk) .dec().println('}') .println('Share.wmp.update(', d("SDKView", 20), ');') .dec().println('}') sys.blocks_restore() end end func EventType return(this.codename) end