이벤트 처리 인터페이스 구현
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
쿠키를 관리합니다.