それか、その非ビジュアルコンポーネントでメッセージフックを使って

マウス位置のコンポーネントのZオーダから順に
そのコンポーネントのOnDragDropを呼び出して
Sourceに応答があればそれが実行して終了

ってのはどうだろ?