Простите, если это бесполезно, но возможно ли, что они просто изменили свою цветовую палитру? Довольно часто кажется, что эти API-интерфейсы типа взаимодействия с Windows могут использовать палитры PBGRA в дополнение к их палитре по умолчанию, и возможно, что их цветовая палитра по умолчанию, возможно, изменилась от одной версии платформы к другой. Должно быть достаточно просто проверить, правда это или нет.
(Я обнаружил аналогичную проблему с рендерингом аппаратных курсоров, в которых прозрачность и черный цвет могли бы быть перепутаны при определенных обстоятельствах. В итоге оказалось, что я неправильно рассчитал PBGRA, так что один из BGR был больше, чем A, что true для вашего фона, предназначенного для прозрачного цвета.)
Существуют и другие сложности с использованием метода DWM API. Я не совсем уверен, но по памяти есть что-то сложное с установкой новых полей - если я правильно помню, все они должны были иметь одинаковый знак (+ / -) или артефакты (такие как ваш внезапно появляющийся черный фон) иногда появлялся.