>IonFilipsky
I know this technologies, but there are lot of questions on the forum, where people hope to find a very simple solution (couple lines of code). And my answer says only, here is no such easy solution - You says the same, but with many words.
hashimsaleem,
if You wish to use drag/drop functions within Your Program only (if a file should be dropped on Your Program from the same program or another applications), You can yse easier technology with functions DragQueryFile(), DropItem() etc. without interfaces. There are some samples on MSDN, but there have some errors, and You in all cases will need much time to really implement it. If You wish to drop from Your program to another programs, You can use IDropSrource, IDataObject and IDropTarget interfaces or you must hook WM_LBUTTONUP, WM_MOUSEMOVE (and may be WM_DROPFILES) messages of target applications.