Typelib marshalling BSTRs

Mike Hearn mike at theoretic.com
Thu Jul 24 08:29:20 CDT 2003


On Thu, 2003-07-24 at 13:47, Ove Kaaven wrote:
> You have to use CoMarshalInterface, but of course you need an IStream
> interface to do this, which is probably why I haven't bothered to
> implement it yet. 

I implemented it by creating an HGLOBAL stream then locking the global
and doing a memcpy. Not especially high performance but it works and the
code is well insulated. I found the necessary flags were in the loword
of pFlags.

> As for the two spellings of marshal, I think the original DCE RPC
> reference code (that MS-RPC was designed as a clone of) was the original
> culprit, using the "marshall" spelling everywhere, and since Microsoft
> adopted (embraced and extended) their API, they adopted their spelling
> too. I assume the original DCE engineers were exactly that, just
> engineers, not English majors (perhaps they got confused by the
> unrelated noun (and name) marshall or something). Microsoft's OLE
> department knew how to spell, though, so that's why we have
> CoMarshalInterface in OLE, and Ndr*Marshall in MS-RPC.

Hehe, yes, this sounds possible. Well, no matter, I was just a bit
curious.

Anyway, dispatch variant marshalling works now. On to the next crash :)

thanks -mike




More information about the wine-devel mailing list