Показать сообщение отдельно
  #1  
Старый 08.07.2016, 18:17
Аватар для a.n.d.r.e.w
a.n.d.r.e.w a.n.d.r.e.w вне форума
Прохожий
 
Регистрация: 01.07.2015
Сообщения: 28
Версия Delphi: delphi xe7
Репутация: 10
По умолчанию Сервер автоматизации

Уважаемые форумчане!
Экспериментирую с COM, хочу создать приложение - сервер автоматизации по типу MS WORD. По типу имею ввиду саму конструкцию, т.е. есть один главный объект автоматизации Word.Application который в своих свойствах передает интерфейсы на другие внутрипроцессорные объекты автоматизации, есть главная форма на которой реализуется функционал программы и все это находится в dll. Для запуска такого приложения используется приложение "стартер" с несколькими строками кода.

Код:
 

CoInitialize(nil) ;

  app:=createoleobject('Word.Application');
  app.Visible:=true;

 CoUnInitialize;

"стартер"(приложение-клиент) запускает приложение-сервер, само завершается а приложение-сервер остается работать.

я создал ActiveX library в нее добавил объект автоматизации Applc
в методе TApplc.Initialize делаю так Form1:=TForm1.Create(nil); Form1.Show;

форма появляется, но при закрытии стартера(клиента) закрывается и сервер вместе с формой. Что то не так с Instancing и ThreadingModel? Какие только варианты не пробовал.

Как вообще реализуется такая схема?
Точнее как заставить сервер работать после завершения приложения клиента ("стартера") и куда и как правильно засунуть форму?
Ответить с цитированием