-----Original Message----- From: Mike Hearn [mailto:mike@theoretic.com] Sent: 23 July 2003 23:09 To: Robert Shearman Cc: wine-devel@winehq.org Subject: Re: Typelib marshalling BSTRs
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.
Sorry, just realised that this the VARIANT_UserMarshal function is in oleaut32. On Windows, this calls WdtpInterfacePointer_UserMarshal for both the VT_UNKNOWN and VT_DISPATCH cases, which in turn calls CoMarshalInterface.
I hope this helps,
Rob
On Thu, 2003-07-24 at 03:38, Robert Shearman wrote:
Sorry, just realised that this the VARIANT_UserMarshal function is in oleaut32. On Windows, this calls WdtpInterfacePointer_UserMarshal for both the VT_UNKNOWN and VT_DISPATCH cases, which in turn calls CoMarshalInterface.
Thanks, I didn't know about those functions. Unfortunately I can't see the prototypes anywhere, and don't really have time right now to disassemble native code to find out. I'll have a look today and see what the best way of dealing with this situation might be....