internal static uint Drop(IntPtr @this, IntPtr pDataObj, uint grfkeyState, IntPtr pt_x, IntPtr pt_y, IntPtr pdwEffect)
{
IntPtr window;
window = Marshal.ReadIntPtr(@this, Marshal.SizeOf(typeof(IntPtr)));
DragDropEventArgs.x = pt_x.ToInt32();
DragDropEventArgs.y = pt_y.ToInt32();
DragDropEventArgs.allowed_effect = (DragDropEffects)Marshal.ReadIntPtr(pdwEffect).ToInt32();
DragDropEventArgs.current_effect = DragDropEventArgs.AllowedEffect;
DragDropEventArgs.keystate = (int)grfkeyState;
Control control = Control.FromHandle(window);
if (control != null)
{
control.DndDrop(DragDropEventArgs);
return(S_FALSE);
}
Marshal.WriteInt32(pdwEffect, (int)DragDropEventArgs.Effect);
return(S_OK);
}