Re: what keeps a COM object alive?

2013-06-12 Thread Sean Cavanaugh
On 6/11/2013 10:38 PM, finalpatch wrote: A typical COM server would create a new object (derived from IUnknown), return it to the caller (potentially written in other languages). Because the object pointer now resides outside of D's managed heap, does that mean the object will be destroyed when

Re: what keeps a COM object alive?

2013-06-12 Thread finalpatch
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

Re: what keeps a COM object alive?

2013-06-12 Thread Richard Webb
On Wednesday, 12 June 2013 at 14:41:05 UTC, finalpatch wrote: 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. Juno does this by allocating the object on the non-gc heap,

Re: what keeps a COM object alive?

2013-06-12 Thread finalpatch
Richard Webb we...@beardmouse.org.uk writes: On Wednesday, 12 June 2013 at 14:41:05 UTC, finalpatch wrote: 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. Juno does

Re: what keeps a COM object alive?

2013-06-12 Thread Richard Webb
I was referring to the COM server support stuff in the Juno library, which allocates COM objects outside the GC heap so the GC will never collect them. See https://github.com/JesseKPhillips/Juno-Windows-Class-Library/blob/master/juno/com/core.d#L3147 for an example.

what keeps a COM object alive?

2013-06-11 Thread finalpatch
A typical COM server would create a new object (derived from IUnknown), return it to the caller (potentially written in other languages). Because the object pointer now resides outside of D's managed heap, does that mean the object will be destroyed when the GC runs? A normal COM object