public int OleDragLeave() { this._converterInfo = DataObjectConverterInfo.Disabled; if (this._currentDataObj != null) { this._currentDataObj = null; Marshal.Release(this._currentDataObjPtr); this._currentDataObjPtr = IntPtr.Zero; return this._originalDropTarget.OleDragLeave(); } return 0; }
public int OleDrop(IntPtr pDataObj, int grfKeyState, long pt, ref int pdwEffect) { int num = 0; Control parent = this._owner; while (parent != null) { parent = parent.Parent; Form form = parent as Form; if (form != null) { form.BringToFront(); break; } } if (this._converterInfo == DataObjectConverterInfo.CanConvert) { DataObject originalDataObject = new DataObject(Marshal.GetObjectForIUnknown(pDataObj)); if (this._converter.ConvertToHtml(originalDataObject, this._currentDataObj)) { IntPtr iUnknownForObject = Marshal.GetIUnknownForObject(this._currentDataObj); Guid iid = new Guid("0000010E-0000-0000-C000-000000000046"); Marshal.QueryInterface(iUnknownForObject, ref iid, out this._currentDataObjPtr); num = this._originalDropTarget.OleDrop(this._currentDataObjPtr, grfKeyState, pt, ref pdwEffect); Marshal.Release(this._currentDataObjPtr); this._currentDataObj = null; this._currentDataObjPtr = IntPtr.Zero; } else { pdwEffect = 0; } } else if (this._converterInfo == DataObjectConverterInfo.Unhandled) { num = this._originalDropTarget.OleDrop(pDataObj, grfKeyState, pt, ref pdwEffect); } this._converterInfo = DataObjectConverterInfo.Disabled; return num; }
public int OleDragEnter(IntPtr pDataObj, int grfKeyState, long pt, ref int pdwEffect) { DataObject dataObject = new DataObject(Marshal.GetObjectForIUnknown(pDataObj)); this._converterInfo = this._converter.CanConvertToHtml(dataObject); if (this._converterInfo == DataObjectConverterInfo.CanConvert) { this._currentDataObj = new DataObject(DataFormats.Html, string.Empty); IntPtr iUnknownForObject = Marshal.GetIUnknownForObject(this._currentDataObj); Guid iid = new Guid("0000010E-0000-0000-C000-000000000046"); Marshal.QueryInterface(iUnknownForObject, ref iid, out this._currentDataObjPtr); Marshal.Release(iUnknownForObject); return this._originalDropTarget.OleDragEnter(this._currentDataObjPtr, grfKeyState, pt, ref pdwEffect); } if (this._converterInfo == DataObjectConverterInfo.Disabled) { pdwEffect = 0; } else if (this._converterInfo == DataObjectConverterInfo.Unhandled) { return this._originalDropTarget.OleDragEnter(pDataObj, grfKeyState, pt, ref pdwEffect); } return 0; }