http://bugs.winehq.org/show_bug.cgi?id=5384
------- Additional Comments From ns03ja@brocku.ca 2006-22-07 18:20 ------- It looks like commenting out the check for a NULL pvData in SafeArrayPutElement() allows the Titan Quest installer to get past this point and actually finish successfully.
I looked in the tests for this and found the following:
#if 0 /* This is retarded. Windows checks every case of invalid parameters * except the following, which crashes. We ERR this in Wine. */ hres = SafeArrayPutElement(sa, indices, NULL); ok(hres == E_INVALIDARG, "Put NULL value hres 0x%lx\n", hres); #endif
Is it possible that this just throws an exception and the application catches it? It seems that the current behaviour isn't correct, or there's a bug earlier in the code that results in the passing of a NULL value later on. Apparently this test can't be crosscompiled either, which makes it more annoying to test.