lukas227: known problem in wine, possibly related to the quit bug
Borde: A few things;
The minimum/maximum bits per X are all used to determine which texture format to use, not just the minimum bits per color. However this is not the source of the problem since the D3D driver will fallback to a (more or less) compatible texture format. Also, the color fields in this section specify the number of bits per color component, so a value of 24 makes no sense.
A number of palette related fields are set, I don't think this will cause any trouble as long as the palette flag is 0, but to avoid confusion its probably best to set them all to 0 in this case.
Bitsperpixel is set to 8, it should clearly be 24.
The bitmasks are all -1 and the shifts aren't even in that table
This is the source of the problem, these along with the "max" fields are the most important parts of any non-paletted image. The final component value will be calculated as such; (((pixel & mask) >> shift) * 255) / max, assuming a truecolor target. (where & is bitwise AND, >> is right shift)
So, assuming a standard BGR encoded windows bitmap the pixel format should be as follows:
red component;
mask: 0xFF0000, shift: 16, max: 255
green component;
mask: 0xFF00, shift: 8, max: 255
blue component;
mask: 0xFF, shift: 0, max: 255
alpha;
all zero, since we have no alpha