Есть такая программа BSPlayer – она умеет выводить видео прям на рабочий стол под иконки – причем в режиме пауза картинка остается как бы бэкграундом (в свойствах экрана бэкграунд выглядит как прозрачное сквозное пятно). Вот вопрос как это можно сделать? Пробовал обращается к GetDesktopWindow – рисует – но поверх иконок. Менять валпепер – есть проблема при выполнении ActiveDesktop.ApplyChanges(AD_APPLY_SAVE ) – идет рефрешь всех объектов на рабочем столе. Тоесть при выводе серии картинок начинается мелькание на экране. А в некоторых случаях и вовсе ничего не выводит – тоесть когда картинок в секунду много то рисует на десктопе только фоновый цвет и больше картинки от моей проги не принимает. MSDN все статьи со словами icon desktop wallpaper ActiveDesktop overlay перечитал но ничего даже наводящего на мысль не появилось. PS BSPlayer через IDA смотрел. Сама прога зашифрована и без правильных заголовков в результате получил длинный такой массив чисел. Ее единственную dll тоже смотрел IDA, но все вызовы внешних процедур к моей цели не привели. Ответ ищу уже больше 2 месяцев – рад буду любым наводкам на то, как это можно будет сделать.
может можно использовать то, что десктоп это SysListView (на 98 по крайне мере), и у него можно установить background. Или попробовать сабкласировать десктоп и перехватить WM_ERASEBKGND
есть три метода - overlay directX эти два будут рисовать поверх иконок Wnapi - попробуй то что сказал yurector или получи Device context и рисуй там.
Это умеет делать еще VideoLAN Client, он open-source. Его исходники можно найти по адресу http://www.videolan.org/vlc/download-sources.html