Dmitry Timoshkov dmitry@baikal.ru writes:
This allows to differentiate strings and write appropriate rpc type (FC_C_C[W]STRING instead of FC_[W]CHAR).
This version of the patch limits write_array_tfs() to pass attributes to write_pointer_description() only for strings and avoids unwanted changes to other pointer types.
In order to test changes in the widl generated code under Windows and make sure that widl generates the correctly working code I had to compile widl with PSDK tools. This way I was able to test both 32-bit and 64-bit generated code. All the patches in this sequence have been tested under Windows as well as under Wine in both 32-bit and 64-bit builds of the rpcrt4 Wine tests.
It's also failing in 32-bit now (with the whole series applied):
../../../tools/runtest -q -P wine -T ../../.. -M ieframe.dll -p ieframe_test.exe.so ie && touch ie.ok ie.c:154: Test failed: FindConnectionPoint failed: 800706ba ie.c:177: Test failed: get_Visible failed: 800706ba ie.c:181: Test failed: put_Visible failed: 800706ba ie.c:185: Test failed: get_Visible failed: 800706ba ie.c:186: Test failed: Visible = 800706ba ie.c:189: Test failed: put_Visible failed: 800706ba ie.c:199: Test failed: Could not get IServiceProvider iface: 80004002 wine: Unhandled page fault on read access to 0x00000000 at address 0x6862ae92 (thread 0009), starting debugger...