handling the death of a COM app from .NET

  • Thread starter Thread starter Jiho Han
  • Start date Start date
J

Jiho Han

I have a winforms app that creates a COM application(namespace imported through references).
I would like to be able to know when the COM application is closed by the user in the .NET app. The COM app does not fire an event when it's closing - there is no published event.

Is there a way to find out if the COM app is no longer available or not? When the COM app is dead, the reference in .NET app is still valid, that is to say, it's not null. So when I try to access a method or a property using the reference, I get a COMException - RPCServer is not available.

Additionally, when I try to closed the COM app, I get a messagebox saying that there are active COM objects in the application(in the COM app). I am assuming that this is a feature of the COM app which I didn't write. Can someone explain why this happens? I am not very familiar with COM internals. I would think the reference is from .NET to COM not the other way around.

Thanks much.

Jiho
 
This might apply to you as well:

http://www.dotnetinterop.com/faq/?q=OfficeCleanup
http://support.microsoft.com/?kbid=317109

-----------
Ajay Kalra
(e-mail address removed)

Jiho Han said:
I have a winforms app that creates a COM application(namespace imported through references).
I would like to be able to know when the COM application is closed by the
user in the .NET app. The COM app does not fire an event when it's
closing - there is no published event.
Is there a way to find out if the COM app is no longer available or not?
When the COM app is dead, the reference in .NET app is still valid, that is
to say, it's not null. So when I try to access a method or a property using
the reference, I get a COMException - RPCServer is not available.
Additionally, when I try to closed the COM app, I get a messagebox saying
that there are active COM objects in the application(in the COM app). I am
assuming that this is a feature of the COM app which I didn't write. Can
someone explain why this happens? I am not very familiar with COM
internals. I would think the reference is from .NET to COM not the other
way around.
 
Back
Top