Typelib marshalling BSTRs

Ove Kaaven ovek at arcticnet.no
Sun Jul 20 06:57:41 CDT 2003


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.





More information about the wine-devel mailing list