"Mike McCormack" mike@codeweavers.com wrote:
This is a hack, however the correct way to achieve bug compatiblity is complicated.
MSI should run custom actions in a separate process and communicate with the main installer process via COM. This is quite a lot of work which needs to be done anyway, but this patch will make us bug compatible with Microsoft's implementation in the mean time.
Furthermore, writing a test case for this behavior requires adding a dll contain custom action code to the dlls/msi/tests directory. I can supply an MSVC project showing the problem.
See bug 5768 (http://bugs.winehq.org/show_bug.cgi?id=5768) for more details.
Does behaviour of MsiGetPropertyA and MsiGetPropertyW differ in that case? I'd be interested to have a look at the test case.
--- a/dlls/msi/custom.c +++ b/dlls/msi/custom.c @@ -439,6 +439,8 @@ static DWORD WINAPI ACTION_CallDllFunction(thread_struct *stuff) TRACE("calling function (%s, %s)\n", debugstr_w(stuff->source), debugstr_w(stuff->target));
- TlsSetValue( tls_slot, (void*) 1 );
Shouldn't this be reset to 0 once a custom action has finished?