Ерунда какая-то, однако...
Директ Дро дает в PixelFormat следующие RGB-маски:
TrueColor
RedMask = 00FF0000
GreenMask = 0000FF00
BlueMask = 000000FF
HighColor
RedMask = 0000F800
GreenMask = 000007E0
BlueMask = 0000001F
То есть, цвета якобы идут в прямом формате — RGB. При прямой же работе с поверхностью обнаруживается, что писать цвета надо в обратном формате — BGR. Это глюк, или так и должно быть?