Como usar uma biblioteca de tipos para automação do Office do Visual C++ .NET

Traduções deste artigo Traduções deste artigo
ID do artigo: 307473 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sumário

Este artigo descreve como criar um Visual C++ .NET projeto atua como um cliente de automação para aplicativos que são compatíveis com Component Object Model (COM). O exemplo neste artigo utiliza Microsoft Foundation Classes (MFC) com invólucros de classe para um componente do Office.

Mais Informações

As etapas a seguintes demonstram como criar um cliente de automação simples. Há três etapas principais para este procedimento:
  1. Crie o cliente de automação.
  2. Adicione código para automatizar o Microsoft Excel.
  3. Execute o cliente de automação.
Você pode usar a primeira etapa, , para criar uma automação nova cliente, independentemente do servidor de automação que você está usando. A segunda etapa, Add Code to Automate Microsoft Excel, é específico para o servidor de automação.

Criar um cliente de automação

  1. Inicie o Microsoft Visual Studio NET.. No menu arquivo , clique em novo e, em seguida, clique em Project . Selecione Aplicativo MFC os tipos de projetos do Visual c++ e nomeie o projeto AutoProject.
  2. Quando o Assistente de aplicativos MFC for exibida, clique em Tipo de aplicativo , defina o tipo aplicativo como Caixa de diálogo com e em seguida, clique em Concluir .
  3. Modificar a caixa de diálogo IDD_AUTOPROJECT_DIALOG da seguinte forma:
    1. Remova o controle Label (IDC_STATIC) e o botão Cancelar (IDCANCEL).
    2. Altere a identificação do botão OK para "IDRUN" e a legenda para "Executar".
  4. Crie wrappers de classe da biblioteca de tipo para o servidor de automação da seguinte maneira:
    1. No Solution Explorer, clique com o botão direito do mouse AutoProject e, em seguida, clique em Add Class .
    2. Clique em Classe do MFC do TypeLib e em seguida, clique em Abrir .
    3. Clique em Adicionar uma classe de: registro e localize a biblioteca de tipo registrado para a automação servidor.

      Para este exemplo, selecione "Microsoft Excel 10.0 Type Library" para "Microsoft Excel 9.0 Type Library" para o Microsoft Excel 2000 ou Microsoft ExcelXP.
    4. Selecione a interface (s) que você precisa da lista e, em seguida, clique em maior de símbolo (>) para adicioná-los à lista de interfaces para o qual MFC cria invólucros. Clique em Concluir quando você tiver adicionado todas as interfaces.

      Neste exemplo, você só precisa a interface _Application .

      importante Se houver várias interfaces na biblioteca de tipos que você escolheu, selecione somente as interfaces que você usará porque MFC gerará um arquivo de cabeçalho separado para cada interface selecionada. Minimizando as seleções de interface, você pode evitar sobrecarga desnecessária durante a compilação e geração de arquivo.
  5. Para carregar e ativar a biblioteca de serviços de COM para a função CAutoProjectApp::InitInstance , adicione o seguinte código:
    if(!AfxOleInit())  // Your addition starts here.
    {
      AfxMessageBox("Cannot initialize COM dll");
      return FALSE;
      // End of your addition.
    }
    
    AfxEnableControlContainer();
    					
  6. Adicione uma diretiva de inclusão para cada arquivo de cabeçalho que é gerada a partir as interfaces na biblioteca de tipo do servidor de automação. Adicione as diretivas após a instrução incluem para stdafx.h na parte superior da AutoProjectDlg.cpp.

    Este exemplo, adicione uma inclusão para o arquivo de cabeçalho CApplication.h, que é gerado para a interface _Application :
          #include "stdafx.h"
          #include "CApplication.h"
    					

Adicione código para automatizar o Microsoft Excel

Na caixa de diálogo IDD_AUTOPROJECT_DIALOG , clique com o botão direito do mouse em Executar e, em seguida, clique em Adicionar manipulador de eventos da caixa de listagem drop-down. Em eventos manipulador assistente, selecione o tipo de mensagem BN_CLICKED e, em seguida, clique em Adicionar e editar . Adicione o seguinte código para automatizar o Excel no manipulador de:
void CAutoProjectDlg::OnBnClickedRun()
{
   CApplication app;  // app is the Excel _Application object

   // Start Excel and get Application object.

   if(!app.CreateDispatch("Excel.Application"))
   {
      AfxMessageBox("Cannot start Excel and get Application object.");
      return;
   }
   else
   {
      //Make the application visible and give the user control of
      //Microsoft Excel.
      app.put_Visible(TRUE);
      app.put_UserControl(TRUE);
   }
} 
				

Executar o cliente de automação

Pressione a tecla F5 para compilar e executar o cliente de automação. Quando a caixa de diálogo for exibida, clique em Executar . O cliente de automação inicia o Excel e torna o aplicativo visível. Observe que o Excel permanece em execução mesmo quando o cliente de automação termina porque o usuário tem controle do aplicativo.

Observações adicionais

Após você ter adicionado classes de uma biblioteca de tipos para seu projeto, você pode perceber que aparecem no Class View do seu projeto. Class View, você pode clique duas vezes em uma classe para ver os métodos de classe e, em seguida, clique duas vezes o método para exibir a definição dessa função no arquivo de implementação do wrapper MFC. Você pode analisar a definição de uma função de membro se você deseja verificar um tipo de retorno ou se você deve alterar uma implementação de uma função.

Embora as etapas anteriores ilustram como automatizar o Microsoft Excel, você pode aplicar as mesmas idéias para automatizar a outros aplicativos. A seguinte lista contém os nomes de arquivo para bibliotecas de tipos de outros aplicativos do Microsoft Office:
Recolher esta tabelaExpandir esta tabela
aplicativo biblioteca de tipo
Microsoft Access 97Msacc8.olb
Banco de dados Microsoft Jet 3.5Dao350.dll
Microsoft Binder 97Msbdr8.olb
Microsoft Excel 97Excel8.olb
Microsoft Graph 97Graph8.olb
Microsoft Office 97Mso97.dll
Microsoft Outlook 97Msoutl97.olb
Microsoft PowerPoint 97Msppt8.olb
Microsoft Word 97Msword8.olb
Microsoft Access 2000Msacc9.olb
Banco de dados Microsoft Jet 3.51DAO360.dll
Microsoft Binder 2000Msbdr9.olb
Microsoft Excel 2000Excel9.olb
Microsoft Graph 2000 Graph9.olb
Microsoft Office 2000Mso9.dll
Microsoft Outlook 2000Msoutl9.olb
Microsoft PowerPoint 2000Msppt9.olb
Microsoft Word 2000Msword9.olb
Microsoft Access 2002Msacc.olb
Microsoft Excel 2002Excel.exe
Microsoft Graph 2002Graph.exe
Microsoft Office 2002 MSO.dll
Microsoft Outlook 2002MSOutl.olb
Microsoft PowerPoint 2002MSPpt.olb
Microsoft Word 2002MSWord.olb
Microsoft Office Access 2003Msacc.olb
Microsoft Office Excel 2003Excel.exe
Gráfico do Microsoft Office 2003Graph.exe
Microsoft Office 2003MSO.dll
Microsoft Office Outlook 2003MSOutl.olb
Microsoft Office PowerPoint 2003MSPpt.olb
Microsoft Office Word 2003MSWord.olb
Microsoft Office Access 2007Msacc.olb
Microsoft Office Excel 2007Excel.exe
Gráfico do Microsoft Office 2007Graph.exe
Microsoft Office 2007MSO.dll
Microsoft Office Outlook 2007MSOutl.olb
Microsoft Office PowerPoint 2007MSPpt.olb
Microsoft Office Word 2007MSWord.olb
Observação O local padrão para essas bibliotecas de tipo é:
Recolher esta tabelaExpandir esta tabela
versão do Office caminho
O Office 97C:\Arquivos De programas\Microsoft Office\Office
O Office 2000C:\Arquivos De programas\Microsoft Office\Office
Office XPC:\Arquivos De programas\Microsoft Office\Office10
O Office 2003C:\Arquivos De Programas\Microsoft Office\Office11
2007 OfficeC:\Program Files\Microsoft Office\OFFICE12
O local padrão para Dao350.dll e Dao360.dll é C:\Program Files\Common Files\Microsoft Shared\Dao.

Referências

Para obter informações mais gerais sobre Visual C++. NET, consulte o seguinte grupo de notícias Usenet:
Microsoft.public.dotnet.languages.vc
Visite o Visual C++ .NET Support Center no site da Microsoft:
http://support.microsoft.com/default.aspx?xmlid=fh%3BEN-US%3Bvcnet

Propriedades

ID do artigo: 307473 - Última revisão: quarta-feira, 18 de abril de 2007 - Revisão: 8.1
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Foundation Class Library 4.2
  • Microsoft Office Professional 2007
  • Microsoft Office Professional Edition 2003
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
  • Microsoft Office 97 Developer Edition
Palavras-chave: 
kbmt kbexpertiseinter kbautomation kbhowto kbnewsgrouplink KB307473 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 307473

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