A simple way To allow form AllowDrop and catch the DragDrop event. In its properties is a description of what you throw.
Complicated way: for starters read this https://habrahabr.ru/post/179131/
It describes the implementation in Delphi, but the steps are the same.
You need to describe all the functions which are used via DllImport. To Call DragAcceptFiles.
To override the Wndproc for the form
protected override void WndProc(ref Message m)
, and is there to handle the event a wm_dropfiles and using DragQueryFile to the passed list.