Compartir a través de


Cómo: Crear un complemento COM para añadir características personalizadas a InfoPath

Microsoft Office InfoPath 2007 admite complementos COM para mejorar la experiencia del usuario a la hora de rellenar un formulario. Aunque es una aplicación nueva en Office InfoPath 2007, otras aplicaciones de Office, como Microsoft Office Word y Microsoft Office Excel, han admitido complementos COM desde Office 2000.

El complemento COM que admite Office InfoPath 2007 está disponible en el entorno de edición de formularios. Dicho entorno no se puede ampliar mediante el uso de complementos COM.

La interfaz IDTExtensibility2

El entorno de edición de InfoPath proporciona compatibilidad con la interfaz IDTExtensibility2 que los programadores de complementos COM deben implementar. IDTExtensibility2 es un objeto de interfaz dual que proporciona cinco métodos que actúan como eventos en el entorno de edición. Dichos métodos permiten que el complemento COM reaccione ante las situaciones de inicio y cierre del entorno que se enumeran en la tabla siguiente.

Interfaz Descripción

OnAddInsUpdate (ByVal custom() As Variant)

Ocurre cuando se carga o descarga un complemento en el entorno.

OnBeginShutdown (ByVal custom() As Variant)

Ocurre cuando el entorno se está cerrando.

OnConnection(ByVal Application As Object, ByVal ConnectMode As ext_ConnectMode, ByVal AddInInst As Object, ByVal custom() As Variant)

Ocurre cuando se carga un complemento en el entorno.

OnDisconnection (ByVal RemoveMode As ext_DisconnectMode, ByVal custom() As Variant)

Ocurre cuando se descarga un complemento del entorno.

OnStartupComplete (ByVal custom() As Variant)

Occurre cuando se ha completado el inicio del entorno.

Registro de los complementos COM

Todas las aplicaciones de Office, como InfoPath, usan el Registro para enumerar la colección de complementos COM, almacenar el estado de la conexión y almacenar información de carga de inicio o de permiso. El nombre de cada complemento para los complementos COM de InfoPath aparece debajo de la siguiente clave:

HKEY_CURRENT_USER\Software\Microsoft\Office\InfoPath\AddIns\

La clave del Registro para los complementos COM que se han instalado para que todos los usuarios del equipo cliente puedan usarlos se encuentra en el subárbol de Registro HKLM:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\InfoPath\AddIns\

El nombre de la clave del Registro corresponde al ProgIdAttribute del complemento y contiene los valores siguientes:

Nombre Tipo Descripción

FriendlyName

String

Nombre que aparecerá en el cuadro de diálogo Complementos COM y que se enumerará en la página Complementos del Centro de confianza.

Description

String

Cadena que aparecerá cuando se seleccione el complemento en el Centro de confianza.

LoadBehavior

DWORD

Especifica la forma de carga del complemento COM. El valor puede ser una combinación de 0, 1, 2, 8 y 16. Vea la tabla siguiente para obtener más información.

El valor DWORD para LoadBehavior debería contener un valor de descripción sobre cómo se carga el complemento COM en el entorno de edición. Dicho valor puede ser un valor de la tabla siguiente o una combinación de los valores que aparecen en dicha tabla. Por ejemplo, un complemento COM creado en Visual Studio 2005 tendrá un LoadBehavior de "3" cargado al iniciar la aplicación y se conectará.

Valor Descripción

0

Desconectado. El complemento se muestra inactivo en el cuadro de diálogo Complemento COM. box.

1

Conectado. El complemento se muestra activo en el cuadro de diálogo Complemento COM.

2

Cargar al iniciar. El complemento se carga y conecta cuando se inicia la aplicación host.

8

Cargar a petición. El complemento se carga y conecta cuando la aplicación host lo requiere; por ejemplo, cuando un usuario hace clic en un botón que utiliza funcionalidad contenida en el complemento.

16

Conectarse la primera vez. El complemento se carga y conecta la primera vez que el usuario ejecuta la aplicación host después de haber registrado dicho complemento.

Creación de un complemento COM administrado con Visual Studio 2005

Para crear un complemento COM administrado mediante Visual Studio 2005, cree un proyecto de complemento compartido de Visual Studio según se indica a continuación:

  1. Haga clic en Inicio, seleccione Todos los programas , Microsoft Visual Studio 2005 y, finalmente, haga clic en Microsoft Visual Studio 2005.

  2. En el menú Archivo, haga clic en Nuevo proyecto.

  3. En el panel Tipos de proyecto del cuadro de diálogo Nuevo proyecto , haga clic en la carpeta Otros tipos de proyecto y, a continuación, en Extensibilidad.

  4. En el panel Plantillas, haga clic en Complemento compartido.

  5. En el cuadro Nombre, escriba un nombre para el proyecto de complemento compartido.

  6. En el cuadro Ubicación, escriba una ruta de carpeta o haga clic en Examinar, seleccione una ruta de carpeta y, a continuación, haga clic en Aceptar. Aparecerá el Asistente para complementos compartidos.

  7. Haga clic en Siguiente en el Asistente para complementos compartidos. Aparecerá la página Seleccione un lenguaje de programación.

  8. Haga clic en Crear un complemento utilizando Visual Basic y, a continuación, en Siguiente. Aparecerá la página Seleccione una aplicación host.

  9. Desactive los cuadros próximos a cada aplicación, excepto Microsoft InfoPath y, a continuación, haga clic en Siguiente. Aparecerá la página Especifique un nombre y una descripción.

  10. Escriba el nombre del complemento COM en el cuadro Nombre del complemento.

  11. Escriba la descripción del complemento COM en el cuadro Descripción del complemento y, a continuación, haga clic en Siguiente. Aparecerá la página Elija las opciones del complemento.

  12. Active los cuadros Me gustaría que mi complemento se cargue cuando lo haga la aplicación host y Mi complemento debe estar disponible para todos los usuarios del equipo en el que se instaló, no sólo para la persona que lo instala.

  13. Haga clic en Siguiente para revisar la página Resumen y, a continuación, en Finalizar.

Una vez que Visual Studio haya creado un proyecto, verá dos proyectos en la ventana del Explorador de soluciones. El primero es el proyecto para el complemento COM y el segundo es un proyecto de instalación para la implementación de dicho complemento. El Asistente para complementos compartidos sólo inserta una referencia en la Biblioteca de objetos de Microsoft Office 12.0, por tanto, es necesario insertar una referencia a la biblioteca de objetos de InfoPath siguiendo las instrucciones siguientes:

  1. Haga doble clic en Mi proyecto para visualizar las propiedades del proyecto de complemento. Haga clic en la ficha Referencias para visualizar las referencias que se han añadido al proyecto automáticamente.

  2. Haga clic en el botón Agregar para visualizar el cuadro de diálogo Agregar referencia.

  3. En la ficha COM, haga doble clic en la Biblioteca de tipos de Microsoft.InfoPath 2.0 y, a continuación, haga clic en Aceptar.

  4. Al agregar una referencia en la Biblioteca de tipos de Microsoft InfoPath 2.0, también se agregan referencias a los tres ensamblados que se deben quitar: ADODB, MSHTML y MSXML2. En el Explorador de soluciones, en Referencias, haga clic con el botón secundario en cada una de estas referencias y, a continuación, haga clic en Quitar.

Visualización de la configuración del Registro

Siga las siguientes instrucciones para ver la configuración del Registro que se creará cuando se instale el complemento COM:

  1. Haga clic con el botón secundario en el nodo raíz del proyecto de instalación que se encuentra en el Explorador de soluciones. A continuación, haga clic en Ver, posteriormente en Editor y, por último, en Registro.

  2. En el panel de la izquierda, haga clic en el signo más para expandir HKEY_LOCAL_MACHINE, Software, Microsoft, InfoPath y AddIns.

  3. Haga clic en el nombre que se corresponda con su ProgID del proyecto de complemento compartido.

Para cambiar cualquier propiedad, haga clic con el botón secundario en la propiedad pertinente y, a continuación, haga clic en Ventana de propiedades y cambie el cuadro del Valor en la Ventana de propiedades.

Compilación y distribución del complemento compartido

Para compilar el complemento COM administrado para probarlo en el equipo en el que se desarrolló el proyecto del complemento compartido, haga clic con el botón secundario en el nodo raíz de dicho proyecto en el Explorador de soluciones y, a continuación, haga clic en Generar. Si el proyecto se genera sin problemas, puede iniciar el entorno de edición de InfoPath y comenzar a usar el complemento COM administrado. Si se está ejecutando una instancia de InfoPath, ciérrela antes de la generación del proyecto. Puede que sea necesario abrir el cuadro de diálogo de los complementos COM para comprobar que se ha registrado el complemento COM. Para abrir dicho cuadro de diálogo, siga las siguientes instrucciones:

  1. Abra el entorno de edición de InfoPath. La manera más fácil de hacerlo es abriendo una plantilla de formulario existente, que creará un nuevo formulario basado en dicha plantilla.

  2. Haga clic en Centro de confianza en el menú Herramientas.

  3. En la izquierda, haga clic en la categoría Complementos.

  4. En la sección Administrar, que se encuentra cerca del botón del cuadro de diálogo del Centro de confianza, seleccione Complementos COM de la lista y haga clic en el botón Ir a.

  5. En el cuadro de diálogo Complementos COM, verá el nombre del complemento recién creado y debería aparecer una casilla de verificación próxima a dicho complemento. Si no aparece, se debe a un error al cargar el complemento COM, que se enumerará en la sección Comportamiento de carga del cuadro de diálogo.

Para la compilación de un complemento COM con el fin de que se pueda usar en otro equipo diferente del equipo en el que se creó el proyecto de complemento compartido, debe seguir instrucciones adicionales para proteger el código. Para obtener información sobre la seguridad de los proyectos de complemento compartido a la hora de usarlos en otros equipos, vea los artículos siguientes:

Implementación de los complementos COM administrados en Office XP

Uso de la solución de correcciones de compatibilidad (shim) del complemento COM para implementar complementos COM administrados en Office XP

Aislamiento de las extensiones de Office con el asistente de correcciones de compatibilidad (shim) COM

Importante:

Si no se aísla el complemento COM, puede causar pérdidas de memoria e inestabilidad en la aplicación.

Nota:

Es posible que el archivo .msi no se instale adecuadamente en caso de que .NET Framework o cualquier ensamblado del proyecto de instalación aún no estén instalados en los equipos de destino. Además, no podrá distribuir dicho archivo ni podrá intentar instalarlo. También debe distribuir los otros archivos compatibles en la misma carpeta en la que se encuentra el archivo .msi que generó Visual Studio.

Codificación en el complemento COM

Los eventos de aplicación propios del entorno de edición de formularios de InfoPath se pueden capturar con el complemento COM. El complemento COM puede usar los siguientes eventos propios del objeto ApplicationEvents para responder a las acciones de los usuarios:

Evento Descripción

NewXDocument Evento

Ocurre cuando se crea un formulario nuevo.

Quit Evento

Ocurre cuando el usuario sale de InfoPath.

WindowActivate Evento

Ocurre cuando se activa cualquier ventana de documento.

WindowDeactivate Evento

Ocurre cuando se desactiva cualquier ventana de documento.

WindowSize Evento

Ocurre cuando se cambia de tamaño o se mueve cualquier ventana de documento.

XDocumentBeforeClose Evento

Ocurre inmediatamente antes de que se cierre cualquiera de los documentos abiertos.

XDocumentBeforePrint Evento

Ocurre inmediatamente antes de que se imprima cualquier documento abierto.

XDocumentBeforeSave Evento

Ocurre inmediatamente antes de que se guarde cualquier documento abierto.

XDocumentChange Evento

Ocurre cuando se crea un formulario nuevo, cuando se abre un formulario existente o cuando otro formulario se convierte en formulario activo.

XDocumentOpen Evento

Ocurre cuando se abre un documento.

Para capturar estos eventos en el complemento COM, debe declarar las siguientes variables de nivel de clase en su clase Connect:

InfoPathApplication = DirectCast( _
   application, Microsoft.Office.Interop.InfoPath._Application3)
InfoPathApplicationEvents = DirectCast( _
   InfoPathApplication.Events, _
   Microsoft.Office.Interop.InfoPath.ApplicationEvents)

La primera línea convierte la aplicación genérica Object que el complemento ha recibido para el objeto _Application3. La segunda convierte la propiedad Events del objeto _Application3 (representado por la variable InfoPathApplication ) para el objeto ApplicationEvents.

Para crear controladores de eventos, seleccione InfoPathApplicationEvents del cuadro desplegable Nombre de clase, que se encuentra en la parte superior de la ventana de Visual Studio. A continuación, seleccione el evento que desea controlar en el cuadro desplegable Nombre de método, que se encuentra en el mismo lugar. Por ejemplo, si necesita supervisar el momento en que se guarda un formulario, debe controlar el evento XDocumentBeforeSave. Al seleccionar XDocumentBeforeSave en el cuadro desplegable Nombre de método, se inserta el procedimiento siguiente automáticamente:

Private Sub InfoPathApplicationEvents_XDocumentBeforeSave( _
   ByVal pDocument As Microsoft.Office.Interop.InfoPath._XDocument, _
   ByRef pfCancel As Boolean) _
   Handles InfoPathApplicationEvents.XDocumentBeforeSave

End Sub

El complemento COM puede controlar cualquier evento del objeto ApplicationEvents mediante el mismo método.

Vea también

Otros recursos

Creación de un complemento COM de Microsoft Office 2000
Creación de complementos COM administrados de Office con Visual Studio .NET
Trabajo con los procedimientos de eventos IDTExtensibility2
CÓMO: Generación de un complemento COM de Office con Visual Basic .NET
CÓMO: Generación de un complemento COM de Office con Visual C# .NET