public void Init() { if (MBApi.wkeIsInitialize() == 0) { MBApi.wkeInitialize(); } _disposed = new jsFinalizeCallback(OnDispose); _loadLib = new jsCallAsFunctionCallback(OnLoadLib); _createObj = new jsCallAsFunctionCallback(OnCreateObject); _createComObj = new jsCallAsFunctionCallback(OnCreateComObj); _applicationExit = new jsCallAsFunctionCallback(OnApplicationExit); _getCurrentProcessId = new jsCallAsFunctionCallback(OnGetProcessId); _createControl = new jsCallAsFunctionCallback(OnCreateControl); _changeControl = new jsCallAsFunctionCallback(OnChangeControl); e_loadLib = new wkeJsNativeFunction(GetOnLoadLib); e_createObj = new wkeJsNativeFunction(GetOnCreateObject); e_createComObj = new wkeJsNativeFunction(GetOnCreateComObj); e_applicationExit = new wkeJsNativeFunction(GetOnApplicationExit); e_getCurrentProcessId = new wkeJsNativeFunction(GetOnGetProcessId); e_createControl = new wkeJsNativeFunction(GetOnCreateControl); e_changeControl = new wkeJsNativeFunction(GetOnChangeControl); MBApi.wkeJsBindGetter("_loadAssembly", e_loadLib, IntPtr.Zero); MBApi.wkeJsBindGetter("_createObject", e_createObj, IntPtr.Zero); MBApi.wkeJsBindGetter("_createComObject", e_createComObj, IntPtr.Zero); MBApi.wkeJsBindGetter("_createControl", e_createControl, IntPtr.Zero); MBApi.wkeJsBindGetter("_changeControl", e_changeControl, IntPtr.Zero); MBApi.wkeJsBindGetter("_getCurrentProcessId", e_getCurrentProcessId, IntPtr.Zero); MBApi.wkeJsBindGetter("_appExit", e_applicationExit, IntPtr.Zero); }
public CSharpMethodInfo(IntPtr es, object obj, MethodInfo methodInfo) { _obj = obj; _webView = MBApi.jsGetWebView(es); _methodInfo = methodInfo; _methodCall = new jsCallAsFunctionCallback(OnMethodCall); _jsFinalizeCallback = new jsFinalizeCallback(OnMehtodDispose); jsData data = new jsData(); data.typeName = new byte[100]; data.finalize = _jsFinalizeCallback; data.callAsFunction = _methodCall; var s = Marshal.SizeOf(typeof(jsData)); var ptr = Marshal.AllocHGlobal(s); Marshal.StructureToPtr(data, ptr, true); _jsValue = MBApi.jsFunction(es, ptr); MBApi.jsAddRef(es, _jsValue); }