AA>>Грабли по-видимому в том что код твой должен быть в аресном пространстве того процесса, которому принадлежит окно (explorer.exe) .
E>Он там и находится. В прицепленой к explorer.exe библиотеке. Грабли не в сабклассинге, они именно в обработчике WM_PAINT. Видно, что стандартный обработчик здесь не подходит, нужно учитывать ещё какие-то нюансы...
В предположении, что с сабклассингом OK: не пробовали — на WM_PAINT свою обработку ПОСЛЕ родной CallWindowProc(*WM_PAINT*) ?