This patch fixes the base64 tests on Vista (http://test.winehq.org/data/b3f4091b47e70681a9909bfccd19dee95657fabd/vista_A...), however to me this feels wrong.
In the call to pCryptStringToBinaryA, Vista is returning TRUE in some cases, and for those is sometimes not setting GetLastError(), and in others is setting it to ERROR_INVALID_DATA (even when it is returning TRUE!). For these cases, it is also not skipping any characters.
To me, without understanding this in any more detail, it looks as if Vista is broken here (and thus the Vista return parts should be marked as broken()). However, Vista may be doing the right thing, and thus the behaviour in these cases has changed between XP and Vista. The latter seems more likely, but I do not have any experience in this area, nor understand these tests well enough to say one way or the other.
Any ideas?
- Reece