liboaaevents.cs
来自「SRI international 发布的OAA框架软件」· CS 代码 · 共 72 行
CS
72 行
using System;
using jnb.java.lang;
using jnb.com.sri.oaa2.icl;
using jnb.com.sri.oaa2.lib;
using jnb.com.sri.sedc.javanetbridge;
using System.Runtime.InteropServices;
namespace jnb.com.sri.oaa2.lib
{
public delegate void DoOAAEventDelegate(IclTerm eventArg1, IclList eventArg2, IclList eventArg3);
[GuidAttribute("AD8D2901-4771-4802-8B6B-F7CF2DCA7AA2")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
public interface IOAAEventListener
{
void DoOAAEvent(IclTerm eventArg1, IclList eventArg2, IclList eventArg3);
}
public interface ILibOaaEvents
{
void setLibOaa(LibOaa lib);
void oaaRegisterCallback(String callback);
event DoOAAEventDelegate DoOAAEvent;
}
[ComSourceInterfaces(typeof(IOAAEventListener))]
public class LibOaaEvents : ILibOaaEvents
{
public event DoOAAEventDelegate DoOAAEvent;
private LibOaa lib;
private LibOaaEventsCallback eventListenerCB = null;
public LibOaaEvents()
{
}
public void setLibOaa(LibOaa lib)
{
this.lib = lib;
}
public void oaaRegisterCallback(String callback)
{
if (eventListenerCB == null)
{
eventListenerCB = new LibOaaEventsCallback(this);
}
lib.oaaRegisterCallback(callback, eventListenerCB);
}
public bool fireOAAEvent(IclTerm arg0, IclList arg1, IclList arg2)
{
DoOAAEvent(arg0, arg1, arg2);
return true;
}
}
class LibOaaEventsCallback : OAAEventListener_CallbackImpl
{
private LibOaaEvents events;
public LibOaaEventsCallback(LibOaaEvents events)
{
this.events = events;
}
public override bool doOAAEvent(IclTerm arg0, IclList arg1, IclList arg2)
{
return events.fireOAAEvent(arg0, arg1, arg2);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?