func init // adds using namespace sys.add_use('PipeStream') sys.add_use('System.Security.Principal') // use external class sys.UseClass("PipeClient") // initialize instance sys.add_object(this.codename, 'PipeClient') // initialize event handlers ini = block.reg("init").inc().inc() if(pos(sys.get_frame_above(), 'UserClass', 0)) inits.add(ini) else this.parent.get_parent_sdk().class_events.add(ini) end // event "onError" if(linked("onError")) blk_init.println(this.codename, '.OnError += new PipeClientError(pipeclient_OnError);') sys.blocks_store() event("onError", 'args') ini.println('private void pipeclient_OnError(string args) { // ', this.codename, ':onError').inc() .println('if (this.InvokeRequired) {').inc() .println('try {').inc() .println('this.Invoke(new PipeClientError(pipeclient_OnError), args);') .dec().println('} catch {} return;') .dec().println('}') if(not blk_lvars.empty()) ini.copyhere(blk_lvars) end ini.copyhere(blk) .dec().println('}') sys.blocks_restore() end end func doSend(data) blk.println(this.codename, '.Send(', d("PipeName"), ', ', d("Data"), ', ', d("Computer"), ', ', d("Timeout"), ', TokenImpersonationLevel.', this.props("ImpersonationLevel").value, ');') end func doClose() blk.println(this.codename, '.Close();') end