Для подключения к исполняемой копии Word можно использовать команду «GetActiveOleObject». Она возвращает переменную с именем «IDispatch», содержащую указатель на работающее приложение Word. После этого у него можно с помощью «QueryInterface» запросить указатель на объект «_Application». GetActiveOleObject генерирует исключение, если запрашиваемый объект не существует в Running Object Table (ROT). Поэтому вызов его необходимо делать внутри блока «try..except».
uses Word_TLB;
procedure StartWord(var WordApp: _Application);
var
SaveChanges: OleVariant;
begin
try
GetActiveOleObject('Word.Application').QueryInterface(_Application, WordApp);
except
WordApp := nil;
end
if (UnAssigned(WordApp)) then
try
WordApp := CoApplication.Create;
WordApp.Visible := True;
except
if (Assigned(WordApp)) then begin
SaveChanges := wdDoNotSaveChanges;
WordApp.Quit(SaveChanges, EmptyParam, EmptyParam);
end;
end;
end;