다음을 통해 공유


ATLEventHandling 샘플: IDispEventImpl 및 IDispEventSimpleImpl을 사용하여 Word 이벤트 처리

업데이트: 2007년 11월

ATLEventHandling 샘플에서는 IDispEventImplIDispEventSimpleImpl을 사용하여 Microsoft Word에서 발생한 이벤트를 처리하는 방법을 보여 줍니다.

이 샘플은 두 개의 COM 클래스 CSimple 및 CNotSoSimple을 포함하는 ATL 프로젝트로 구성되어 있습니다. 이 두 클래스는 Microsoft Word에서 발생한 문서 변경 이벤트에 대한 응답으로 메시지 상자를 표시하는 COM 개체를 나타냅니다. CSimple은 ATL의 IDispEventSimpleImpl 클래스 템플릿을 사용하여 이벤트를 처리하는 방법을 보여 주고, CNotSoSimple은 ATL의 IDispEventImpl 클래스 템플릿을 사용하여 이벤트를 처리하는 방법을 보여 줍니다. 두 클래스의 코드는 서로 다른 ATL 템플릿을 사용하기 때문에 발생하는 차이점만 제외하고는 동일합니다.

보안 정보:

이 샘플 코드는 개념을 보여 주기 위해 제공되며 가장 안전한 코드 작성 방법을 제시하지 않을 수 있으므로 응용 프로그램이나 웹 사이트에서 사용할 수 없습니다. Microsoft는 샘플 코드를 원래 용도 이외의 다른 용도로 사용하는 경우 발생하는 부수적이나 파생적인 손해에 대해 책임을 지지 않습니다.

샘플 및 이를 설치하기 위한 지침을 가져오려면

  • Visual Studio의 도움말 메뉴에서 샘플을 클릭합니다.

    자세한 내용은 샘플 파일 찾기를 참조하십시오.

  • 최신 버전 및 전체 샘플 목록은 Visual Studio 2008 Samples 페이지에서 온라인으로 사용할 수 있습니다.

  • 컴퓨터의 하드 디스크에서도 샘플을 찾을 수 있습니다. 기본적으로 샘플과 추가 정보 파일은 \Program Files\Visual Studio 9.0\Samples\ 아래의 폴더에 복사됩니다. Visual Studio Express Edition의 경우에는 모든 샘플이 온라인에 있습니다.

샘플 빌드 및 실행

참고:

이 샘플을 사용하려면 Microsoft Office 2000을 설치해야 합니다. 이 샘플을 다른 Microsoft Office 버전에서 사용하려면 ATLEventHandling 디렉터리에 있는 StdAfx.h 파일에서 참조되는 mso dll 파일의 경로를 지정해야 합니다. 예를 들어, Office 2000은 mso9.dll을 사용하고 Office XP 는 mso.dll을 사용합니다.

이 샘플을 빌드하고 실행하려면

  1. 솔루션 파일인 ATLEventHandling.sln을 엽니다.

  2. Excel 2000을 사용하는 경우에는 StdAfx.h에서 다음 줄을 수정해야 합니다.

    #define OFFICE_VER OFFICEXP
    

    위 줄을 다음과 같이 수정합니다.

    #define OFFICE_VER OFFICE2000
    
  3. 빌드 메뉴에서 솔루션 빌드를 클릭합니다.

  4. MFCClient.exe를 실행합니다.

IDispEventImpl 또는 IDispEventSimpleImpl을 사용하여 테스트를 실행할 수 있는 드롭다운 목록이 포함된 대화 상자가 표시됩니다. 이 목록의 항목 중 하나를 선택한 다음 Start 단추를 클릭합니다. 컴퓨터에 Microsoft Word가 설치되어 있으면 새 인스턴스가 로드되고 테스트 구성 요소에서는 액티브 문서가 변경될 때마다 Word에서 보내는 이벤트를 받기 시작합니다.

새 문서를 만들거나 문서를 로드하거나 Word의 창 메뉴를 사용하여 다른 문서로 전환하면 이벤트가 발생됩니다. 문서가 변경될 때마다 새로 활성화된 문서의 이름과 이벤트를 받는 구성 요소를 나타내는 메시지 상자가 표시됩니다. MFCClient 대화 상자에 있는 Stop 단추를 사용하거나, 드롭다운 목록에서 다른 항목을 선택하거나, Word를 닫으면 Word의 인스턴스와 이벤트 처리기의 연결을 끊을 수 있습니다.

샘플 응용 프로그램을 닫으려면 OK 또는 Cancel 명령 단추나 대화 상자의 Close 단추를 사용합니다.

키워드

이 샘플에서는 다음의 키워드를 사용합니다.

_ATL_FUNC_INFO, BEGIN_SINK_MAP, END_SINK_MAP, SINK_ENTRY_EX, SINK_ENTRY_INFO, IDispEventImpl, IDispEventSimpleImpl, IDispEventSimpleImpl::DispEventAdvise, IDispEventSimpleImpl::DispEventUnadvise

참고 항목

기타 리소스

ATL 샘플