  Drag and drop operation is one of the key capabilities of any Graphical User
Interface. The user can do quite complex operations simply by visually dragging
and dropping objects from one location to another. It saves user from
remembering and typing a lot of commands.
  The result of a drag and drop operation may vary depending the type of source
object and type of destination object. For example dragging a file and dropping
on a folder may copy or move the file to the destination folder, dropping that
file to a remote FTP location may upload that file using internet, dropping
that file on a printer icon may print that file, dropping that file on the
trash can may delete that file, and dropping that file on an executable may
play or open or compute or manipulate that file.
  Although a drag and drop operation prima facie seems to be a simple
operation, it can become extremely complicated depending on the type of source
objects dragged and the type of destination objects selected for dropping.
There are many limitations of a conventional drag and drop operation. This
article points out the difficulties of a drag and drop operation and
illustrates the solutions disclosed by various inventions to overcome those
difficulties.
