COM(필수 인터페이스)
아래 표에서는 ActiveX 컨트롤 컨테이너 인터페이스를 나열하고 어떤 인터페이스가 선택 사항이며 필수이며 컨트롤 컨테이너에서 구현해야 하는 인터페이스를 표시합니다.
인터페이스 | 필수? | 코멘트 |
---|---|---|
IOleClientSite |
예 |
|
IAdviseSink |
아니요 |
컨테이너가 (a) 데이터 변경 알림(IDataObject있는 컨트롤), (b) 보기 변경 알림(활성 상태가 아니고 IViewObject또는 IViewObject2있는 컨트롤) 및 (c) 표준 포함된 개체 역할을 하는 컨트롤의 기타 알림을 원하는 경우에만. |
IOleInPlaceSite |
예 |
|
IOleControlSite |
예 |
|
IOleInPlaceFrame |
예 |
|
IOleContainer |
예 |
참고 1 참조 |
앰비언트 속성에 대한 IDispatch |
예 |
참고 2 및 컨트롤의 앰비언트 속성 참조 |
컨트롤 이벤트 집합 |
예 |
참고 2 참조 |
ISimpleFrameSite |
아니요 |
ISimpleFrameSite 중첩된 단순 프레임에 대한 지원은 선택 사항입니다. |
IPropertyNotifySink |
아니요 |
(a) 컨트롤이 속성 자체를 변경하거나 (b) [requestedit] 속성 변경 및 기타 데이터 바인딩 기능을 제어하려고 할 때마다 업데이트해야 하는 자체 속성 편집 UI가 있는 컨테이너에만 필요합니다. |
IErrorInfo |
예 |
컨테이너가 이중 인터페이스를 지원하는 경우 필수입니다. 참고 2를 참조하세요. |
IClassFactory2 |
아니요 |
지원을 강력히 권장합니다. |
- IOleContainer 컨테이너 사이트를 포함하는 문서 또는 양식 개체(또는 적절한 아날로그)에 구현됩니다. 컨트롤은 IOleContainer 사용하여 동일한 문서 또는 양식의 다른 컨트롤로 이동합니다.
- 이중 인터페이스에 대한 지원은 필수는 아니지만 강력하게 권장됩니다. 이중 인터페이스를 활용하기 위해 ActiveX 컨트롤 컨테이너를 작성하면 이중 인터페이스 지원을 제공하는 컨트롤의 성능이 향상됩니다.
ActiveX 컨트롤 컨테이너는 OLE 자동화 예외를 지원해야 합니다. 컨트롤 컨테이너가 이중 인터페이스를 지원하는 경우 IErrorInfo통해 자동화 예외를 캡처해야 합니다.