http://bugs.winehq.org/show_bug.cgi?id=4863
------- Additional Comments From agarobr.listas@gmail.com 2006-24-07 08:19 ------- As Dan Kegel said, I have sent to wine-patch list a patch with a probable fix for this bug.
Therefor, after studying the GDI API a little bit (from Huw Davies test and MSDN documentation), I don't have a clear idea how to make a test for this bug.
As I thought, a initial approach would be manually create a DIB (dib.a) to use with the SetDIBits function, get the resultant DDB and pass it to the GetDIBits function, at this point, get the new resultant DIB (dib.b) and check if it matches with that first one (dib.a) initialy passed for SetDIBits function, but I didn't find sufficient information about DIB struture to manually create a instance in the DIB_PAL_COLORS format or how to compare two instances of this type.
Assuming that the HBITMAP returned by LoadImage function is a DIB, this function may be used to create a the necessary DIB for the approach above, but again I didn't find how to get (or build) the bit array from HBITMAP to use with SetDIBits function.
I don't even know if the data flow "DIB->SetDIBits->DDB->GetDIBits->DIB" and the comparison of initial and resultant DIB are a apropriated approach to validate the right behavior of SetDIBits funcion.
If someone have comments on this subject, please post here.