Extensiones JPEG y PNG para funciones y estructuras específicas de mapa de bits

En determinadas versiones de Microsoft Windows, las funciones StretchDIBits y SetDIBitsToDevice permiten pasar imágenes JPEG y PNG como imagen de origen a los dispositivos de impresora. Esta extensión no está pensada como un medio para suministrar descompresión general de JPEG y PNG a las aplicaciones, sino que permite a las aplicaciones enviar imágenes comprimidas por JPEG y PNG directamente a impresoras que tienen compatibilidad de hardware con imágenes JPEG y PNG.

Las estructuras BITMAPINFOHEADER, BITMAPV4HEADER y BITMAPV5HEADER se extienden para permitir la especificación de valores de biCompression que indican que los datos del mapa de bits son una imagen JPEG o PNG. Estos valores de compresión solo son válidos para SetDIBitsToDevice y StretchDIBits cuando el parámetro hdc especifica un dispositivo de impresora. Para admitir la cola de metarchivos de la impresora, la aplicación no debe confiar en el valor devuelto para determinar si el dispositivo admite el archivo JPEG o PNG. La aplicación debe emitir QUERYESCSUPPORT con el escape correspondiente antes de llamar a SetDIBitsToDevice y StretchDIBits. Si se produce un error en el escape de validación, la aplicación debe revertirse a su propia compatibilidad con JPEG o PNG para descomprimir la imagen en un mapa de bits.