win32: fix for clipboard bitmap decoding

Closes PR 13119

original commit: c16b696272763194f2fb3731c7bf8309e5d2542e
This commit is contained in:
Matthew Flatt 2012-09-19 09:10:30 -06:00
parent 26e6d12ef9
commit 3c7fb4808d

View File

@ -35,6 +35,7 @@
(define DIB_RGB_COLORS 0) (define DIB_RGB_COLORS 0)
(define SRCCOPY #x00CC0020) (define SRCCOPY #x00CC0020)
(define BI_BITFIELDS 3)
(define-cstruct _BITMAPINFOHEADER (define-cstruct _BITMAPINFOHEADER
([biSize _DWORD] ([biSize _DWORD]
@ -233,7 +234,10 @@
(ReleaseDC #f screen-hdc) (ReleaseDC #f screen-hdc)
(StretchDIBits hdc 0 0 w h (StretchDIBits hdc 0 0 w h
0 0 w h 0 0 w h
(ptr-add bmi (+ (BITMAPINFOHEADER-biSize bmi) psize)) (ptr-add bmi (+ (BITMAPINFOHEADER-biSize bmi) psize
(if (= (BITMAPINFOHEADER-biCompression bmi) BI_BITFIELDS)
12
0)))
bmi DIB_RGB_COLORS SRCCOPY) bmi DIB_RGB_COLORS SRCCOPY)
(SelectObject hdc old-hbitmap) (SelectObject hdc old-hbitmap)
(GlobalUnlock bits) (GlobalUnlock bits)