示例#1
0
        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);
        }
示例#2
0
        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);
        }