自动化 (原来称作为 OLE 自动化) 使该应用程序来操作应用程序中实施的对象,或者公开对象,所以它们可以进行操作。
自动化服务器 是应用程序 (COM 服务器的类型)。公开其功能通过 COM 接口与其他应用程序,调用 自动化客户。 公开可以自动化客户通过直接访问对象并使用它们提供的服务来自动化某些函数。
自动化服务器和客户端使用始终从 IDispatch 派生的 COM 接口并采用和返回调用自动化类型的一组特定的数据类型。 可以自动化任何对象公开自动化接口,提供可以从其他应用程序访问的方法和属性。 自动化对 OLE 和 COM 对象可用。 自动化的对象可能本地或远程的 (在其他计算机访问网络);因此有两个类别的自动化:
自动化 (本地)。
远程的自动化 (在为网络,使用分布式 COM 或 DCOM)。
公开对象是有益的当应用程序提供的功能对其他应用程序是非常有用的。 ActiveX 控件是一个自动化服务器的类型;例如,托管的ActiveX控件的应用程序是控制的自动化客户端。
另举一例,字处理器可能公开其他程序的拼写检查功能。 使用其他应用程序中选取的功能,该对象公开从而使提供商以改善其应用程序的功能。 因此,自动化应用一些面向对象的编程原则,例如可重用性和封装,级别应用程序。
更重要的是支持自动化提供给用户和解决方案提供商。 通过公开应用程序功能通过常用,显式定义的接口,自动化使得它可以在一个单一的通用编程语言,如Microsoft Visual Basic中,而不是在不同的应用程序特定的宏语言,构建全面的解决方案。
许多商务应用程序,如 Microsoft Excel 和 Microsoft Visual C++,允许自动化其大部分功能。 例如,在 Visual C++ 中,可以编写 VBScript 宏以自动化生成,编辑或调试任务代码的特性。
自动化传递参数
创建自动化方法的一个困难是帮助提供一个统一的“安全”的机制来传递的自动化服务器和客户端之间的数据。 自动化使用 VARIANT 类型传递数据。 VARIANT 类型是带标记的并集。 它有值的数据成员(这是一个匿名的C + +联盟)和指示存储在工会的信息类型的数据成员。 VARIANT 类型支持很多标准数据类型:2 -和 4-字节的整数,4 位和8 位浮点数、字符串和布尔值。 此外,它支持 HRESULT (OLE 错误代码),CURRENCY (一定点数字类型) 和 DATE (绝对日期和时间) 类型,以及指向 IUnknown 和 IDispatch 接口。
VARIANT 类型是在 COleVariant 类封装。 支持的 CURRENCY 和 DATE 类是COleCurrency和COleDateTime 类封装。
自动化示例
此示例使用AUTOCLIK 了解自动化方法和学习远程自动化的基础。
ACDUAL添加双重接口到一个自动化服务器应用程序。
CALCDRIV自动化客户端应用程序驱动MFCCALC。
INPROC演示一个进程内自动化服务器应用程序。
IPDRIVE自动化客户端应用程序驱动INPROC。
MFCCALC:演示自动化客户端应用程序
您想进一步了解什么?
你希望做什么?
自动化传递参数