Typelib marshalling BSTRs
Mike Hearn
mike at theoretic.com
Tue Jul 22 06:25:04 CDT 2003
On Mon, 2003-07-21 at 17:30, Ove Kaaven wrote:
> > I found that it's in IDispatch_Invoke_Stub - it calls IDispatch::Invoke
> > on the actual object and crashes, in native shdocvw code. So, I guess
> > the inputs its given there are incorrect somehow. I'll look into it some
> > more.
>
> OK.
I found the problem was due to the location of the riid = NULL
initializer code. For some reason, when the: REFIID riid = NULL; line is
at the function prologue, assigning to it using *ppMemory doesn't work.
If the variable is initialized to NULL inside the RPC TryFinally area,
just before the call to NdrSimpleStructUnmarshall, it works OK.
So, I'm CCing Greg as well, to see if he knows why the Wine SEH code
might interfere with setting the values like that. As it is, until the
actual problem is found I just have to remember to edit the midl output.
thanks -mike
More information about the wine-devel
mailing list