Servidores de automatización

La automatización permite que la aplicación manipule objetos implementados en otra aplicación o exponga objetos para que se puedan manipular. Un servidor de Automatización es una aplicación que expone objetos programables (denominados objetos de automatización) a otras aplicaciones (denominadas clientes de automatización). Los servidores de automatización a veces se denominan componentes de automatización.

Exponer objetos de automatización permite a los clientes automatizar determinados procedimientos mediante el acceso directo a los objetos y la funcionalidad que el servidor pone a disposición. Exponer objetos de esta manera es beneficioso cuando las aplicaciones proporcionan una funcionalidad útil para otras aplicaciones. Por ejemplo, un procesador de textos podría exponer su funcionalidad de revisión ortográfica para que otros programas puedan usarla. Por lo tanto, la exposición de objetos permite a los proveedores mejorar la funcionalidad de sus aplicaciones mediante la funcionalidad lista para usar de otras aplicaciones.

Estos objetos de automatización tienen propiedades y métodos como su interfaz externa. Las propiedades son atributos con nombre del objeto de automatización. Las propiedades son como los miembros de datos de una clase de C++. Los métodos son funciones que actúan sobre los objetos de automatización. Los métodos son como las funciones miembro públicas de una clase de C++.

Nota:

Aunque las propiedades son como miembros de datos de C++, no son accesibles directamente. Para proporcionar acceso transparente, configure una variable interna en el objeto automatización con un par de funciones miembro get/set para acceder a ellas.

Al exponer la funcionalidad de la aplicación a través de una interfaz común y bien definida, automatización permite compilar aplicaciones en un único lenguaje de programación general como Microsoft Visual Basic en lugar de en diversos lenguajes de macros específicos de la aplicación.

Compatibilidad con servidores de automatización

El objeto C++ visual y el marco MFC proporcionan una amplia compatibilidad para los servidores de automatización. Controlan gran parte de la sobrecarga que conlleva crear un servidor de automatización, por lo que puede centrar sus esfuerzos en la funcionalidad de la aplicación.

El mecanismo principal del marco para admitir automatización es el mapa de distribución, un conjunto de macros que se expande en las declaraciones y llamadas necesarias para exponer métodos y propiedades para OLE. Un mapa de distribución típico tiene este aspecto:

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()

El Asistente para clases y la Vista de clases ayudan a mantener los mapas de distribución. Cuando se agrega un nuevo método o propiedad a una clase, Visual Studio añade una macro correspondiente DISP_FUNCTIONo DISP_PROPERTYcon parámetros que indican el nombre de la clase, los nombres externos e internos del método o la propiedad y los tipos de datos.

El cuadro de diálogo Agregar clase también simplifica la declaración de clases de automatización y la administración de sus propiedades y operaciones. Cuando se usa el cuadro de diálogo Agregar clase para agregar una clase al proyecto, se especifica su clase base. Si la clase base permite La automatización, el cuadro de diálogo Agregar clase muestra los controles que se usan para especificar si la nueva clase debe admitir automatización, si es "OLE creatable" (es decir, si se pueden crear objetos de la clase en una solicitud de un cliente COM) y el nombre externo para que el cliente COM lo use.

El cuadro de diálogo Agregar clase crea después una declaración de clase, incluyendo las macros adecuadas para las características OLE especificadas. También agrega el código de esqueleto para la implementación de las funciones miembro de la clase.

El Asistente para aplicaciones MFC simplifica los pasos necesarios para poner en marcha la aplicación de servidor de automatización. Si activa la casilla Automatización de la página Características avanzadas, el Asistente para aplicaciones MFC agrega a la función de la aplicaciónInitInstance las llamadas necesarias para registrar los objetos de automatización y ejecutar la aplicación como servidor de automatización.

Qué desea hacer

Consulte también

Automation
Asistente para aplicaciones MFC