Тема: Как проверить не закрыл ли пользователь AutoCAD вручную (COM)

Простите чайника...
Подключаюсъ к AutoCAD через COM интерфейс.

...
var ACAD:OleVariant;
....
//функция проверки подключения к ACAD.
function GetAvailable: boolean;
begin
  try
    result:= not VarIsClear(ACAD)
  except
    result:=false;
  end;
end;

Проблема в следущем указанная выше функция работает корректно, но если закрыть AutoCAD "вручную" (File-Exit или Ctrl+Q или просто крестик в углу), то функция в любом случае возвращает значение TRUE, что в последствии приводит к ошибкам. Обработчики событий к сожалению на такое явление как закрытие автокада не хотят реагироватъ. =( Вопрос: Есть ли возможностъ проверитъ ACAD:OleVariant на подключение в случае если AutoCAD закрыт вручную? Быть может какие то косвенные способы вроде того что теле функции запускать какой-нибудь метод ACAD, и если он не вызвал ошибку то продолжать работу... Или же проверять через Handle...
Спасибо. С уважением Гопник_Боря

Re: Как проверить не закрыл ли пользователь AutoCAD вручную (COM)

не знаю как у вас, а у меня обработчики все обрабатывают :)
а для проверки именно "запускать какой-нибудь метод ..." - я, например, "читаю" св-во Version.
типа так (рабочий код привожу как есть, думаю основная мысль понятна):

function TMainForm.CheckAcadApplication : boolean;
var AVersion : string;
begin
  WriteToLog(' проверка доступности AutoCAD ');
  if FAcadApplication <> nil then
    try
      AVersion := FAcadApplication.Version;
      WriteToLog(' проверка доступности AutoCAD прошла успешно.');
      result := true;
    except
      result := false;
      WriteToLog(' обнаружено аварийное завершение работы AutoCAD.');
      FAcadApplication := nil;
      if FAcadEvents <> nil then
        begin
          //FAcadEvents.Free;
          FAcadEvents := nil;
        end;
      if FAcadDocument <> nil then FAcadDocument := nil;
      if FAcadDocumentEvents <> nil then
        begin
          //FAcadDocumentEvents.Free;
          FAcadDocumentEvents := nil;
        end;
      FProgModuleLoaded := false;
      SendMessage(Handle, WM_REFRESH_STATUS, 0, 0);
    end
  else
    begin
      WriteToLog(' AutoCAD недоступен.');
      result := false;
    end;
end;