s?, 20.07.2003 kl. 13.38 skrev Mike Hearn:
Sorry for the late answer, I've been busy attending debconf3...
Ah, no problem, I hope it was good :)
Not bad.
IDispatch should not be marshalled by the typelib marshaller, the method arguments it use cannot be represented by a typelib, as you've seen. The MIDL code in oaidl_p.c must be used instead. You need to change the registry to use the right marshaller, I think the necessary winedefault.reg changes were included in my patch, but I'm not sure.
There were some changes yes, it seems for some reason they are not being used. I will double check. I probably simply forgot to remerge the default registry, thinking about it. My mind wasn't very clear on anything by friday :)
I've mentioned before the InstallShield hack in typelib.c (the "if (1 || ...)"), right? I suspect that you *must* disable it. or it'll probably keep reinstalling the wrong marshaller into the registry every time you run it.
In Delphi/Object Pascal passing an array like that would perform a copy by value, not pass the address. I (wrongly) assumed C would have similar rules. This is what I get for learning it as I go :)
Hmm, OK.