CÓMO: Controlar los eventos de Office 2003 Web Components en Visual Studio .NET

Seleccione idioma Seleccione idioma
Id. de artículo: 823982 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo paso a paso se describe cómo modificar los contenedores de clase de los componentes Web de Microsoft Office 2003. También se explica cómo regenerarlos de modo que sea posible administrar sus eventos en aplicaciones creadas con Microsoft Visual Studio .NET.

De manera predeterminada, los contenedores de clase generados por Microsoft Visual Studio .NET no permiten controlar eventos en los siguientes componentes Web de Office 2003:
  • Gráficos
  • Hojas de cálculo
  • Tablas dinámicas
Para controlar los eventos de estos componentes, puede modificar y volver a compilar el código fuente de los contenedores de clase.

Contexto

Microsoft Visual Studio .NET genera una clase de escucha de eventos que, a su vez, implementa una interfaz de eventos. La clase de escucha de eventos se pasa a Office Web Components (OWC). A continuación, OWC, en lugar de llamar a la interfaz de eventos, llama al método QueryInterface para la interfaz IDispatch. Sin embargo, la interfaz IDispatch de la clase generada no contendrá los identificadores de envío (DISPID) de los eventos.

Para resolver este problema, puede marcar la clase generada utilizando el valor ClassInterfaceType.None para obligar a la interoperabilidad con COM a devolver IDispatch para la interfaz en lugar de para la clase. La interfaz IDispatch sí contiene los DISPID de los eventos.

Pasos para modificar y reconstruir los contenedores de clase

  1. Inicie el símbolo del sistema de Visual Studio .NET.
  2. En el símbolo del sistema:
    1. Cree un directorio denominado owc11 y, a continuación, pase a dicho directorio:
      md c:\owc11

      cd c:\owc11
    2. Genere el código fuente en C# del contenedor de Microsoft Windows Forms:
      aximp "c:\archivos de programa\archivos comunes\microsoft shared\web components\11\owc11.dll" /source
    3. Elimine el ensamblado generado (AxOWC11.dll):
      del c:\owc11\axowc11.dll
  3. En un editor de texto (como el Bloc de notas), abra C:\OWC11\AxOWC11.cs.
  4. Agregue [ToolboxItem(true)] a la clase generada para los componentes Chart (gráfico), Spreadsheet (hoja de cálculo) y Pivottable (tabla dinámica), como se indica en los siguientes ejemplos:

    Chart Component
     [System.ComponentModel.ToolboxItem(true)] 
     public class AxChartSpace : System.Windows.Forms.AxHost { 
      	... 
     } 
    Spreadsheet Component
     [System.ComponentModel.ToolboxItem(true)] 
     public class AxSpreadsheet : System.Windows.Forms.AxHost {
     	 ... 
     } 
    PivotTable Component
     [System.ComponentModel.ToolboxItem(true)] 
     public class AxPivotTable : System.Windows.Forms.AxHost {
     	 ... 
     } 
  5. Marque las clases de evento como ClassInterfaceType.None, según se indica a continuación:

    Chart Component
     [System.Runtime.InteropServices.ClassInterface( 
      System.Runtime.InteropServices.ClassInterfaceType.None)] 
     public class AxChartSpaceEventMulticaster : OWC11.IChartEvents {
     	 ...
      } 
    Spreadsheet Component
     [System.Runtime.InteropServices.ClassInterface( 
      System.Runtime.InteropServices.ClassInterfaceType.None)]
     public class AxSpreadsheetEventMulticaster : OWC11.ISpreadsheetEventSink {
     	 ...
     } 
    PivotTable Component
     [System.Runtime.InteropServices.ClassInterface( 
      System.Runtime.InteropServices.ClassInterfaceType.None)] 
     public class AxPivotTableEventMulticaster : OWC11.IPivotControlEvents {
     	 ... 
     } 
  6. Guarde los cambios realizados a AxOWC11.cs.
  7. En el símbolo del sistema de Visual Studio .NET, haga a lo siguiente:
    1. Agregue C:\Archivos de programa\Microsoft.NET\Primary Interop Assemblies a la variable de entorno LIB:
      set lib=c:\archivos de programa\microsoft.net\primary interop assemblies;%path%
    2. Copie Microsoft.Office.Interop.OWC11.dll y MSComCtl.dll desde la caché GAC donde se encuentren instalados los ensamblados principales de interoperabilidad (PIA) de Microsoft Office 2003:
      copy %windir%\assembly\GAC\Microsoft.Office.Interop.Owc11\11.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Owc11.dll

      copy %windir%\assembly\GAC\mscomctl\10.0.4504.0__31bf3856ad364e35\mscomctl.dll
    3. Compile el archivo de origen (AxOWC11.cs):
      csc /t:library /r:microsoft.office.interop.owc11.dll /r:adodb.dll /r:msdatasrc.dll /r:mscomctl.dll axowc11.cs
      Nota
      Recibirá el siguiente mensaje de error (CS0108):
      Se requiere la palabra clave new
      Puede omitir este error.
  8. Inicie Microsoft Visual Studio .NET
  9. Agregue el archivo AxOWC11.dll recién compilado al Cuadro de herramientas:
    1. En el menú Herramientas, haga clic en Personalizar cuadro de herramientas (en Visual Studio .NET 2002) o bien en Agregar o quitar elementos del cuadro de herramientas (en Visual Studio .NET 2003) y, a continuación, seleccione la ficha Componentes de .NET Framework.
    2. En la ficha Componentes de .NET Framework, haga clic en Examinar.
    3. En el cuadro de texto Nombre de archivo, escriba c:\owc11\axowc11.dll. Haga clic en Abrir.
    4. Haga clic en Aceptar para cerrar el cuadro de diálogo Personalizar cuadro de herramientas.
Cuando cree un proyecto nuevo en Microsoft Visual Basic .NET o en Microsoft Visual C# .NET, observe cómo la lista de controles de la ficha General del Cuadro de herramientas contiene los controles AxChartSpace, AxPivotTable y AxSpreadsheet. Ahora ya podrá agregar estos componentes a sus formularios.

Referencias

Para obtener información adicional sobre la administración de eventos para los componentes Web de Office XP con Visual Studio .NET, haga clic en los siguientes números de artículo de Microsoft Knowledge Base:
328275 CÓMO: Controlar los enventos de Office Web Components en Visual Studio .NET

Propiedades

Id. de artículo: 823982 - Última revisión: martes, 13 de abril de 2004 - Versión: 1.3
La información de este artículo se refiere a:
  • Microsoft Office 2003 Web Components
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Palabras clave: 
kbpia kbofficewebspread kbofficewebpivot kbofficewebchart kbhowto KB823982

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com