컨테이너의 기능 사용

이전 섹션에서는 ActiveX 컨트롤이 해당 컨테이너의 특정 기능에 액세스 하기 위해 가져야 하는 필수 호출자 쪽 지원에 대해 설명 했습니다. 다음 표에서는 컨테이너 쪽 인터페이스를 사용 하는 컨트롤의 사용 방법과 이러한 사용이 발생 하는 경우를 설명 합니다.

인터페이스 컨테이너 개체 사용량
IOleClientSite
사이트
IOleObject 를 구현 하는 컨트롤은 표준 OLE 포함 프로토콜의 일부로 IOleClientSite 메서드를 호출 합니다. 특히 메서드 saveobject, showobject, OnShowWindow (개별 창 활성화 상태가 지원 되는 경우에만 해당), requestnewobjectlayout및 getcontainer (다른 컨트롤과의 통신이 필요한 경우)입니다. Getmoniker 메서드는 컨트롤을 외부에 연결할 수 있는 경우, 즉 컨트롤이 OLEMISC CANTLINKINSIDE로 표시 되지 않은 경우에만 사용 됩니다 _ .
IOleInPlaceSite
사이트
내부 활성화 및 UI 활성 상태를 포함 하는 컨트롤은 표준 OLE 내부 활성화 프로토콜의 일부로 IOleInPlaceSite 메서드 (일반적으로 ContextSensitiveHelp를 제외 하 고는 모두)를 호출 합니다.
IAdviseSink
사이트
컨트롤에서 IViewObject2, OnClose, OnSave, IOleObject를 지 원하는 경우 컨트롤 에서 IDataObject, OnViewChange 를 지 원하는 경우 컨트롤은 ondatachange 를 호출 합니다.
IOleControlSite
사이트
지원 되는 경우 OnControlInfoChanged 는 니모닉이 변경 될 때, LockInPlaceActiveTransformCoords , 이벤트가 발생 하는 경우 (두 번째 메서드는 좌표가 이벤트 인수로 전달 될 경우에만 사용 됨), 컨트롤에 UI 활성 상태를 포함 하는 경우 OnFocusTranslateAccelerator , 그리고 컨트롤이 확장 컨트롤 (컨테이너 소유) 속성을 확인 하려는 경우 getextendedcontrol 을 호출 합니다.
IDispatch (앰비언트 속성)
사이트
앰비언트 속성에 액세스 하는 데 사용 됩니다.
IPropertyNotifySink
상황에 따라 다름
컨트롤은 바인딩 가능 하 고 요청으로 표시 된 모든 컨트롤 속성에 대해 Onchangedonrequestedit 를 생성 해야 합니다 [ ] [ ] .
기타 이벤트 싱크 인터페이스
상황에 따라 다름
IPropertyNotifySink 가 아닌 나가는 인터페이스를 포함 하는 컨트롤은 컨트롤의 IConnectionPoint:: Advise 구현에 대 한 올바른 IID의 다른 인터페이스 포인터로 전달 됩니다 (일반적으로 컨트롤의 하위 개체에서 발견 됨). 컨트롤은 해당 인터페이스를 정의 하기 때문에 컨트롤은 항상 자체 이벤트 인터페이스를 호출 하는 방법을 알고 있습니다.
IOleInPlaceFrame
프레임
컨트롤에 프레임 수준 도구나 메뉴 항목이 필요한 내부 UI 활성 상태가 있을 때 사용 됩니다.
IOleInPlaceUIWindow
문서
컨트롤이 문서 수준 또는 창 수준 UI 도구를 필요로 하는 내부 UI 활성 상태에 있는 경우에만 사용 됩니다. 이러한 경우는 드뭅니다.

컨트롤