Hi Sean, Thanks for your reply. I have no problem with client side COM programming in D. What I'm asking is if I write a COM object in D (in this case the D code is a COM server), then it looks like I have to store a reference to that COM object in some globally reachable place (eg. add it to a global array, so that it won't be destroyed by the GC while the C++/.NET client is still using it), and then manually remove that reference when the object's ref count drops to zero for the GC to collect it.
This feels even more cumbersome than in C++ because in C++ we can simply delete this in the Release() method, there's no need to store a reference in a global place. Sean Cavanaugh <[email protected]> writes: > COM is by definition ref counted. In D you generally need to store a > COM pointer in a struct and maintain the refcount with that struct > (increment on copy, decrement in destructor, etc). Its not too hard, > as 'alias this' usage can wrap the pointer's methods easily enough. > > -- finalpatch
