1С 7.7 Использование событий COM #526229


#0 by Pavel1980
Уважаемые, можете помочь, не знаю с какой стороны подступиться. Есть задача подключить устройство через библиотеку spsdksw.dll для получения от него событий и их последующей обработке через процедуру "ОбработкаВнешнегоСобытия". Полная документация с примерами есть тут: В ней в частности написанно: Использование событий COM Интерфейсы ISpRecordClientW и ISpRecordChannelClientW, реализуемые серверными объектами, позволяют использовать события COM для получения сообщений вместо вызовов PeekMessage. Чтобы подготовиться к получению входящих оповещений клиент создает внутренний объект COM, который является приемником событий. Приемник событий включает интерфейс для предоставления серверу методов, связанных с событием. Клиент реализует интерфейс приемника событий как обычный интерфейс COM. COM объект должен реализовывать интерфейс диспетчеризации ISpRecordClientWEvents (GUID: {05D75F47-B20B-4717-82E5-78328F3D0E5F}), для получения сообщений от ISpRecordClientW, или ISpRecordChannelClientWEvents (GUID: {C754482B-49D9-49EF-B852-1A22C5737CC3}), для получения сообщений от ISpRecordChannelClientW. Получив оповещение, клиент может выполнить действия, связанные с данным событием. После определения интерфейса приемника событий приемник должен быть подключен (привязан) к источнику. Механизм подключения использует следующий протокол для связывания приемника и источника: Клиент запрашивает интерфейс IConnectionPointContainer у серверного объекта методом QueryInterface. С помощью методов интерфейса IConnectionPointContainer приемник находит интерфейс IConnectionPoint, предоставляющий определенную точку подключения. Получив нужный объект, клиент вызывает метод IConnectionPoint::Advise для регистрации указателя интерфейса приемника. События будут порождаться до тех пор, пока клиент не разорвет подключение с помощью метода IConnectionPoint::Unadvise. Как использовать эту библиотеку. Нужно ли для этого разрабатывать специально внешнюю компоненту?
#1 by Rie
Обернуть во внешнюю компоненту. Для 7.7 других вариантов нет.
#2 by Ork
1С не умеет _напрямую_ получать события ком объектов.
#3 by Ork
+ В сети есть (и обсуждалась на форуме) обертка, которая может юзать ком объект и вызывать 1с-ною Обработка внешнего события. Поиск вам поможет.
#4 by Pavel1980
А по внешней компоненте можете поподробнее рассказать, что она должна из себя представлять. Я так понимаю она должна быть типа как прокси, принимать события и передавать их, представляется вроде не сложно. Кстати а EventProxy.dll подойдет?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям