Я пробовал делать реализацию подобного на VB.
Получалось,очень хреново,но получалось.
Тень(отстойная) была.Этого я достиг,используя API :GetPixel,SetPixelV.
Просто брал пиксел под курсором,получал его цвет,переводил в RGB,а затем затемнял(Т.е от всех цветов отнять понемногу).
Проблема была в другом.Когда курсор убирался цвета не восстонавливались

))
И получился хаос.
Я решил,что обьявлять массив для запоминания координат и начальних цветов - бред...
Буду пытаться дальше...