Маршалинг указателей
От: Sc0ut Россия  
Дата: 27.11.02 06:24
Оценка:
Имеем COM-объект, создающий внутри себя рабочий поток, иногда
генерирующий события, т.е. вызывающий методы connection points. В
модели MTA все нормально, но если объявить объект как STA, то
происходят исключения в клиентах. Знаю, что необходимо маршаллить из
потока в поток указатели на интерфейсы точек соединения, но никак не
могу сообразить с какого конца к ним подойти, в какой момент
CoMarshal.., а в какой — CoUnMarshal..

Ткните пожалуйста хотя бы в исходник подобного объекта, объявленного
как Both, создающего внутри себя рабочий поток, генерирующий
события.
Re: Поиск
От: Vi2 Удмуртия http://www.adem.ru
Дата: 27.11.02 08:01
Оценка:
Здравствуйте, Sc0ut, Вы писали:

S> Имеем COM-объект, создающий внутри себя рабочий поток, иногда генерирующий события, т.е. вызывающий методы connection points. В модели MTA все нормально, но если объявить объект как STA, то происходят исключения в клиентах. Знаю, что необходимо маршаллить из потока в поток указатели на интерфейсы точек соединения, но никак не могу сообразить с какого конца к ним подойти, в какой момент CoMarshal.., а в какой — CoUnMarshal..
S> Ткните пожалуйста хотя бы в исходник подобного объекта, объявленного как Both, создающего внутри себя рабочий поток, генерирующий события.

Я думаю, что нужно пользоваться поиском по своим ключевым словам. Вижу, ты их знаешь!
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re: Маршалинг указателей
От: Dima2  
Дата: 27.11.02 09:04
Оценка:
Здравствуйте, Sc0ut, Вы писали:

S> Ткните пожалуйста хотя бы в исходник подобного объекта, объявленного

S> как Both, создающего внутри себя рабочий поток, генерирующий
S> события.

См.
http://www.rsdn.ru/forum/Message.aspx?mid=113152
Автор: Dima2
Дата: 11.10.02


http://www.rsdn.ru/article/default.asp?com/apartmnt.xml
Автор(ы): Jeff Prosise
Дата: 22.02.2001

В этой статье подробно рассматриваются подразделения (apartments) в модели
COM. Автор описывает различные виды подразделений, показывает, каким образом
подразделения назначаются потокам и объектам, а также даёт ряд полезных
советов, которые позволят вам избежать ошибок при работе с подразделениями.


или поищи — ключевые слова
CoMarshalInterThreadInterfaceInStream
IGlobalInterfaceTable
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.