События в КОМПАС Общие сведения |
Scroll |
Генерация событий в КОМПАС осуществляется при помощи компактных интерфейсов событий, в которых события группируются по тематике. Подписка на события проводится во время подключения библиотеки при помощи предопределенной функции LibInterfaceNotifyEntry().
Для Automation реализация основана на стандартном механизме ConnectionPoint. Основные объекты, такие как KompasObject, ksDocument2D и т.п., которые являются источниками событий, наследуют интерфейс IConnectionPointContainer, позволяют подписаться на один основной интерфейс и предоставляют дополнительные объекты-источники событий. Подписаться на события или отменить подписку можно стандартным способом при помощи методов интерфейса IConnectionPoint: IConnectionPoint::Advise и IConnectionPoint::Unadvise.
Для COM реализация основана на интерфейсах IUnknown, которые предоставляет библиотека. Подписаться на события или отменить подписку можно при помощи экспортных функций: ksConnectionAdvise и ksConnectionUnadvise.
Библиотека сама должна позаботиться о своевременной отписке от неактуальных событий. Например, в момент закрытия документа нужно обработать соответствующее событие и отписаться от всех событий, связанных с данным документом (см. таблицу связей). При закрытии приложения следует отписаться от всех событий.
Интерфейс событий приложения...
Интерфейс событий документа, работа с файлом...
Интерфейс событий документа-модели...
Интерфейс событий графического документа...
Интерфейс событий менеджера выделенных объектов...
Интерфейс событий объектов графического документа...
Интерфейс событий объектов документа-модели...
Интерфейс событий основной надписи графического документа...
Интерфейс событий объекта спецификации...
Интерфейс событий спецификации...
Интерфейс событий документа-спецификации...
Связь объектов системы с интерфейсами событий...
Подразделы:
Интерфейс событий приложения ksKompasObjectNotify/IKompasObjectNotify
Интерфейс событий документа; работа с файлом ksDocumentFileNotify/IDocumentFileNotify
Интерфейсы событий графического документа ksDocument2DNotify/ IDocument2DNotify
Интерфейс событий объектов графических документов ksObject2DNotify/ IObject2DNotify
Интерфейс событий документа-модели ksDocument3DNotify/IDocument3DNotify
Интерфейс событий документа-модели ksObject3DNotify/IObject3DNotify
Интерфейс событий основной надписи графического документа ksStampNotify/IStampNotify
Интерфейс событий менеджера выделенных объектов ksSelectionMngNotify/ISelectionMngNotify
Интерфейс событий документа-спецификации ksSpcDocumentNotify/ISpcDocumentNotify
Интерфейс событий спецификации ksSpecificationNotify/ISpecificationNotify
Интерфейс событий объекта спецификации ksSpcObjectNotify/ISpcObjectNotify