다음을 통해 공유


이벤트 처리 인터페이스 구현

ATL을 사용하면 이벤트 처리에 필요한 세 가지 요소, 즉 이벤트 인터페이스 구현, 이벤트 원본에 대한 조언 및 이벤트 원본의 프로비전 해제를 모두 사용할 수 있습니다. 수행해야 하는 정확한 단계는 이벤트 인터페이스의 유형 및 애플리케이션의 성능 요구 사항에 따라 달라집니다.

ATL을 사용하여 인터페이스를 구현하는 가장 일반적인 방법은 다음과 같습니다.

  • 사용자 지정 인터페이스에서 직접 파생됩니다.

  • 형식 라이브러리에 설명된 이중 인터페이스에 대한 IDispatchImpl에서 파생됩니다.

  • 형식 라이브러리에 설명된 dispinterface에 대한 IDispEventImpl에서 파생됩니다.

  • 형식 라이브러리에 설명되지 않은 dispinterface에 대한 IDispEventSimpleImpl에서 파생되거나 런타임에 형식 정보를 로드하지 않음으로써 효율성을 향상하려는 경우.

사용자 지정 또는 이중 인터페이스를 구현하는 경우 AtlAdvise 또는 CComPtrBase::Advise를 호출하여 이벤트 원본에 대한 조언을 제공해야 합니다. 통화에서 직접 반환한 쿠키를 추적해야 합니다. AtlUnadvise를 호출하여 연결을 끊습니다.

dispinterface를 사용 IDispEventImpl 하거나 IDispEventSimpleImpl구현하는 경우 IDispEventSimpleImpl::D ispEventAdvise를 호출하여 이벤트 원본을 알려야 합니다. IDispEventSimpleImpl::D ispEventUnadvise를 호출하여 연결을 끊습니다.

복합 컨트롤의 기본 클래스로 사용하는 IDispEventImpl 경우 싱크 맵에 나열된 이벤트 원본은 CComCompositeControl::AdviseSinkMap을 사용하여 자동으로 권장되고 프로비전되지 않습니다.

IDispEventSimpleImpl 클래스는 IDispEventImpl 쿠키를 관리합니다.

참고 항목

이벤트 처리