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