ADN Open CIS
Сообщество программистов Autodesk в СНГ

30/05/2013

Рекомендуемый способ для получения доступа к AutoCAD COM интерфейсу с помощью C++

Общий способ доступа к объекту интерфейсу AutoCAD – вызов функции GetActiveObject, но он может вернуть NULL в ряде случаев (и в частности в событии On_kInitAppMsg), а также не гарантируется доступ к текущему AutoCAD.

Так как ObjectARX приложение загружается в пространство процесса AutoCAD, то нет необходимости просматривать таблицу исполняющихся объектов (ROT). Таким образом, мы можем получить его напрямую, используя следующий фрагмент кода, который требует поддержки MFC:

Код - C++: [Выделить]
  1. IAcadApplicationPtr pAcadApp;
  2. IDispatch* pDispatch = acedGetAcadWinApp()->GetIDispatch(FALSE);
  3. pDispatch->QueryInterface(__uuidof(IAcadApplication),
  4.                          (void**)&pAcadApp);

 

Источник: http://adndevblog.typepad.com/autocad/2012/05/recommended-way-to-access-autocad-interface-object-using-c.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=79.0

Опубликовано 30.05.2013
Отредактировано 08.06.2013 в 02:09:08