Поделиться через


Использование функциональных возможностей контейнера

В предыдущих разделах описана некоторая необходимая поддержка вызывающего элемента управления ActiveX для доступа к определенным функциям контейнера. В следующей таблице описывается использование интерфейсов на стороне контейнера элемента управления и при возникновении такого использования.

Интерфейс Объект контейнера Использование
IOleClientSite
Site
Элементы управления, реализующие методы IOleObject, вызывают методы IOleClientSite в рамках стандартного протокола внедрения OLE, в частности методы SaveObject, ShowObject, OnShowWindow (только если поддерживается состояние активации отдельного окна), RequestNewObjectLayout и GetContainer (если требуется взаимодействие с другими элементами управления). Метод GetMoniker используется только в том случае, если элемент управления может быть связан с внешним, то есть элемент управления не помечается OLEMISC_CANTLINKINSIDE.
IOleInPlaceSite
Site
Элементы управления с активацией на месте и, возможно, активное состояние пользовательского интерфейса вызывают методы IOleInPlaceSite (как правило, все из них, за исключением ContextSensitiveHelp) в рамках стандартного протокола активации OLE на месте.
IAdviseSink
Site
Элемент управления вызывает OnDataChange, если элемент управления поддерживает IDataObject, OnViewChange, если элемент управления поддерживает IViewObject2 и OnClose, OnSave и OnRename, если элемент управления поддерживает IOleObject.
IOleControlSite
Site
Если поддерживается, управление вызывает OnControlInfoChanged при изменении mnemonics, LockInPlaceActive и TransformCoords, если события запускаются (последний метод используется только в том случае, если координаты передаются в качестве аргументов событий), OnFocus и TranslateAccelerator, если элемент управления имеет активное состояние пользовательского интерфейса и GetExtendedControl Значение , если элемент управления хочет просмотреть свойства расширенного элемента управления (контейнера).
IDispatch (внешние свойства)
Site
Используется для доступа к свойствам окружающей среды.
IPropertyNotifySink
Различается
Элемент управления должен создавать OnChanged и OnRequestEdit для всех свойств элемента управления, помеченных как [bindable] и [request], соответственно.
Другие интерфейсы приемника событий
Различается
Элемент управления, имеющий исходящие интерфейсы, отличные от IPropertyNotifySink, будет передан другим указателям интерфейса правильного IID в реализации элемента управления I Подключение ionPoint::Advise (которые обычно находятся в вложенных объектах элемента управления). Элемент управления всегда знает, как вызывать собственные интерфейсы событий, так как элемент управления определяет эти интерфейсы.
IOleInPlaceFrame
Кадр
Используется, если элемент управления имеет активное состояние пользовательского интерфейса на месте, требующее инструментов уровня кадра или элементов меню.
IOleInPlaceUIWindow
Документ
Используется только в том случае, если элемент управления имеет активное состояние пользовательского интерфейса на месте, требующее инструментов пользовательского интерфейса на уровне документа или области. Но такие случаи редки.

Элементы управления