Составные интерфейсы документов
В следующих таблицах перечислены интерфейсы, реализованные контейнерами OLE, серверами OLE и составными объектами документов. Необходимые интерфейсы должны быть реализованы на компонентах, для которых они перечислены. Все остальные функции являются необязательными. Однако если вы хотите включить в приложение определенную функцию, необходимо реализовать интерфейсы, отображаемые для этой функции в таблице ниже. Все остальные интерфейсы необходимы только в том случае, если вы включаете определенную функцию.
В следующей таблице перечислены обязательные и необязательные поведения для контейнеров OLE, а также интерфейсы, которые необходимо реализовать для каждого.
Поведение | Интерфейсы |
---|---|
Требуемое поведение |
IOleClientSite IAdviseSink |
Фильтрация сообщений |
IMessageFilter |
Связывание |
никакой |
Связывание с внедренным объектами |
IOleItemContainer IPersistFile IClassFactory |
Активация на месте |
IOleInPlaceSite IOleInPlaceFrame IOleInPlaceObject |
Перетащите и перетащите |
IDropSource IDropTarget IDataObject |
В следующей таблице перечислены обязательные и необязательные действия для серверов OLE и их составных объектов документов, а также интерфейсы, которые необходимо реализовать для каждого. Таблица различает серверы OLE и их объекты, чтобы уточнить, какой компонент реализует интерфейсы. В таблице также отмечаются различные требования объектов, предоставляемых внепроцессными серверами и непроцессными серверами.
Особенность | OLE Server | Объект (внепроцессный) | Объект (внутрипроцессный) |
---|---|---|---|
Требуемое поведение |
IClassFactory |
IOleObject IDataObject IPersistStorage |
IOleObject IDataObject IPersistStorage IViewObject2 IOleCache2 |
Фильтрация сообщений |
IMessageFilter |
||
Связывание |
IOleItemContainer IPersistFile |
IOleLink IExternalConnection |
|
Активация на месте |
IOleInPlaceObject IOleInPlaceActiveObject |
IOleInPlaceObject IOleInPlaceActiveObject |
|
Перетащите и перетащите |
IDropSource IDropTarget IDataObject |