Visual C++ .NET에서 형식 라이브러리를 사용하여 Office를 자동화하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 307473 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR307473
모두 확대 | 모두 축소

요약

본 문서에서는 COM(구성 요소 개체 모델) 호환 응용 프로그램을 자동화 클라이언트로 사용하도록 Visual C++ .NET 프로젝트를 빌드하는 방법을 설명합니다. 본 문서의 예제에서는 Office 구성 요소용 클래스 래퍼와 함께 Microsoft Foundation Classes(MFC)를 사용합니다.

추가 정보

아래의 절차는 크게 세 단계로 진행되며 간단한 자동화 클라이언트를 빌드하는 방법을 보여 줍니다.
  1. 자동화 클라이언트 만들기
  2. Microsoft Excel을 자동화하는 코드 추가
  3. 자동화 클라이언트 실행
첫 번째 단계인 에서는 사용 중인 자동화 서버에 관계없이 새로운 자동화 클라이언트를 만들 수 있습니다. 두 번째 단계인 Microsoft Excel을 자동화하는 코드 추가는 자동화 서버에 따라 달라집니다.

자동화 클라이언트 만들기

  1. Microsoft Visual Studio .NET을 시작합니다. 파일 메뉴에서 새로 만들기를 누른 다음 프로젝트를 누릅니다. Visual C++ 프로젝트 형식에서 MFC 응용 프로그램을 선택하고 프로젝트 이름을 AutoProject로 지정합니다.
  2. MFC 응용 프로그램 마법사가 나타나면 응용 프로그램 종류를 누르고 응용 프로그램 종류를 대화 상자 기반으로 설정한 다음 마침을 누릅니다.
  3. 아래와 같이 IDD_AUTOPROJECT_DIALOG 대화 상자를 수정합니다.
    1. Label 컨트롤(IDC_STATIC)과 취소 단추(IDCANCEL)를 제거합니다.
    2. 확인 단추의 ID는 "IDRUN"으로, Caption은 "Run"으로 변경합니다.
  4. 아래와 같이 자동화 서버의 형식 라이브러리에서 클래스 래퍼를 만듭니다.
    1. 솔루션 탐색기에서 AutoProject를 마우스 오른쪽 단추로 누른 다음 클래스 추가를 누릅니다.
    2. TypeLib의 MFC 클래스를 누른 다음 열기를 누릅니다.
    3. 추가할 클래스 위치: 레지스트리를 누르고 자동화 서버의 등록된 형식 라이브러리를 찾습니다.

      이 예제에서는 Microsoft Excel XP의 경우 "Microsoft Excel 10.0 Type Library"를 선택하거나 Microsoft Excel 2002의 경우 "Microsoft Excel 9.0 Type Library"를 선택합니다.
    4. 목록에서 필요한 인터페이스를 선택한 다음 보다 큼 부등호(>)를 눌러 MFC에서 래퍼를 만들 인터페이스 목록에 추가합니다. 모든 인터페이스를 추가한 다음 마침을 누릅니다.

      이 예제에는 _Application 인터페이스만 필요합니다.

      중요 MFC는 선택된 인터페이스마다 별도의 헤더 파일을 생성하기 때문에 선택한 형식 라이브러리에 인터페이스가 많이 있으면 사용할 인터페이스만 선택하십시오. 선택하는 인터페이스 수를 최소화하면 파일을 만들어 컴파일하는 동안 불필요한 오버헤드를 피할 수 있습니다.
  5. CAutoProjectApp::InitInstance 함수에 COM 서비스 라이브러리를 로드하여 사용하려면 아래의 코드를 추가합니다.
    if(!AfxOleInit())  // Your addition starts here.
    {
      AfxMessageBox("Cannot initialize COM dll");
      return FALSE;
      // End of your addition.
    }
    
    AfxEnableControlContainer();
    					
  6. 자동화 서버의 형식 라이브러리에 있는 인터페이스에서 생성되는 각각의 헤더 파일에 대해 Include 지시문을 추가합니다. 이러한 지시문은 AutoProjectDlg.cpp의 맨 위에 있는 Stdafx.h에 대한 Include 문 뒤에 추가해야 합니다.

    이 예제에서는 _Application 인터페이스에서 생성되는 CApplication.h 헤더 파일에 대한 Include 지시문을 추가합니다.
          #include "stdafx.h"
          #include "CApplication.h"
    					

Microsoft Excel을 자동화하는 코드 추가

IDD_AUTOPROJECT_DIALOG 대화 상자에서 Run을 마우스 오른쪽 단추로 누른 다음 드롭다운 목록 상자에서 이벤트 처리기 추가를 누릅니다. 이벤트 처리기 마법사에서 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 키를 눌러 자동화 클라이언트를 빌드하고 실행합니다. 대화 상자가 나타나면 Run을 누릅니다. 그러면 자동화 클라이언트가 Excel을 시작하고 응용 프로그램을 표시합니다. 응용 프로그램에 대한 제어 권한이 사용자에게 주어졌기 때문에 자동화 클라이언트가 종료되더라도 Excel은 계속 실행됩니다.

추가 정보

형식 라이브러리에서 프로젝트에 추가한 클래스는 프로젝트의 클래스 뷰에 나타납니다. 클래스 뷰에서 클래스를 두 번 누르면 해당 클래스의 메서드가 나타나고, 메서드를 두 번 누르면 MFC 래퍼의 구현 파일에 있는 해당 함수에 대한 정의가 나타납니다. 반환 형식을 확인하려는 경우나 함수의 구현을 변경해야 하는 경우 멤버 함수에 대한 정의를 검토할 수 있습니다.

위의 단계에서는 Microsoft Excel을 자동화하는 방법을 보여 주었지만, 다른 응용 프로그램을 자동화할 때도 이와 같은 방법을 적용할 수 있습니다. 아래의 목록에는 다른 Microsoft Office 응용 프로그램의 형식 라이브러리에 대한 파일 이름이 나와 있습니다.
표 축소표 확대
응용 프로그램형식 라이브러리
Microsoft Access 97Msacc8.olb
Microsoft Jet Database 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 Database 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 Graph 2003Graph.exe
Microsoft Office 2003MSO.dll
Microsoft Office Outlook 2003MSOutl.olb
Microsoft Office PowerPoint 2003MSPpt.olb
Microsoft Office Word 2003MSWord.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
Dao350.dll 및 Dao360.dll의 기본 위치는 C:\Program Files\Common Files\Microsoft Shared\Dao입니다.

참조

Visual C++ .NET에 대한 자세한 내용은 아래의 Usenet 뉴스 그룹을 참조하십시오.
Microsoft.public.dotnet.languages.vc
다음 Microsoft 웹 사이트의 Visual C++ .NET 지원 센터를 방문하십시오.
http://support.microsoft.com/default.aspx?xmlid=fh%3BEN-US%3Bvcnet(영문)




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 307473 - 마지막 검토: 2006년 4월 21일 금요일 - 수정: 7.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Foundation Class Library 4.2
  • Microsoft Office Professional Edition 2003
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
  • Microsoft Office 97 Developer Edition
키워드:?
kbhowto kbnewsgrouplink kbautomation KB307473

피드백 보내기

 

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