コード例 #1
0
        protected IntPtr DelegateToCallbackPointer(
            HDrawingObject.HDrawingObjectCallbackClass c,
            string evt)
        {
            HDrawingObject.HDrawingObjectCallback hdrawingObjectCallback = (HDrawingObject.HDrawingObjectCallback)((drawid, window, type) =>
            {
                HDrawingObject drawid1 = new HDrawingObject(drawid);
                HWindow window1        = new HWindow(window);
                drawid1.Detach();
                window1.Detach();
                c(drawid1, window1, type);
            });
            GC.KeepAlive((object)hdrawingObjectCallback);
            GC.SuppressFinalize((object)hdrawingObjectCallback);
            switch (evt)
            {
            case "on_resize":
                this.onresize = hdrawingObjectCallback;
                break;

            case "on_attach":
                this.onattach = hdrawingObjectCallback;
                break;

            case "on_detach":
                this.ondetach = hdrawingObjectCallback;
                break;

            case "on_drag":
                this.ondrag = hdrawingObjectCallback;
                break;

            case "on_select":
                this.onselect = hdrawingObjectCallback;
                break;
            }
            return(Marshal.GetFunctionPointerForDelegate(hdrawingObjectCallback));
        }