Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




 
Ответить Новая тема 
> Работа с делфийским Activex сервером из ворда, Управление освобождением объектов и выгрузкой сервера
evan
Вставить ник
сообщение 3:05:2007, 10:53
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 10
Регистрация: 28:03:2007
Пользователь №: 9 939



Репутация: - 0 +


Здравствуйте.
Я пишу приложение на Delphi 6 со встроенным automation server'ом (т.е. сервер - именно exe, а не dll, а созданный класс является наследником от TAutoObject). Требуется обращаться к методам этого класса из VBA-скрипта в ворде или экселе. При этом логика загрузки/создания/уничтожения/выгрузки требуется следующая:
  • если сервер уже загружен, в пределах макроса создать объект, поработать с ним, и освободить полностью объект, не трогая сервер
  • если сервер не загружен, загрузить его, создать объект/отработать/уничтожить, а сервер опять же оставить запущенным
Сейчас существуют две проблемы: во-первых, если сервер загружается в результате создании объекта, то он выгружается после выхода им макроса, и во-вторых, процесс msword почему-то не закрывает хендл на екзешник сервера после выхода из макроса (т.е. после того, как отработал макрос, удалить екзешник невозможно, пока не закроется ворд).
По логике работы, лучше всего иметь instancing model = internal и threading model = single, но допустимо использовать и другие режимы.
Кроме того, никак не могу добиться работы позднего связывания (т.е. сейчас из скрипта объект можно создать только через New, но не через CreateObject).
У кого есть идеи по этому поводу, плиз пните в нужную сторону. Это мой первый COM-объект, поэтому возможны совсем грубые ошибки. Код не привожу, потому что там его практически нет (COM класс создан мастером, в нем создан один пустой метод, в макросе три строчки, которые создают объект, вызывают метод, и присваивают ссылке nothing).
Подняться вверх 
 
Сообщение #1


Ответить  Новая тема 

 

RSS Текстовая версия Сейчас: 17:05:2008 - 05:29
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net
сервер ibm system x3850; Подробности: microsoft office - рекомендации