http://bugs.winehq.org/show_bug.cgi?id=29888
--- Comment #5 from Nikolay Sivov bunglehead@gmail.com 2012-02-21 01:32:43 CST --- (In reply to comment #4)
Created attachment 39001 [details] Patch that fixes MPLAB but probably breaks something else
The problem has something to do with the VT_BSTR|VT_BYREF variant type. Currently parameters of this type are treated like a simple pointer (32-bit integer), but if we change DispCallFunc to pass call_method a pointer to the pointer instead, MPLAB's Logic Analyzer works and doesn't crash. Oddly, even though this works for MPLAB, I couldn't come up with any test case that confirms this behavior.
Help figuring this out would be appreciated--I'm out of ideas.
You need V_BSTRREF here, tests should be added to test_DispCallFunc(). Also don't forget to fix 64 bit part as well.