0

我正在尝试实现以下功能,我觉得我真的很接近但还不是很接近。我发布这个问题是为了看看是否有人可能已经做过类似的事情,对如何最好地实现这一点有一些见解。

在一个应用程序(称为 MainApp)中,我正在创建需要从另一个应用程序(称为工具)访问的 COM 对象。为此,我需要将 MainApp 中的对象注册到 ROT。由于此问题范围之外的原因,我正在使用作为服务运行的自定义 IRunningObjectTable 实现;此外,COM 对象需要在创建时将自己注册到 ROT 中,并在不再需要时自行取消注册。这意味着 ROT 必须只持有对 COM 对象的弱引用,并且不能延长它们的生命周期。

此外,当 COM 对象仍然存在时,ROT 可能会被关闭。这不得导致 MainApp 中的泄漏或崩溃。

该工具将询问 ROT 并获取已注册对象的接口。它将从对象中提取信息并在执行此操作时使它们保持活动状态,但在处理完它们后立即释放它们。

我面临的主要问题与实现弱表注册以及让 COM 对象注册和撤销自己而不是由其创建者注册或撤销有关。

感谢您的任何提示。

4

0 回答 0