示例#1
0
        public void OLEDragDrop([In][Out, MarshalAs(UnmanagedType.IDispatch)] object data, [In][Out] ref object effect, [In][Out] ref object button, [In][Out] ref object shift, [In][Out] ref object x, [In][Out] ref object y)
        {
            if (!Validate("OLEDragDrop"))
            {
                Invoker.ReleaseParamsArray(data, effect, button, shift, x, y);
                return;
            }

            NetOffice.MSComctlLibApi.DataObject newData = new NetOffice.MSComctlLibApi.DataObject(EventClass, data);
            (newData as ICOMProxyShareProvider).GetProxyShare().Acquire();

            object[] paramsArray = new object[6];
            paramsArray.SetValue(newData, 0);
            paramsArray.SetValue(effect, 1);
            paramsArray.SetValue(button, 2);
            paramsArray.SetValue(shift, 3);
            paramsArray.SetValue(x, 4);
            paramsArray.SetValue(y, 5);
            EventBinding.RaiseCustomEvent("OLEDragDrop", ref paramsArray);

            data   = newData.UnderlyingObject;
            effect = ToInt32(paramsArray[1]);
            button = ToInt32(paramsArray[2]);
            shift  = ToInt32(paramsArray[3]);
            x      = ToSingle(paramsArray[4]);
            y      = ToSingle(paramsArray[5]);

            (newData as ICOMProxyShareProvider).GetProxyShare().Release();
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="data"></param>
        /// <param name="effect"></param>
        /// <param name="button"></param>
        /// <param name="shift"></param>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <param name="state"></param>
        public void OLEDragOver([In][Out, MarshalAs(UnmanagedType.IDispatch)] object data, [In][Out] ref object effect, [In][Out] ref object button, [In][Out] ref object shift, [In][Out] ref object x, [In][Out] ref object y, [In][Out] ref object state)
        {
            if (!Validate("OLEDragOver"))
            {
                Invoker.ReleaseParamsArray(data, effect, button, shift, x, y, state);
                return;
            }

            NetOffice.MSComctlLibApi.DataObject newData = Factory.CreateKnownObjectFromComProxy <NetOffice.MSComctlLibApi.DataObject>(EventClass, data, typeof(NetOffice.MSComctlLibApi.DataObject));
            (newData as ICOMProxyShareProvider).GetProxyShare().Acquire();

            object[] paramsArray = new object[7];
            paramsArray.SetValue(newData, 0);
            paramsArray.SetValue(effect, 1);
            paramsArray.SetValue(button, 2);
            paramsArray.SetValue(shift, 3);
            paramsArray.SetValue(x, 4);
            paramsArray.SetValue(y, 5);
            paramsArray.SetValue(state, 6);
            EventBinding.RaiseCustomEvent("OLEDragOver", ref paramsArray);

            data   = newData.UnderlyingObject;
            effect = ToInt16(paramsArray[1]);
            button = ToInt16(paramsArray[2]);
            shift  = ToInt16(paramsArray[3]);
            x      = ToSingle(paramsArray[4]);
            y      = ToSingle(paramsArray[5]);
            state  = ToInt16(paramsArray[6]);

            (newData as ICOMProxyShareProvider).GetProxyShare().Release();
        }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="data"></param>
        /// <param name="allowedEffects"></param>
        public void OLEStartDrag([In][Out, MarshalAs(UnmanagedType.IDispatch)] object data, [In][Out] ref object allowedEffects)
        {
            if (!Validate("OLEStartDrag"))
            {
                Invoker.ReleaseParamsArray(data, allowedEffects);
                return;
            }

            NetOffice.MSComctlLibApi.DataObject newData = Factory.CreateKnownObjectFromComProxy <NetOffice.MSComctlLibApi.DataObject>(EventClass, data, typeof(NetOffice.MSComctlLibApi.DataObject));            (newData as ICOMProxyShareProvider).GetProxyShare().Acquire();

            object[] paramsArray = new object[2];
            paramsArray.SetValue(newData, 0);
            paramsArray.SetValue(allowedEffects, 1);
            EventBinding.RaiseCustomEvent("OLEStartDrag", ref paramsArray);

            data           = newData.UnderlyingObject;
            allowedEffects = ToInt32(paramsArray[1]);

            (newData as ICOMProxyShareProvider).GetProxyShare().Release();
        }
示例#4
0
        public void OLESetData([In][Out, MarshalAs(UnmanagedType.IDispatch)] object data, [In][Out] ref object dataFormat)
        {
            if (!Validate("OLESetData"))
            {
                Invoker.ReleaseParamsArray(data, dataFormat);
                return;
            }

            NetOffice.MSComctlLibApi.DataObject newData = new NetOffice.MSComctlLibApi.DataObject(EventClass, data);
            (newData as ICOMProxyShareProvider).GetProxyShare().Acquire();

            object[] paramsArray = new object[2];
            paramsArray.SetValue(newData, 0);
            paramsArray.SetValue(dataFormat, 1);
            EventBinding.RaiseCustomEvent("OLESetData", ref paramsArray);

            data       = newData.UnderlyingObject;
            dataFormat = ToInt32(paramsArray[1]);

            (newData as ICOMProxyShareProvider).GetProxyShare().Release();
        }