Exemple #1
0
        private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            switch (e.ClickedItem.Name)
            {
            case "MenuItemCopy":
                this.txtSend.Copy();
                break;

            case "MenuItemPaset":
            {
                System.Windows.Forms.IDataObject data = Clipboard.GetDataObject(); //从剪贴板中获取数据
                if (data.GetDataPresent(typeof(Image)))                            //判断是否是图片类型
                {
                    MessageBox.Show(data.GetType().ToString());
                }
                //this.txtSend.Paste();
            }
            break;

            case "MenuItemCut":
                this.txtSend.Cut();
                break;

            case "MenuItemDel":
                this.txtSend.SelectedText = "";
                break;

            case "MenuItemSelAll":
                this.Focus();
                this.txtSend.SelectAll();
                break;
            }
        }
Exemple #2
0
        private static MemoryStream GetFileContentFromHGlobal(this System.Windows.Forms.IDataObject data, STGMEDIUM medium)
        {
            var innerDataField = data.GetType().GetField("innerData", BindingFlags.NonPublic | BindingFlags.Instance);
            var oldData        = (System.Windows.Forms.IDataObject)innerDataField.GetValue(data);

            var getDataFromHGLOBLALMethod = oldData.GetType().GetMethod("GetDataFromHGLOBLAL", BindingFlags.NonPublic | BindingFlags.Instance);

            return((MemoryStream)getDataFromHGLOBLALMethod.Invoke(oldData, new object[] { "FileContents", medium.unionmember }));
        }
        /// <summary>
        /// Initializes a new instance of the class.
        /// </summary>
        /// <param name="underlyingDataObject">The underlying data object to wrap.</param>
        public RemoteDataObject(System.Windows.Forms.IDataObject underlyingDataObject)
        {
            //get the underlying dataobject and its ComType IDataObject interface to it
            this.underlyingDataObject = underlyingDataObject;
            comUnderlyingDataObject   = (System.Runtime.InteropServices.ComTypes.IDataObject) this.underlyingDataObject;

            //get the internal ole dataobject and its GetDataFromHGLOBAL so it can be called later
            FieldInfo innerDataField = this.underlyingDataObject.GetType().GetField("innerData", BindingFlags.NonPublic | BindingFlags.Instance);

            oleUnderlyingDataObject  = (System.Windows.Forms.IDataObject)innerDataField.GetValue(this.underlyingDataObject);
            getDataFromHGLOBALMethod = oleUnderlyingDataObject.GetType().GetMethod("GetDataFromHGLOBAL", BindingFlags.NonPublic | BindingFlags.Instance);
        }
Exemple #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="OutlookDataObject"/> class.
        /// </summary>
        /// <param name="underlyingDataObject">The underlying data object to wrap.</param>
        public OutlookDataObject(System.Windows.Forms.IDataObject underlyingDataObject)
        {
            //get the underlying dataobject and its ComType IDataObject interface to it
            this._underlyingDataObject = underlyingDataObject;
            _comUnderlyingDataObject   = (System.Runtime.InteropServices.ComTypes.IDataObject) this._underlyingDataObject;

            //get the internal ole dataobject and its GetDataFromHGLOBLAL so it can be called later
            var innerDataField = this._underlyingDataObject.GetType().GetField("innerData", BindingFlags.NonPublic | BindingFlags.Instance);

            _oleUnderlyingDataObject   = (System.Windows.Forms.IDataObject)innerDataField.GetValue(this._underlyingDataObject);
            _getDataFromHgloblalMethod = _oleUnderlyingDataObject.GetType().GetMethod("GetDataFromHGLOBLAL", BindingFlags.NonPublic | BindingFlags.Instance);
        }
Exemple #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DataObject"/> class.
        /// </summary>
        /// <param name="underlyingDataObject">The underlying data object to wrap.</param>
        public DataObject(IDataObject underlyingDataObject)
        {
            //get the underlying dataobject and its ComType IDataObject interface to it
            _underlyingDataObject = underlyingDataObject;
            _comUnderlyingDataObject = (System.Runtime.InteropServices.ComTypes.IDataObject)_underlyingDataObject;

            //get the internal ole dataobject and its GetDataFromHGLOBLAL so it can be called later
            var innerDataField = _underlyingDataObject.GetType().GetField("innerData", BindingFlags.NonPublic | BindingFlags.Instance);
            // ReSharper disable once PossibleNullReferenceException
            _oleUnderlyingDataObject = (IDataObject)innerDataField.GetValue(_underlyingDataObject);
            _getDataFromHgloblalMethod = _oleUnderlyingDataObject.GetType()
                .GetMethod("GetDataFromHGLOBLAL", BindingFlags.NonPublic | BindingFlags.Instance);
        }
Exemple #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DataObject"/> class.
        /// </summary>
        /// <param name="underlyingDataObject">The underlying data object to wrap.</param>
        public DataObject(IDataObject underlyingDataObject)
        {
            //get the underlying dataobject and its ComType IDataObject interface to it
            _underlyingDataObject    = underlyingDataObject;
            _comUnderlyingDataObject = (System.Runtime.InteropServices.ComTypes.IDataObject)_underlyingDataObject;

            //get the internal ole dataobject and its GetDataFromHGLOBLAL so it can be called later
            var innerDataField = _underlyingDataObject.GetType().GetField("innerData", BindingFlags.NonPublic | BindingFlags.Instance);

            // ReSharper disable once PossibleNullReferenceException
            _oleUnderlyingDataObject   = (IDataObject)innerDataField.GetValue(_underlyingDataObject);
            _getDataFromHgloblalMethod = _oleUnderlyingDataObject.GetType()
                                         .GetMethod("GetDataFromHGLOBLAL", BindingFlags.NonPublic | BindingFlags.Instance);
        }