ole help please! invoke fn issue

us at the-edmeades.demon.co.uk us at the-edmeades.demon.co.uk
Fri Jun 14 04:35:22 CDT 2002


marcus at jet.franken.de wrote:
> Actually I think just the DATE part should be out there, which is 8 byte
> long.

I'm not convinced. The following tracepoint:
trace:ole:ITypeInfo_fnInvoke set 0 to disparg type 7 vs 12

This shows that the arg 0 was supplied by the application as a VT_DATE but the function
itself wants a VT_VARIANT. I have found whatever is the first word on the stack is later
passed into another variant function as the vt type field. Putting the whole
variant onto the stack is the only way I have got beyond that function.

If the function took a VT_DATE, you may well be correct. I think we need to change
that code to memcpy onto the args storage the variant size (or sizeof DWORD, I 
guess as that is minimum size for an arg by the way we currently have it coded).
If you agree, I'll have a go at doing a patch, although if you understand it
better than me please (really - please!) feel free to code it for me.

My 'hack' definitiely got me further through to the next point which is a bug
in the oleaut32 vardate handling routines which I am currently hacking. My last
change cause the app to crash the whole of Linux (no mouse, keyboard etc!). Rebooting
now to try again...

Oh I love having a few days off with nothing to do except fiddling with wine internals!

Regards,
Jason




More information about the wine-devel mailing list