Проверьте, существует ли Delphi OLE соединение - PullRequest
0 голосов
/ 09 марта 2020

Когда я открываю приложение Office, например Word, оно отображается как приложение в диспетчере задач. Если я убью его оттуда, вызов любой указанной c функции Word позже вызовет исключение EOleSysError. Это нормально и работает нормально. Вопрос в том, может ли Word или любое другое приложение OLE быть проверено обычным способом, не зная Word, или нет?

var App, Obj: Variant
begin
  App := CreateOleObject('Word.Application');
  Sleep(100);//placing breakpoint here
// killing Word
// checking if App connection still exists
  IUnknown(App).QueryInterface(IUnknown, Obj);//no exception, doesn't work
  App.Documents.Open('c:\1.docx');//Exception is raised, works but Word specific
end;
...