Patches for "RegGetValue" and "SetDIBits"

James Hawkins truiken at
Tue Jul 15 23:02:38 CDT 2008

On Tue, Jul 15, 2008 at 10:56 PM, Mathias Kosch <info at> wrote:
> Dear Sirs and Madams,
> while configuration "The Bat!" for wine I had to fix some issues with
> Wine (version 1.1.1). I am now sending you the patches, because I was
> told so in Bugzilla. I hope, they can be applied to the next version
> of Wine so I don't need to recompile myself.
> The first problem relates to the functions "RegGetValueW" and
> "RegGetValueA" in "advapi32".
> In case dwFlags contains the Bits (RRF_RT_REG_EXPAND_SZ |
> RRF_RT_REG_SZ) and not the bit RRF_NOEXPAND the function will return
> ERROR_INVALID_PARAMETER. This is wrong behaviour, because expansion
> will transform a result of type RRF_RT_REG_EXPAND_SZ into
> RRF_RT_REG_SZ which satisfies the request.
> This will especially make the use of the flag "RRF_RT_ANY" impossible.
> The patch can be found in the attached file "registry.c.patch".
> The second problems relates to the function "X11DRV_SetDIBits" in
> "winex11.drv". It causes "The Bat!" to display white squares instead
> of colored icons.
> The mistake is inside the recently added optimization code for the
> case "where the input bits are in exactly the same format as the
> internal representation".
> The assignment
>> dbits = (LPBYTE)bits + (dstwidthb * (lines-1));
> obviously needs to be changed to:
>> dbits = (LPBYTE)dbits + (dstwidthb * (lines-1));
> The patch can be found in the attached file "dib.c.patch".

Only one patch per mail.  Please read about sending patches to Wine at
[1].  Also, you forgot to send a test case as was mentioned in the bug


James Hawkins

More information about the wine-devel mailing list