[OLE] Better handling of References

Mike Hearn mike at navi.cx
Wed May 26 06:24:47 CDT 2004


On Wed, 26 May 2004 12:58:19 +0000, fenix wrote:
> Well Soft References are used in many places in COM (for example D3D textures/surfaces use it on windows)

OK :) I have not seen this technique before, but then I've never
implemented lots of COM objects all working together.
 
> I can't have a backtrace as i can't get winedbg working correctly on
> installshield programs :( But i'll send you the traces later (when i'll
> be back home).

What does winedbg do/not do? I've been able to use it with InstallShield
before: you may have to attach to it after the program has started though.

> For what i have see it's a problem of ITypeInfo::Invoke when it should
> returns a Pointer to an IUnknown Variant. InstallShield complains about
> Objects References not set !!

Yes, this problem has plagued us for ages. It seems to be a race condition
of some sort, Marcus has debugged this extensively.

By "should return a pointer to an IUnknown variant" do you mean that
pVarResult should hold a VT_UNKNOWN variant? Do you know what
function/property it's trying to use?

> Yes, but as the code of ITypeLib2/ITypeInfo don't seems thread safe at
> all ... (anyway i'll fix it) :)

Yeah I know :) It just seems that we might as well write new code to be
thread safe so when somebody comes to make it thread safe they have less
work to do ...

> No, i have only to no have a lot of debug traces (i have added on my
> tree) on Variant* Operations when clearing already empty Variants

OK, that makes sense.

thanks -mike




More information about the wine-devel mailing list