Is COM aggregation by an external object meant to work?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Is COM aggregation by an external object meant to work?

Antony Blakey-4
Hi,
    I've got a problem that _could_ be an Dolphin internal problem, so
I'm trying to find out if anyone else has either 1) seen this behaviour
or 2) had no problems doing this kind of thing. Most likely it's my
fault, but anyway...

I have an object implementing IInternetProtocol (i.e. Pluggable Protocol
Handlers for IE) that's being aggregated into an external OS supplied
object. COMObjectStub sees a QI for that IID which it delegates to its
OuterUnknown, but the innerQI never gets called, and Dolphin dies with a
native stack overflow in URLMon, which could be an aggregate problem.
I'd expect to NOT see a call for that interface on the delegating QI,
but rather only the inner non-delegating QI, because I'm not exposing my
object except via the external aggregation. I have instrumented all the
inner and outer QIs in COMObjectStub and that's the only request for
that IID. My ability to track this down is compromised because I can't
cross into the VM, to see if the last param to CoCreateInstance is being
used to return a non-delegating IUnknown.

So the nub is: is this known, definitively, to work for other cases
where a non-ST object aggregates an ST object? I've been chasing this
for the last 12 hours, so I thought I'd better check.

-------------------------
Antony Blakey
mailto:[hidden email]
Linkuistics Pty Ltd
Adelaide, South Australia