Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В приведенной ниже таблице перечислены интерфейсы контейнеров activeX, а также указывается, какие интерфейсы являются необязательными, и которые являются обязательными и должны быть реализованы контейнерами элементов управления.
| Интерфейс | Обязательно? | Комментарии |
|---|---|---|
|
IOleClientSite |
Да |
|
|
IAdviseSink |
Нет |
Только если уведомления об изменении данных (а) контейнера (элементы управления с IDataObject), (b) просматривают уведомления об изменении (элементы управления, которые не активны и имеют IViewObject или IViewObject2), а также (c) другие уведомления элементов управления, действующие в качестве стандартных внедренных объектов. |
|
IOleInPlaceSite |
Да |
|
|
IOleControlSite |
Да |
|
|
IOleInPlaceFrame |
Да |
|
|
IOleContainer |
Да |
См. примечание 1 |
|
IDispatch для свойств окружающей среды |
Да |
См. примечание 2 и свойства среды для элементов управления |
| Наборы событий управления |
Да |
См. примечание 2 |
|
ISimpleFrameSite |
Нет |
ISimpleFrameSite и поддержка вложенных простых кадров является необязательным. |
|
IPropertyNotifySink |
Нет |
Только для контейнеров, которые (a) имеют собственный пользовательский интерфейс редактирования свойств, который требует обновления, когда элемент управления изменил само свойство или (b) хотите контролировать [запрошенный] изменения свойств и другие такие функции привязки данных. |
|
IErrorInfo |
Да |
Обязательно, если контейнер поддерживает двойные интерфейсы. См. примечание 2. |
|
IClassFactory2 |
Нет |
Поддержка настоятельно рекомендуется. |
- IOleContainer реализуется в документе или объекте формы (или соответствующем аналоге), в котором хранятся сайты контейнеров. Элементы управления используют IOleContainer для перехода к другим элементам управления в том же документе или форме.
- Поддержка двух интерфейсов не является обязательной, но настоятельно рекомендуется. Написание контейнеров элементов управления ActiveX для использования двух интерфейсов позволит повысить производительность с помощью элементов управления, которые предлагают поддержку двух интерфейсов.
Контейнеры элементов управления ActiveX должны поддерживать исключения OLE Automation. Если контейнер управления поддерживает двойные интерфейсы, он должен записывать исключения автоматизации с помощью IErrorInfo.