http://bugs.winehq.org/show_bug.cgi?id=29888
--- Comment #7 from Nikolay Sivov bunglehead@gmail.com 2012-02-26 02:58:33 CST --- (In reply to comment #6)
Created attachment 39084 [details] Test that demonstrates that the patch is incorrect
(In reply to comment #5)
You need V_BSTRREF here, tests should be added to test_DispCallFunc().
That's the trouble: Even though this patch works for MPLAB, I don't have any test that verifies it. In fact, I made a test that shows that this patch does NOT match Windows. So why does it work?
If it doesn't crash with a patch it doesn't mean it works as it supposed to. And patch is wrong obviously - you don't need another indirection level for BYREF argument, V_BSTRREF() is already a pointer. That means default case for V_UI4() should work just fine and you don't really need special case for VT_BSTR|VT_BYREF.
So I guess you need to debug it more. Also patch correctness discussions should use wine-devel probably, so more people could comment.