Typelib marshalling BSTRs
Mike Hearn
mike at theoretic.com
Wed Jul 23 10:28:58 CDT 2003
So, moving on from that problem, I think my woes (currently) are caused
by the NDR engine not handling VT_DISPATCH variants.
in wire_size():
case VT_DISPATCH:
FIXME("wire-size interfaces\n");
that causes VARIANT_UserMarshal to skip doing anything special for
VT_DISPATCH variants, when I think in reality, it should call
NdrInterfacePointerMarshall (btw, what's up with two spellings of
"marshal"?) to get the IDispatch* into the stream.
While rather roundabout, I think it seems clear that this is what's
needed. The problem then becomes one of NdrInterfacePointerMarshall()
needing information that isn't available from inside
VARIANT_UserMarshal, like the MIDL_STUB_BUFFER pointer.
Greg, as you are the relevant Guru here and Ove is probably a bit pissed
off with all my questions, what should we be doing here? If we are meant
to use NdrInterfacePointerMarshall to handle VT_DISPATCH variants, how
do we get the args it needs?
thanks -mike
More information about the wine-devel
mailing list