IDropTargetHelper (Interfaces)
Last changed: anonymous

.
Summary

C# Definition:

...

    using drawing = System.Drawing;
    using IDataObject_Com = System.Runtime.InteropServices.ComTypes.IDataObject;

...

    [ComVisible(true), ComImport, Guid("4657278B-411B-11D2-839A-00C04FD918D0"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface IDropTargetHelper {
    void DragEnter([In] IntPtr hwndTarget, [In, MarshalAs(UnmanagedType.Interface)] IDataObject_Com dataObject, [In] ref drawing.Point pt, [In] DragDropEffects effect);
    void DragLeave();
    void DragOver([In] ref drawing.Point pt, [In] DragDropEffects effect);
    void Drop([In, MarshalAs(UnmanagedType.Interface)] IDataObject_Com dataObject, [In] ref drawing.Point pt, [In] DragDropEffects effect);
    void Show([In] bool show);
    }

User-Defined Types:

None.

Notes:

Sample usage (in WPF):

    IDropTargetHelper dropHelper = Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("4657278A-411B-11D2-839A-00C04FD918D0"))) as IDropTargetHelper;

    protected override void OnDragEnter(DragEventArgs e) {
    ...
        var pointWpf = e.GetPosition(this);
        var point = new drawing.Point(Convert.ToInt32(pointWpf.X), Convert.ToInt32(pointWpf.Y));
        dropHelper.DragEnter(hWnd, e.Data as IDataObject_Com, ref point, e.Effects);
    ...
    }

    protected override void OnDragLeave(DragEventArgs e) {
    ...
        dropHelper.DragLeave();
    ...
    }

    protected override void OnDragOver(DragEventArgs e) {
    ...
        dropHelper.DragOver(ref point, e.Effects);
    ...
    }

    protected override void OnDrop(DragEventArgs e) {
    ...
        var pointWpf = e.GetPosition(this);
        var point = new drawing.Point(Convert.ToInt32(pointWpf.X), Convert.ToInt32(pointWpf.Y));
        dropHelper.Drop(e.Data as IDataObject_Com, ref point, e.Effects);
    ...    
    }

Documentation