Windows understands normal (upside down) bitmaps as well as "right-way-up" bitmaps - check the MSDN documentation on bitmap headers. As far as I remember, "right-way-up" bitmaps have negative height, so in your posted code, try changing:
info.biHeight = height;
to
info.biHeight = -height;
I use this technique with a StretchDIBits call, and it works there. Since you are not processing the bitmap data at all, whether this technique works will depend on the application you use to display the bitmap. A "well-behaved" application (conforming to MSDN bitmap standards) will display correctly. A "badly behaved" application will display the bitmap upside down or crash. Some applications may accept it, some may not! But it's easy to try.