COMO: Processar eventos dos componentes Web do Office 2003 no Visual Studio .NET

Traduções de Artigos Traduções de Artigos
Artigo: 823982 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo passo a passo descreve como modificar os wrappers de classe dos componentes Web do Microsoft Office 2003. Descreve também como gerar novamente os wrappers de classe, por forma a poder gerir os respectivos eventos numa aplicação criada com o Microsoft Visual Studio .NET.

Por predefinição, os wrappers de classe gerados pelo Microsoft Visual Studio .NET não permitem que o utilizador processe eventos dos seguintes componentes Web do Office 2003:
  • Gráfico
  • Folha de cálculo
  • Tabela dinâmica
Para processar os eventos destes componentes, pode modificar o código fonte dos wrappers de classe e recompilar o código.

Informações adicionais

O Microsoft Visual Studio .NET gera uma classe event listener que implementa uma interface event. Esta classe event listener é passada aos componentes Web do Office (OWC, Office Web Components. Em seguida, o OWC invoca o método QueryInterface da interface IDispatch em vez de invocar a interface event. No entanto, a interface IDispatch da classe gerada não contém os identificadores de dispatch (DISPIDs) dos eventos.

Para resolver este problema, pode marcar a classe gerada utilizando o valor ClassInterfaceType.None para forçar a base de interoperabilidade COM a devolver o IDispatch da interface em vez do da classe. A interface IDispatch contém os DISPIDs dos eventos.

Passos para modificar e recompilar os wrappers de classe

  1. Inicie a linha de comandos do Visual Studio .NET.
  2. Na linha de comandos, efectue os seguintes passos:
    1. Crie um novo directório denominado owc11 e passe para esse directório:
      md c:\owc11

      cd c:\owc11
    2. Gere o código fonte no C# para o wrapper Microsoft Windows Forms:
      aximp "c:\programas\ficheiros comuns\microsoft shared\web components\11\owc11.dll" /source
    3. Elimine o assemblyAxOWC11.dll gerado:
      del c:\owc11\axowc11.dll
  3. Num editor de texto (por exemplo, o Bloco de notas), abra C:\OWC11\AxOWC11.cs.
  4. Adicione [ToolboxItem(true)] à classe gerada para os componentes Gráfico, Folha de cálculo e Tabela dinâmica, como indicado nos exemplos seguintes:

    Componente de gráfico
     [System.ComponentModel.ToolboxItem(true)] 
     public class AxChartSpace : System.Windows.Forms.AxHost { 
      	... 
     } 
    Componente de folha de cálculo
     [System.ComponentModel.ToolboxItem(true)] 
     public class AxSpreadsheet : System.Windows.Forms.AxHost {
     	 ... 
     } 
    Componente de tabela dinâmica
     [System.ComponentModel.ToolboxItem(true)] 
     public class AxPivotTable : System.Windows.Forms.AxHost {
     	 ... 
     } 
  5. Marque as classes de eventos como ClassInterfaceType.None, como indicado nos exemplos seguintes:

    Componente de gráfico
     [System.Runtime.InteropServices.ClassInterface( 
      System.Runtime.InteropServices.ClassInterfaceType.None)] 
     public class AxChartSpaceEventMulticaster : OWC11.IChartEvents {
     	 ...
      } 
    Componente de folha de cálculo
     [System.Runtime.InteropServices.ClassInterface( 
      System.Runtime.InteropServices.ClassInterfaceType.None)]
     public class AxSpreadsheetEventMulticaster : OWC11.ISpreadsheetEventSink {
     	 ...
     } 
    Componente de tabela dinâmica
     [System.Runtime.InteropServices.ClassInterface( 
      System.Runtime.InteropServices.ClassInterfaceType.None)] 
     public class AxPivotTableEventMulticaster : OWC11.IPivotControlEvents {
     	 ... 
     } 
  6. Guarde as alterações ao AxOWC11.cs.
  7. Na linha de comandos do Visual Studio .NET, efectue os seguintes passos:
    1. Adicione C:\Programas\Microsoft.NET\Primary Interop Assemblies à variável de ambiente LIB:
      set lib=c:\programas\microsoft.net\primary interop assemblies;%path%
    2. Copie Microsoft.Office.Interop.OWC11.dll e MSComCtl.dll da GAC em que estão listadas as Primary Interop Assemblies do 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 o ficheiro fonte, AxOWC11.cs:
      csc /t:library /r:microsoft.office.interop.owc11.dll /r:adodb.dll /r:msdatasrc.dll /r:mscomctl.dll axowc11.cs
      Nota: receberá a seguinte mensagem de erro CS0108:
      The keyword new is required
      Pode ignorar este erro.
  8. Inicie o Visual Studio .NET.
  9. Adicione o AxOWC11.dll recém-compilado à Toolbox:
    1. No menu Tools, clique em Customize Toolbox (no Visual Studio .NET 2002) ou Add/Remove Toolbox Items (no Visual Studio .NET 2003) e clique no separador .NET Framework Components.
    2. No separador .NET Framework Components, clique em Browse.
    3. Na caixa de texto File name, escreva c:\owc11\axowc11.dll. Clique em Open.
    4. Clique em OK para fechar a caixa de diálogo Customize Toolbox.
Quando criar um novo projecto do Microsoft Visual Basic .NET ou do Microsoft Visual C# .NET, repare que a lista de controlos no separador General de Toolbox contém o controlo AxChartSpace, o controlo AxPivotTable e o controlo AxSpreadsheet. Poderá, agora, adicionar estes componentes aos seus formulários.

Referências

Para obter informações adicionais sobre como gerir eventos dos componentes Web do Office XP utilizando o Visual Studio .NET, clique nos números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
328275 HOW TO: Handle Events for the Office Web Components in Visual Studio .NET

Propriedades

Artigo: 823982 - Última revisão: 23 de dezembro de 2003 - Revisão: 1.2
A informação contida neste artigo aplica-se 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
Palavras-chave: 
kbpia kbofficewebspread kbofficewebpivot kbofficewebchart kbhowto KB823982

Submeter comentários

 

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