托管COM对象可以卸载还是自行终止?

时间:2010-01-15 09:19:02

标签: c# exception com mutex

我有一个用C#编写的COM对象,它是Windows任务栏的工具栏(实现IDeskSite)。我想要,

  1. 如果某个应用程序正在运行,则阻止加载任务栏

  2. 允许工具栏在未处理的异常情况下卸载,而不是允许异常导致资源管理器崩溃

  3. 对于#1,我知道我可以使用Mutex来检查应用程序是否正在运行,但我不确定如何防止继续由explorer.exe进程加载COM对象或如何通知处理对象出错并需要卸载的过程。

1 个答案:

答案 0 :(得分:0)

让我们谈谈#1的方式。 查看接口IClassFactory - 任何(!)COM对象是默认创建的,也可以由您实现的创建。因此,只需检查是否可以创建类实例