Como utilizar uma biblioteca de tipos para automatização do Office a partir do Visual C++ .NET

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

Sumário

Este artigo descreve como criar um Visual C++ .NET projecto que actua como um cliente de automatização para aplicações que são COM Component Object Model () compatível. O exemplo neste artigo utiliza Microsoft Foundation Classes (MFC) com wrappers de classe para um componente do Office.

Mais Informação

Os seguintes passos demonstram como criar um cliente de automatização simples. Existem três passos principais para este procedimento:
  1. Crie o cliente de automatização.
  2. Adicione código para automatizar o Microsoft Excel.
  3. Execute o cliente de automatização.
Pode utilizar o primeiro passo, , para criar uma nova automatização cliente independentemente do servidor de automatização que está a utilizar. O segundo passo, Add Code to Automate Microsoft Excel, é específico para o servidor de automatização.

Criar um cliente de automatização

  1. Inicie o Microsoft Visual Studio NET.. No menu ficheiro , clique em Novo e, em seguida, clique em projecto . Seleccione Aplicação MFC os tipos de projectos do Visual C++ e, em seguida, atribua o projecto AutoProject.
  2. Quando for apresentado o Assistente de aplicação MFC, clique em Tipo de aplicação , definir o tipo de aplicação para a Caixa de diálogo com e, em seguida, clique em Concluir .
  3. Modifique a caixa de diálogo IDD_AUTOPROJECT_DIALOG da seguinte forma:
    1. Remova o controlo de etiqueta (IDC_STATIC) e o botão Cancelar (IDCANCEL).
    2. Alterar o ID do botão OK para "IDRUN" e a legenda "Executar".
  4. Crie wrappers de classe a partir da biblioteca de tipos para o servidor de automatização da seguinte forma:
    1. No Solution Explorer, clique com o botão direito do rato AutoProject e, em seguida, clique em Adicionar classe .
    2. Clique em Classes MFC de TypeLib e, em seguida, clique em Abrir .
    3. Clique em Adicionar uma classe a partir de: registo e localizar a biblioteca de tipo registado para a automatização de servidor.

      Neste exemplo, seleccione "Microsoft Excel 10.0 Type Library" para Microsoft ExcelXP ou "Microsoft Excel 9.0 Type Library" para o Microsoft Excel 2000.
    4. Seleccione interfaces que necessita a partir da lista e, em seguida, faça clique sobre o maior do símbolo (>) para os adicionar à lista de interfaces para a qual MFC cria mensagens publicitárias. Clique em Concluir depois de ter adicionado todas as interfaces.

      Neste exemplo, necessita apenas a interface _Application .

      importante Se existirem várias interfaces na biblioteca de tipos que escolheu, seleccione apenas as interfaces que vai utilizar porque MFC irá gerar um ficheiro de cabeçalho distinta para cada interface seleccionada. Ao minimizar as selecções de interface, pode evitar uma sobrecarga desnecessária durante a geração de ficheiro e de compilação.
  5. Para carregar e activar a biblioteca de serviços COM 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 directiva de inclusão para cada ficheiro cabeçalho que é gerado a partir de interfaces na biblioteca de tipos do servidor de automatização. Adicione as directivas depois da instrução include para Stdafx.h na parte superior da AutoProjectDlg.cpp.

    Neste exemplo, adicionar uma inclusão para o ficheiro de cabeçalho CApplication.h, que é gerado para 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 rato em Executar e, em seguida, clique em Adicionar processador de eventos na caixa de listagem pendente. Em eventos rotina de tratamento do assistente, seleccione o tipo de mensagem BN_CLICKED e, em seguida, clique em Adicionar e editar . Adicione o seguinte código para automatizar o Excel no processador 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 automatização

Prima a tecla F5 para compilar e executar o cliente de automatização. Quando aparece a caixa de diálogo, clique em Executar . O cliente de automatização inicia o Excel e faz com que a aplicação visível. Repare que o Excel permanece em execução, mesmo quando o cliente de automatização termina uma vez que o utilizador tem sido concedido controlo da aplicação.

Notas adicionais

Depois de adicionar classes a partir de uma biblioteca de tipos ao projecto, poderá notar que aparecem na vista de classe do projecto. Na vista de classe, pode faça duplo clique sobre uma classe para ver os métodos dessa classe e, em seguida, faça duplo clique sobre o método para visualizar a definição de função no ficheiro de implementação de wrapper MFC. Pode rever a definição de uma função de membro se pretender verificar se um tipo de retorno ou se tiver de alterar uma implementação de uma função.

Apesar dos passos anteriores ilustram como automatizar o Microsoft Excel, pode aplicar as mesmas ideias para automatizar a outras aplicações. A lista seguinte contém os nomes de ficheiros para bibliotecas de tipos de outras aplicações do Microsoft Office:
Reduzir esta tabelaExpandir esta tabela
aplicação biblioteca de tipo
Microsoft Access 97Msacc8.olb
Base de dados Microsoft Jet 3.5DAO350.dll
Microsoft Arquivador do Office 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
Base de dados Microsoft Jet 3.51DAO360.dll
Microsoft Arquivador do Office 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 de 2007Mso.dll
Microsoft Office Outlook 2007MSOutl.olb
Microsoft Office PowerPoint 2007MSPpt.olb
Microsoft Office Word 2007MSWord.olb
Nota A localização predefinida para estas bibliotecas de tipo é:
Reduzir esta tabelaExpandir esta tabela
versão do Office caminho
O Office 97C:\Programas\Microsoft Office\Office
O Office 2000C:\Programas\Microsoft Office\Office
Office XPC:\Programas\Microsoft Office\Office10
O Office 2003C:\Programas\Microsoft Office\Office11
Office de 2007Pasta Programas\Microsoft Office\Office12
A localização predefinida para Dao350.dll e dao360.dll é C:\Program Files\Common Files\Microsoft Shared\TextConv.

Referências

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

Propriedades

Artigo: 307473 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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