Share via


自动化服务器

利用自动化,您的应用程序可以操作在其他应用程序中实现的对象,或者公开对象以允许操作这些对象。 自动化服务器是将可编程对象(称为自动化对象)公开到其他应用程序(称为自动化客户端)的应用程序。 自动化服务器有时称为自动化组件。

通过公开自动化对象,客户端可以通过直接访问对象和服务器提供的功能来自动执行某些过程。 当应用程序提供对其他应用程序有用的功能时,以这种方式公开对象有很大好处。 例如,字处理器可能公开其拼写检查器功能以便让其他程序使用它。 公开对象后,供应商便能使用其他应用程序的现成功能改进其应用程序的功能。

这些自动化对象将属性和方法作为其外部接口。 属性是自动化对象的命名特性。 属性与 C++ 类的数据成员类似。 方法是处理自动化对象的函数。 方法与 C++ 类的公共成员函数类似。

备注

尽管属性与 C++ 数据成员类似,但前者不可直接访问。 若要提供透明访问,请使用一对 get/set 成员函数在自动化对象中设置一个内部变量来访问这些属性。

通过定义完善的常用接口公开应用程序功能后,自动化实现了在单个通用编程语言(如 Microsoft Visual Basic)中(而不是在各种特定于应用程序的宏语言中)生成应用程序。

对自动化服务器的支持

Visual C++ 和 MFC 框架为自动化服务器提供了广泛的支持。 它们处理了创建自动化服务器所涉及的大部分工作,从而让您将精力放在应用程序的功能上。

用于支持自动化的框架的主要机制是调度映射,即扩展到公开 OLE 的方法和属性所需的声明和调用中的一组宏。 典型的调度映射如下所示:

BEGIN_DISPATCH_MAP(CMyServerDoc, COleServerDoc)
DISP_PROPERTY(CMyServerDoc, "Msg", m_strMsg, VT_BSTR)
DISP_FUNCTION(CMyServerDoc, "SetDirty", SetDirty, VT_EMPTY, VTS_I4)
END_DISPATCH_MAP()

类向导和类视图可帮助维护调度映射。 向某个类添加新方法或属性时,Visual Studio 将添加对应的 DISP_FUNCTIONDISP_PROPERTY 宏并使用指示类名、方法或属性的内部和外部名称以及数据类型的参数。

“添加类”对话框还简化了自动化类的声明及其属性和操作的管理。 当您使用“添加类”对话框向您的项目添加类时,应指定其基类。 如果基类允许自动化,则“添加类”对话框将显示一些控件,您可使用这些控件指定新类是否应支持自动化、新类是否是“OLE 可创建的”(即,类的对象是否可以应来自 COM 客户端的请求而创建)以及 COM 客户端要使用的外部名称。

“添加类”对话框随后将创建一个类声明,其中包括你已指定的 OLE 功能的相应宏。 它还会为你的类的成员函数的实现添加主干代码。

MFC 应用程序向导简化了让自动化服务器应用程序起作用所涉及的步骤。 如果你选中了“高级功能”页中的“自动化”复选框,MFC 应用程序向导会向应用程序的 InitInstance 函数添加注册自动化对象并将应用程序作为自动化服务器运行所需的调用。

你希望做什么

另请参阅

自动化
MFC 应用程序向导