It's not particularly easy, but what you need to do for this is find into on the BMP format (wotsit.org should be able to help you here, if there aren't any MS functions to do it easily), and write the file yourself. I have a function which does this, but it saves a the 16 (or 15) bit back buffer from my program into a 24 bit Targa file. It's not very efficient, but it does the job. Converting from 16 to 24 bit is another matter, but maybe you're working with 256 colours, or BMPs can be saved in 16 bit? Anyway, it didn't take me very long to make this work, so see how you go. If you've got any further questions post them here.