http://bugs.winehq.org/show_bug.cgi?id=4770
--- Comment #9 from Rob Shearman robertshearman@gmail.com 2009-11-15 16:56:40 --- Created an attachment (id=24772) --> (http://bugs.winehq.org/attachment.cgi?id=24772) Hack to get the installer further
So I tried this app out today and the symptoms that I saw was that it got into an infinite loop calling IDispatch::Invoke to remotely call a function that calls MsiRecordReadStream.
This one was a real pain in the arse to debug due to the subtle nature of the bug and the sheer amount of code being executed. It turns out that the bug is that the value returned from that call isn't copied back into the memory that was passed into the function.
This patch hacks up IDispatch_Invoke_Proxy to cope with the specific type of byref type that is used by this installer. A more complete patch will have to work for all byref types and analyse whether the parameters to the remote function are used correctly.