Este artigo descreve como modificar os conteúdos adicionais
de classe para Microsoft Office 2003 Web Components. Ele então descreve como
regenerar os conteúdos adicionais para que você possa gerenciar seus eventos em
um aplicativo que você cria pelo Microsoft Visual Studio .NET.
Como
padrão, os conteúdos adicionais que o Microsoft Visual Studio .NET gera não
permite que você lide com eventos para os seguintes componentes da Web para
Office 2003:
- Quadro
- Planilha
- Tabela Dinâmica
Para lidar com eventos para esses componentes, você pode
modificar o código de origem para os conteúdos adicionais de class e, em
seguida, recompilar o código.
Segundo Plano
Microsoft Visual Studio .NET gera uma classe
escuta de evento que implementa uma interface
evento. Essa classe
escuta de evento é passada para o Componente do Office na Web (OWC). Em seguida, o
OWC chama o método
QueryInterface para a interface
IDispatch, em vez de chamar a interface
event. No entanto, a interface
IDispatch para a classe gerada não contém identificadores de despacho
(DISPIDs) para os eventos.
Para resolver esse problema, você pode
marcar a classe gerada usando o valor
ClassInterfaceType.None para forçar a interoperabilidade
IDispatch para a interface e não para a classe. A interface
IDispatch contém os DISPIDs do evento.
Etapas para Modificar e Reconstruir os Conteúdos Adicionais de Classe
- Iniciar o prompt de comando do Visual Studio
.NET.
- No prompt de comando, execute estas etapas:
- Crie um novo diretório denominado
owc11 e, em seguida, mude para aquele diretório:
md c:\owc11
cd c:\owc11
- Gere o código da origem em C# para os conteúdos
adicionais do Microsoft Windows Forms:
aximp "c:\program files\common files\microsoft shared\web components\11\owc11.dll" /source
- Exclua a montagem gerada AxOWC11.dll:
del c:\owc11\axowc11.dll
- Em um editor de texto (como o Bloco de Notas), abra o
C:\OWC11\AxOWC11.cs.
- Adicione [ToolboxItem(true)] para classe gerada para o componente Quadro, o componente Planilha e componente Tabela Dinâmica, como nos exemplos a seguir:
Componente de Quadro [System.ComponentModel.ToolboxItem(true)]
public class AxChartSpace : System.Windows.Forms.AxHost {
...
} Componente de Planilha [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 {
...
} - Marque as classes de evento como ClassInterfaceType.None, conforme os exemplos a seguir:
Componente de Quadro [System.Runtime.InteropServices.ClassInterface( System.Runtime.InteropServices.ClassInterfaceType.None)] public class AxChartSpaceEventMulticaster : OWC11.IChartEvents { ... } Componente de Planilha [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 { ... } - Salve as mudanças em AxOWC11.cs.
- No prompt de comando do Visual Studio .NET, execute estas
etapas:
- Adicione C:\Arquivos de
Programas\Microsoft.NET\Primary Interop Assemblies para sua
variável de ambiente LIB:
set lib=c:\program files\microsoft.net\primary interop assemblies;%path%
- Copie Microsoft.Office.Interop.OWC11.dll e MSComCtl.dll do GAC em que os Office 2003 Primary Interop Assemblies estão
instalados:
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
- Compile o arquivo de origem, AxOWC11.cs:
csc /t:library /r:microsoft.office.interop.owc11.dll /r:adodb.dll /r:msdatasrc.dll /r:mscomctl.dll axowc11.cs
Nota Você pode receber a seguinte mensagem de erro CS0108:A palavra-chave nova é exigida
Você pode ignorar esse
erro.
- Inicie o Microsoft Visual Studio .NET.
- Adicione o novo compilado AxOWC11.dll à
Caixa de ferramentas:
- No menu Ferramentas, clique em Caixa
de FerramentasPersonalizar Caixa de Ferramentas (em Visual
Studio .NET 2002), ou clique em Adicionar/Remover Itens da Caixa de
Ferramentas (no Visual Studio .NET 2003) e, em seguida, clique na guia
Componentes de Moldura do .NET .
- Na guia Componentes de Moldura do
.NET, clique em Navegar.
- Na caixa de textoNome do arquivo,
digite c:\owc11\axowc11.dll. Clique em
Abrir.
- Clique em OK para fechar a caixa de
diálogo Personalizar Caixa de Ferramentas.
Quando você cria um novo projeto do Microsoft Visual Basic .NET
ou um novo projeto do Microsoft Visual C# .NET, note que a lista de controles
na guia
Geral na
Caixa de Ferramentas contém
os controles
AxChartSpace,
AxPivotTable e
AxSpreadsheet. Agora você pode adicionar esses componentes às
suas formas.
Para obter informações adicionais sobre eventos de
gerenciamento para os Componentes da Web do Office XP com o Visual Studio .NET,
clique nos seguintes números para visualizar os artigos na Base de Conhecimento
da Microsoft:
328275
(http://support.microsoft.com/kb/328275/
)
COMO: Manipular Eventos para os Componente do Office na Web no Visual Studio .NET