在其最简单的形式中,COM 允许您从应用程序中的 DLL 实例化类似 C++ 的类。基本上它是围绕 LoadLibrary 和一些关于接口的约定的美化包装器。这称为使用进程内组件。
但是 COM 也支持进程外组件。如果从这样的组件实例化一个类,COM 将启动一个新进程。您的对象存在于上述过程中,并且对您透明地编组,因此您不必太在意它们的位置。它们甚至可能位于不同的计算机 (DCOM) 上。您还可以从已经运行的应用程序中获取对象。一个众所周知的例子是通过脚本控制 MS Office。这称为自动化(以前称为 OLE 自动化,对于该术语的确切含义存在一些混淆)。
有几篇很好的文章解释了(进程内)COM 如何在低级别工作(例如COM from scratch。我想知道当你的组件在进程外时它是如何工作的。特别是,IPC 对 COM 做了什么使用引擎盖下的进程之间进行通信?窗口消息、共享内存、套接字或其他东西?MSDN 将 COM 单独列为 IPC 方法,但我猜它必须在下面使用其他东西。在不同的情况下是否使用了不同的 IPC 方法(从 C++ 实例化一个 OOP 组件,从 VBScript 访问一个 Excel 文档,通过 OLE 将一个文档嵌入另一个文档)?看起来它们都是相同的底层技术。最后,编组如何适应图片?我相信有必要序列化方法参数以在进程之间传输,对吗?
| 归档时间: |
|
| 查看次数: |
767 次 |
| 最近记录: |