• Robert Shearman's avatar
    oleaut32: Fix circular reference count in Typelib marshaler. · b0218db9
    Robert Shearman authored
    The current method of handling typelib-marshaled interfaces that derive
    from IDispatch is to query for an IDispatch pointer from the proxy, but
    this causes a circular reference count.
    Fix the reference counting by loading using the IRpcProxyBuffer of
    IDispatch without an outer unknown, so that the lifetime is controlled
    by the typelib-marshaled interface's proxy. The IDispatch proxy now
    shares the same channel as the typelib-marshaled interface, so fix up
    the stub side to handle this.
    b0218db9
tmarshal.c 50.6 KB