【问题标题】:Can a managed COM object unload or terminate itself?托管 COM 对象可以自行卸载或终止吗?
【发布时间】:2011-01-05 10:38:37
【问题描述】:

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

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

  2. 允许工具栏在出现未处理的异常时自行卸载,而不是允许异常导致资源管理器崩溃

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

【问题讨论】:

  • 也许你可以让它加载,但只有在某些应用程序运行时才显示 UI/工具栏。我假设 UI/工具栏是在运行时创建的。
  • 是的,UI 是在运行时创建的。

标签: c# exception com mutex


【解决方案1】:

让我们谈谈方式#1。 查看接口 IClassFactory - 默认情况下或由您实现的对象创建任何(!)COM 对象。所以只需通过检查是否可以创建类实例的方式来实现这一点

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多