handling the death of a COM app from .NET

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
 
A

Ajay Kalra

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top