Como criar um projeto de automação usando MFC e uma biblioteca de tipos

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

Neste artigo

Sumário

Este artigo ilustra, em detalhes, como automatizar o componente integração com aplicativos compatíveis com, como aplicativos do Microsoft Office.

Mais Informações

A seção a seguir ilustra como você pode criar um MFC projeto. O exemplo automatiza o Microsoft Excel. Você pode usar as 8 primeiro etapas para qualquer projeto e modificar as etapas 9 a 15 quando você trabalha com outro aplicativo.

Criar um projeto de automação

  1. Com o Microsoft Developer Studio, iniciar um novo "AppWizard MFC (exe)" projeto chamado "AutoProject."
  2. Na etapa 1 do AppWizard MFC, escolha "Caixa de diálogo com base" para o tipo de aplicativo e, em seguida, clique em Finish.

    A caixa de diálogo informações sobre o novo projeto aparece e indica que incluem as classes a serem criados:
          Application: CAutoProjectApp in AutoProject.h and AutoProject.cpp
          Dialog: CAutoProjectDlg in AutoProject.h and AutoProjectDlg.cpp
    						
    clique em OK para criar o projeto.
  3. A caixa de diálogo "IDD_AUTOPROJECT_DIALOG" é aberta na área de criação/edição Visual Studio. Modificá-lo conforme às instruções nas próximas duas etapas.
  4. Remover o controle Label (IDC_STATIC) e o botão Cancelar (IDCANCEL).
  5. Altere o nome do botão OK para "IDRUN" e a legenda para "Executar". Feche o formulário de design AutoProject.rc caixa de diálogo.
  6. Clique em ClassWizard no menu Exibir (ou pressione CTRL+W).
  7. Selecione o mapas de mensagem guia Selecionar IDRUN em IDs objeto caixa de listagem e selecione "BN_CLICKED" na caixa de lista de mensagens. Clique em Adicionar função e aceite o nome da função "OnRun". Clique em OK para fechar o ClassWizard.

    Observação: Essa etapa adiciona uma declaração para o membro de função "OnRun();" para o cabeçalho do arquivo chamado AutoProjectDLG.h. Esta etapa também adiciona um esqueleto vazio mensagem função de manipulador nomeada CAutoProjectDlg::OnRun() com o arquivo chamado AutoProjectDLG.cpp.
  8. Clique em ClassWizard no menu Exibir (ou pressione CTRL+W).
  9. Selecione a guia de automação clique Add Class e escolha "de uma biblioteca de tipos." Navegue para selecionar a biblioteca de objeto para o aplicativo que você deseja automatizar (para este exemplo, se você estiver automatizando o Excel 97, escolha biblioteca de objetos do Microsoft Excel 8.0; o local padrão é C:\Program Files\Microsoft Office\Office\Excel8.olb).

    Se você estiver automatizando o Microsoft Excel 2000, escolha biblioteca de objetos do Microsoft Excel 9.0 para o qual o local padrão é o C:\Program Files\Microsoft Office\Office\Excel9.olb.

    Se você estiver automatizando o Microsoft Excel 2002 e Microsoft Office Excel 2003, a biblioteca de objetos é incorporada no arquivo Excel.exe. O local padrão para Excel.exe no Office 2002 é C:\Program Files\Microsoft Office\Office10\Excel.exe. O local padrão para Excel.exe no Office 2003 é C:\Program Files\Microsoft Office\Office11\Excel.exe. Uma vez que você selecionou a biblioteca de objetos apropriado, clique em Abrir. Selecionar todas as classes na confirmar classes lista e, em seguida, clique em OK.

    Observação: A caixa de listagem na caixa de diálogo Confirmar Classes contém todas as interfaces IDispatch (que são praticamente idênticas para classes) na biblioteca de tipos Microsoft Excel. Na metade inferior da caixa de diálogo caixa que você irá ver que contém um arquivo de implementação denominado Excel8.cpp gerada wrappers de classe derivadas de ColeDispatchDriver() e o arquivo de cabeçalho de declaração apropriado é denominado Excel8.h. (Para o Excel 2002 e Excel 2003, os arquivos são denominados Excel.cpp e Excel.h.)
  10. Clique em OK para fechar a caixa de diálogo MFC ClassWizard.
  11. Adicionar o código a seguir para a função CAutoProjectApp::InitInstance(), que carrega e permite que o COM serviços de biblioteca:
          BOOL CAutoProjectApp::InitInstance()
          {
             if(!AfxOleInit())  // Your addition starts here
             {
                AfxMessageBox("Could not initialize COM dll");
                return FALSE;
             }                 // End of your addition
    
             AfxEnableControlContainer();
          .
          .
          .
    
          }
    					
  12. Adicione a seguinte linha para o # incluir instruções na parte superior do arquivo de programa AutoProject.cpp:
          #include <afxdisp.h>
    					
  13. Adicione a instrução incluem para excel8.h após a declaração de inclusão para stdafx.h na parte superior do arquivo de programa AutoProjectDlg.cpp:
          #include "stdafx.h"
          #include "excel8.h" // excel.h in the case of Excel 2002 and Excel 2003.
    					
  14. Adicionar código de automação para o CAutoProjectDlg::OnRun() para que ele aparece como mostrado abaixo:
          void CAutoProjectDlg::OnRun()
          {
              _Application app;  // app is the Excel _Application object
    
              // Start Excel and get Application object...
             if(!app.CreateDispatch("Excel.Application"))
             {
                AfxMessageBox("Couldn't start Excel.");
             }
             else
             {
                //Make Excel Visible and display a message
              app.SetVisible(TRUE);
              AfxMessageBox ("Excel is Running!");
             }
          }
    					
  15. Criar e executar o projeto. RESULTADOS: Quando você clicar em executar botão a caixa de diálogo, Microsoft Excel será iniciado. Ativar a caixa de diálogo Auto_Excel e descartar a caixa de mensagem. Microsoft Excel será encerrado quando a função CAutoProjectDlg::OnRun() termina porque a variável do aplicativo será passaram fora do escopo.

Observações adicionais

Uma vez você tiver adicionado as classes de uma biblioteca de tipos ao seu projeto (como você na etapa 9 acima), você irá notar que muitas classes foram adicionadas para o projeto. No ClassView, você pode clicar duas vezes uma classe para ver as funções de membro dessa classe e, em seguida, clique duas vezes a função de membro para exibir a definição dessa função no arquivo de implementação Excel8.cpp.

Você precisa ir para a definição de uma função de membro se você desejar verificar um tipo de retorno ou se você precisar alterar a implementação de uma função. Sempre que você alterar uma definição de função, lembre-se alterar a declaração no arquivo Excel8.h. Ao fazer isso, ter certeza de que você alterar a declaração de função correta; às vezes, o mesmo nome é fornecido para funções de membro de vários classes--GetApplication() é um exemplo.

Embora as etapas acima ilustram como automatizar o Microsoft Excel, você pode aplicar as mesmas idéias para automatizar a outros aplicativos. A lista abaixo contém os nomes de arquivo para as bibliotecas de tipo dos aplicativos do Microsoft Office:
   Application                           Type Library
   --------------------------------------------------

   Microsoft Access 97                   Msacc8.olb
   Microsoft Jet Database 3.5            DAO350.dll
   Microsoft Binder 97                   Msbdr8.olb
   Microsoft Excel 97                    Excel8.olb
   Microsoft Graph 97                    Graph8.olb
   Microsoft Office 97                   Mso97.dll
   Microsoft Outlook 97                  Msoutl97.olb
   Microsoft PowerPoint 97               Msppt8.olb

   Microsoft Word 97                     Msword8.olb
   Microsoft Access 2000                 Msacc9.olb
   Microsoft Jet Database 3.51           DAO360.dll
   Microsoft Binder 2000                 Msbdr9.olb
   Microsoft Excel 2000                  Excel9.olb
   Microsoft Graph 2000                  Graph9.olb
   Microsoft Office 2000                 Mso9.dll
   Microsoft Outlook 2000                Msoutl9.olb
   Microsoft PowerPoint 2000             Msppt9.olb
   Microsoft Word 2000                   Msword9.olb 

   Microsoft Access 2002                 Msacc.olb
   Microsoft Excel 2002                  Excel.exe
   Microsoft Graph 2002                  Graph.exe 
   Microsoft Office 2002                 MSO.dll
   Microsoft Outlook 2002                MSOutl.olb
   Microsoft PowerPoint 2002             MSPpt.olb
   Microsoft Word 2002                   MSWord.olb

   Microsoft Office Access 2003          Msacc.olb
   Microsoft Office Excel 2003           Excel.exe
   Microsoft Graph 2003                  Graph.exe 
   Microsoft Office 2003                 MSO.dll
   Microsoft Office Outlook 2003         MSOutl.olb
   Microsoft Office PowerPoint 2003      MSPpt.olb
   Microsoft Office Word 2003            MSWord.olb
				
Observação: O local padrão para essas bibliotecas de tipo é C:\Program Files\Microsoft Office\Office (para Office 2002 o caminho é C:\...\Office10 e para o Office 2003 o caminho é C:\...\Office11), exceto para Dao350.dll ou Dao360.dll e 10(MSO.dll) do Microsoft Office. O local padrão para Dao350.dll/Dao360.dll é C:\Program Files\Common Files\Microsoft Shared\Dao. O local padrão para MSO.dll é C:\Program Files\Common Files\Microsoft Shared\Office10 para Office 2002 e C:\Program Files\Common Files\Microsoft Shared\Office11 para o Office 2003.

Referências

Este artigo apresenta uma abordagem específica à criação de um projeto dialog-box. Se você gostaria de ver documentação mais geral sobre o processo de criação de um projeto VC++ in a Microsoft Developer Studio ambiente, há um tutorial excelente, você pode acessar usando o Visual Studio InfoView. Para acessar o tutorial, clique em Pesquisar no menu Ajuda. Clique na guia Índice e digite o seguinte:
Trabalhando com projetos
Clique em Listar tópicos. Selecione o tópico "Home page: Trabalhando com projetos" e clique em Exibir. Para obter mais informações sobre a automação de aplicativos do Office, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
222101Como localizar e usar a documentação de modelo de objeto do Office

Propriedades

ID do artigo: 178749 - Última revisão: quinta-feira, 23 de junho de 2005 - Revisão: 4.3
A informação contida neste artigo aplica-se a:
  • Microsoft Foundation Class Library 4.2 nas seguintes plataformas
    • Microsoft Visual C++ 5.0 Standard Edition
    • Microsoft Visual C++ 6.0 Service Pack 5
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
Palavras-chave: 
kbmt kbautomation kbhowto kbinterop KB178749 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: 178749

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