There are two major BMP variants missing:
JPG wrapped in BMP and PNG wrapped in BMP
BI_JPEG, //Specifies that the image is compressed using the JPEG file interchange format. JPEG compression trades off compression against loss.
BI_PNG, //Specifies that the image is compressed using the PNG file interchange format.
I am not sure whether you have also:
BI_CMYK = 0x0B, //The image is an uncompressed CMYK format.
BI_CMYKRLE8 = 0x0C, //A CMYK format that uses RLE compression for bitmaps with 8 bits per pixel. The compression uses a 2-byte format consisting of a count byte followed by a byte containing a color index.
BI_CMYKRLE4 = 0x0D //A CMYK format that uses RLE compression for bitmaps with 4 bits per pixel. The compression uses a 2-byte format consisting of a count byte followed by two word-length color indexes.
There are two major BMP variants missing: JPG wrapped in BMP and PNG wrapped in BMP
BI_JPEG, //Specifies that the image is compressed using the JPEG file interchange format. JPEG compression trades off compression against loss. BI_PNG, //Specifies that the image is compressed using the PNG file interchange format.
I am not sure whether you have also: BI_CMYK = 0x0B, //The image is an uncompressed CMYK format. BI_CMYKRLE8 = 0x0C, //A CMYK format that uses RLE compression for bitmaps with 8 bits per pixel. The compression uses a 2-byte format consisting of a count byte followed by a byte containing a color index. BI_CMYKRLE4 = 0x0D //A CMYK format that uses RLE compression for bitmaps with 4 bits per pixel. The compression uses a 2-byte format consisting of a count byte followed by two word-length color indexes.