Как использовать библиотеку типов для автоматизации Office из Visual C++.NET

Переводы статьи Переводы статьи
Код статьи: 307473 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Аннотация

В данной статье описаны способы построения Visual C++.NET проект, который выступает в роли клиента автоматизации для приложений, которые являются компонентом Модели объектов (COM) требованиям. Пример в этой статье использует Microsoft Foundation Classes (MFC) с помощью класса оболочек для компонентов Microsoft Office.

Дополнительная информация

Следующие шаги демонстрируют, как создать простой Клиент автоматизации. Существуют три основные этапы этой процедуры.
  1. Создание клиента автоматизации.
  2. Добавьте код для автоматизации приложения Microsoft Excel.
  3. Запустите клиент автоматизации.
Можно использовать первый шаг , для создания новой модели автоматизации независимо от того, сервер автоматизации, который используется клиентом. Второй шаг Добавьте код для автоматизации Microsoft Microsoft Excel, характерное для сервера автоматизации.

Создание клиента автоматизации

  1. Запустите Microsoft Visual Studio.NET. На Файл меню, нажмите кнопку Новый, а затем нажмите кнопку Проект. Выберите Приложение MFC из типов проектов Visual C++, а затем имя проекта AutoProject.
  2. При появлении мастера приложений MFC выберите Тип приложения, для параметра тип приложения На базе диалогового окна, а затем нажмите кнопку Окончание.
  3. Изменить IDD_AUTOPROJECT_DIALOG диалоговое окно «» следующим образом:
    1. Удалить Метка элемент управления (IDC_STATIC) и Отмена Кнопка (IDCANCEL).
    2. Изменить идентификатор ОК Кнопка «idrun» и надпись «Выполнить».
  4. Создание классов оберток из библиотеки типов для Сервер автоматизации, как показано ниже:
    1. В обозревателе решений щелкните правой кнопкой мыши AutoProject, а затем нажмите кнопку Добавление класса.
    2. Нажмите кнопку Класс MFC из библиотеки типов, а затем нажмите кнопку Открыть.
    3. Нажмите кнопку Чтобы добавить класс из: реестри найдите зарегистрированную библиотеку типов для автоматизации сервер.

      Например выберите «Библиотека типов 10.0 Microsoft Excel» «Библиотеки типов Microsoft Excel версии 9.0» для Microsoft Excel или Microsoft ExcelXP 2000.
    4. Выберите в списке интерфейсы, необходимые и нажмите кнопку "больше символ (>) для их добавления в список" интерфейсы, для которых MFC создает обертки. Нажмите кнопку Окончание После добавления всех интерфейсах.

      Для этого пример, достаточно _Application интерфейс.

      Важные Если в библиотеке типов, который был выбран множество интерфейсов Выберите только интерфейсы, которые будут использоваться, поскольку создаст MFC отдельном файле заголовка для каждого выбранного интерфейса. Уменьшение количества интерфейс выделенные области, можно избежать лишней нагрузки во время создания файла и компиляция.
  5. Для загрузки и включить библиотеку служб COM. CAutoProjectApp::InitInstance функции, добавьте следующий код:
    if(!AfxOleInit())  // Your addition starts here.
    {
      AfxMessageBox("Cannot initialize COM dll");
      return FALSE;
      // End of your addition.
    }
    
    AfxEnableControlContainer();
    					
  6. Добавление директивы include для каждого файла заголовка, который является создать из интерфейсов в библиотеки типов сервера автоматизации. Добавить директивы после инструкции include для Stdafx.h в верхней части AutoProjectDlg.cpp.

    Для этого примера добавьте include для Файл заголовка CApplication.h, который создается для _Application интерфейс:
          #include "stdafx.h"
          #include "CApplication.h"
    					

Добавьте код для автоматизации приложения Microsoft Excel

В IDD_AUTOPROJECT_DIALOG диалоговое окно, щелкните правой кнопкой мыши Запустить, а затем нажмите кнопку Добавление обработчика событий из раскрывающегося списка. В случае выбора обработчик мастера очередь BN_CLICKED Тип сообщения и нажмите кнопку Добавление и редактирование. Добавьте следующий код для автоматизации Excel в обработчик:
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);
   }
} 
				

Запустите клиент автоматизации

Нажмите клавишу F5, чтобы построить и запустить клиент автоматизации. При Появится диалоговое окно, нажмите кнопку Запустить. Клиент автоматизации запускает Excel и делает приложение отображается на экране. Обратите внимание, Excel продолжает выполняться даже в том случае, когда заканчивается клиента автоматизации так как у пользователя были предоставлены управление приложением.

Дополнительные замечания

После добавления классов из библиотеки типов в проект Вы можете заметить, они отображаются в окне классов в проект. В классе Вид, можно дважды щелкнуть класса для просмотра методов этого класса, а затем Дважды щелкните нужный метод определения этой функции в файл реализации программы-оболочки MFC. Просмотреть определение член работать, если вы хотите проверить возвращаемый тип или если необходимо изменить Реализация функции.

Несмотря на то, что ранее иллюстрации Автоматизация Microsoft Excel, можно применить одинаковые идеи для автоматизации других приложения. Следующий список содержит имена файлов для библиотеки типов другие приложения Microsoft Office:
Свернуть эту таблицуРазвернуть эту таблицу
ПриложениеБиблиотеки типов
Microsoft Access 97Msacc8.olb
Базы данных 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
Базы данных 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
Диаграмма 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
Диаграмма Microsoft Office 2007Graph.exe
2007 Microsoft OfficeMso.dll
Microsoft Office Outlook 2007MSOutl.olb
Microsoft Office PowerPoint 2007MSPpt.olb
Microsoft Office Word 2007MSWord.olb
Примечание По умолчанию для этих библиотек типов используется:
Свернуть эту таблицуРазвернуть эту таблицу
Версия OfficeПуть
Office 97C:\Program Files\Microsoft Office\Office
Office 2000C:\Program Files\Microsoft Office\Office
Office XPC:\Program Files\Microsoft Office\Office10
Office 2003C:\Program Files\Microsoft Office\Office11
2007 OfficeC:\Program Files\Microsoft Office\Office12
В по умолчанию для Dao350.dll и Dao360.dll используется C:\Program Files\Common Files\Microsoft Shared\Dao.

Ссылки

Для получения общих сведений о Visual C++.NET, см. группы новостей Usenet следующее:
Microsoft.Public.dotnet.Languages.VC
Посетите Visual C++.NET поддержки по следующим Веб-узел Майкрософт:
http://support.Microsoft.com/default.aspx?xmlid=fh%3BEN-US%3Bvcnet

Свойства

Код статьи: 307473 - Последний отзыв: 6 октября 2011 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Office Professional 2007
  • Microsoft Office Professional Edition 2003
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
  • Microsoft Office 97 Developer Edition
Ключевые слова: 
kbexpertiseinter kbautomation kbhowto kbnewsgrouplink kbmt KB307473 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:307473

Отправить отзыв

 

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