On Tuesday 15 July 2003 07:34 am, Ove Kaaven wrote:
tir, 15.07.2003 kl. 12.38 skrev Mike Hearn:
Another question (sorry ;) - is it possible to only merge the parts that touch ole32.dll, and continue to use native oleaut32 and rpcrt4?
I'm not sure. I'd expect native rpcrt4 (at least the NT/2000 versions of it) to do some stuff that Wine doesn't support, like NT LPC ports (which is a kernel feature exported by ntdll, and as far as I know this is not implemented in wine). Perhaps the win95/98 version of rpcrt4 has a small chance of working.
Native W98SE rpcrt4 & ole* dll's work reasonably well, or used to. They are often very ornery until you drag in a crapload of native supporting dll's. Ove is precisely correct about what will happen with NT/2000/XP rpcrt4. They barf calling the LPC Ports API's. This is why I have placed those API's on my todo list (more like totrytodo list ;) ).
ie, basically - how many crosscalls are there between wine code in ole32, oleaut32, rpcrt4 - do your patches that add inter-thread marshalling depend explicitly on your typelib marshaller?
oleaut32 and ole32 has in theory completely independent marshallers, you can use any combination as long as they use compatible transports, in this case that both use rpcrt4's dcom stuff. So you can use Marcus's oleaut32 code (as long as you adapt it for RPC), it doesn't matter for ole32. Though you probably can't use native oleaut32 with builtin rpcrt4, because like I mentioned earlier, the core of the typelib marshaller should have been in rpcrt4, and that's where native oleaut32 expects it to be. And as you may have noticed, native ole32 uses a lot of undocumented rpcrt4 features that I haven't figured out the exact behaviour of.
Sounds right to me.