다음을 통해 공유


여러 개의 이중 인터페이스

이중 인터페이스 (즉, vtable 및 후기 바인딩을 사용 하므로 클래스 C++ 뿐만 아니라 스크립팅 언어 가능, 유연성)의 장점을 결합 하려고 다중 상속의 기술로.

여러 이중 인터페이스는 단일 COM 개체에서 노출 하는 것이 가능 하지만 권장 되지 않습니다.이중 인터페이스를 여러 개 있으면 있어야 하나만 IDispatch 인터페이스를 노출 합니다.경우 인지 확인 하는 데 사용할 수 있는 기술을 저하 손실 함수 또는 향상 된 코드의 복잡성 등을 수행 합니다.이 접근 방식을 고려 하는 개발자는 신중 하 게 장단점 비교 해야 합니다.

단일 IDispatch 인터페이스를 노출합니다.

두 개 이상에서 특수화를 파생 하 여 단일 개체에서 이중 인터페이스를 여러 개 노출 하는 것이 가능 IDispatchImpl.그러나 클라이언트에 대 한 쿼리를 허용 하는 경우는 IDispatch 인터페이스를 해야 사용는 COM_INTERFACE_ENTRY2 매크로 (또는 COM_INTERFACE_ENTRY_IID)의 구현에 사용 하는 기본 클래스를 지정 하려면 IDispatch.

COM_INTERFACE_ENTRY2(IDispatch, IMyDualInterface)

때문에 하나의 IDispatch 인터페이스를 노출만 개체를 통해 액세스할 수 있는 클라이언트는 IDispatch 인터페이스 메서드 또는 속성에서 다른 인터페이스에 액세스할 수 없게 되지 않습니다.

여러 개의 이중 인터페이스는 단일 IDispatch 구현으로 결합

ATL 제공 하지 지원의 단일 구현으로 여러 이중 인터페이스를 결합에 대 한 IDispatch.그러나 수동으로 만들기는 별도의 공용 구조체에 있는 템플릿 기반 클래스는 인터페이스를 결합 하려면 몇 가지가 알려진 IDispatch 인터페이스를 수행 하는 새 개체를 만들기는 QueryInterface 함수 또는 중첩 된 개체는 않음 기반 구현을 사용 하 여 만들는 IDispatch 인터페이스.

이러한 방법에는 네임 스페이스 충돌 가능성을 뿐만 아니라 코드의 복잡성 및 유지 관리 문제가 있습니다.여러 개의 이중 인터페이스를 권장 하지 않습니다.

참고 항목

개념

이중 인터페이스 및 ATL