自动化使您的应用程序能够操作在另一个应用程序中实现的对象,或公开对象,以便可以对其进行操作。 自动化客户端是一个可以操作属于另一个应用程序的公开对象的应用程序。 公开对象的应用程序称为自动化服务器。 客户端通过访问这些对象的属性和函数来操作服务器应用程序中的对象。
自动化客户端的类型
有两种类型的自动化客户端:
动态(在运行时)获取有关服务器的属性和操作的信息的客户端。
拥有指定服务器的属性和操作的静态信息(在编译时提供)的客户端。
第一种类型的客户端通过查询 OLE 系统 IDispatch 的机制来获取有关服务器方法和属性的信息。 尽管该技术适用于动态客户端,IDispatch 对于静态客户端来说很难使用,因为在这种情况下,驱动的对象必须在编译时已知。 对于静态绑定客户端,Microsoft基础类提供 COleDispatchDriver 类。
静态绑定客户端使用与客户端应用程序静态链接的代理类。 此类提供对服务器应用程序的属性和操作的类型安全 C++ 封装。
该类 COleDispatchDriver 为自动化客户端提供主体支持。 使用“ 添加新项 ”对话框创建派生自 COleDispatchDriver的类。
然后,指定描述服务器应用程序对象的属性和函数的类型库文件。 “添加项”对话框读取该文件,并创建COleDispatchDriver派生类。应用程序可以调用其中的成员函数,以类型安全的方式在C++中访问服务器应用程序的对象。 从 COleDispatchDriver 继承的其他功能简化了调用适当的自动化服务器的过程。
处理自动化客户端中的事件
如果要在自动化客户端中处理事件,则需要添加接收器接口。 MFC 提供向导支持来为 ActiveX 控件添加接收器接口,但不支持其他 COM 服务器。