+void
+ConvertBackBitmapInfo(PBITMAPINFO pbmi, PBITMAPINFO pbmiConverted)
+{
+ /* Check if we converted from PBITMAPCOREINFO */
+ if (pbmiConverted != pbmi)
+ {
+ PBITMAPCOREINFO pbci = (PBITMAPCOREINFO)pbmi;
+
+ /* Convert back header */
+ pbci->bmciHeader.biSize = sizeof(BITMAPCOREHEADER);
+ pbci->bmciHeader.bcWidth = pbmiConverted->bmiHeader.biWidth;
+ pbci->bmciHeader.bcHeight = pbmiConverted->bmiHeader.biHeight;
+ pbci->bmciHeader.bcPlanes = 1;
+ pbci->bmciHeader.bcBitCount = pbmiConverted->bmiHeader.biBitCount;
+
+ /* Convert back colors */
+ for (i = 0; i < pbmiConverted->bmiHeader.biClrUsed; i++)
+ {
+ pbci->bmciColors.rgbtRed = pbmiConverted->bmiColors.rgbRed;
+ pbci->bmciColors.rgbtGreen = pbmiConverted->bmiColors.rgbGreen;
+ pbci->bmciColors.rgbtBlue = pbmiConverted->bmiColors.rgbBlue;
+ }
+
+ /* Free memory */
+ RtlFreeHeap(RtlGetProcessHeap(), 0, pbmiConverted);
+ }
+}