Some additionms:
1.) IntGetSysColorBrush is a fuction I wrote to make things easier:
HBRUSH IntGetSysColorBrush(UINT nBrush) { if (nBrush < NUM_SYSCOLORS) { return SysColorBrushes[nBrush]; } else { return NULL; } }
2.) After starting ROS the desktop gets painted in original color first. After userlogon (during hw detection, shortly before explorer starts) the desktop get painted in COLOR_ACTIVECAPTION.