Typelib marshalling BSTRs

Mike Hearn mike at theoretic.com
Wed Jul 23 17:09:10 CDT 2003

On Wed, 2003-07-23 at 23:04, Robert Shearman wrote:
> I don't know about NdrInterfacePointerMarshall, but I don't think it should
> get there to start with (see below). BTW, I think the two spellings depends
> on whether the word is used as a verb or as a noun.

Yeah, I considered that, but MSDN seems to use marshal as a verb as
well. *shrug*

> I think the code
> should not try to marshal/unmarshal the data in rpcrt4, but should use the
> PSOAInterface code in oleaut32 (according to the registry entry for
> Interfaces\[CLSID of IWebBrowser2]\ProxyStubClsid32). It would probably be
> best to find out why this is not happening (maybe by moving some oleaut32
> code to rpcrt4?).

Well, the code doesn't actually marshal IWebBrowser2, it operates
entirely in terms of IDispatch interfaces. Once the dispatch interface
for the WebBrowser control is marshalled into another thread, the code
starts poking it via Invoke, in this case retrieving the Document
property which also returns a dispatch interface.

I'm pretty sure just marshalling IWebBrowser2 would work, but
unfortunately the nature of the Java-COM bridge we use (neva coroutine)
means that it all goes via IDispatch. That, in turn, means we have to
support marshalling of VT_DISPATCH variants.

thanks -mike

More information about the wine-devel mailing list