Free-Threaded Marshaler. Как его реализовать в D5?
От: IDispatch  
Дата: 04.01.02 14:21
Оценка:
У меня возникла проблема с присвоением внутреннему объекту Application (IIS 5.0) экземпляра класса, произошедшего от IAutoIntfObject... IIS говорит, что, видите ли: "Application object, ASP 0197 (0x80004005)<br>Cannot add object with apartment model behavior to the
application intrinsic object"

MSDN же объясняет это так: надо реализовать FTM (Free-Threaded Marshaler)

Кто-нибудь знает как это сделать в D5?? Я посмотрел пример с использованием ATL в VC++ — там это легко, но не эстетично )

Я вот думаю, наверняка же можно эти макросы инкапсулировать...?

Заранее спасибо!
Vsevolod
Re: Free-Threaded Marshaler. Как его реализовать в D5?
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.01.02 21:32
Оценка:
Здравствуйте IDispatch, Вы писали:

ID>Кто-нибудь знает как это сделать в D5?? Я посмотрел пример с использованием ATL в VC++ — там это легко, но не эстетично )




ID>Я вот думаю, наверняка же можно эти макросы инкапсулировать...?


Так в чем проблема?

Дкльфи аггрегировать COM-объекты умеет? (вроде да)

Сам FTM — это ни что иное как внешний COM-объект который нужно аггрегировать.

Короче, создаешь FTM с помощью CoCreateFreeThreadedMarshaler.
Вместо IMarshal выдаешь указатель на FTM.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Free-Threaded Marshaler. Как его реализовать в D5?
От: Аноним  
Дата: 05.01.02 07:44
Оценка:
Здравствуй Vlad,

Я не работал с IMarshal'ом... Можешь скинуть кусок кода? ;) Сенкс!


VD>Здравствуйте IDispatch, Вы писали:


ID>>Кто-нибудь знает как это сделать в D5?? Я посмотрел пример с использованием ATL в VC++ — там это легко, но не эстетично ;))


VD>:)))


ID>>Я вот думаю, наверняка же можно эти макросы инкапсулировать...?


VD>Так в чем проблема?


VD>Дкльфи аггрегировать COM-объекты умеет? (вроде да)


VD>Сам FTM — это ни что иное как внешний COM-объект который нужно аггрегировать.


VD>Короче, создаешь FTM с помощью CoCreateFreeThreadedMarshaler.

VD>Вместо IMarshal выдаешь указатель на FTM.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.