Тема: ACRX_CMD_SESSION контекст приложения

Объявил свою комманду с флагом ACRX_CMD_SESSION (это нужно было для того, чтоб выполнить
aсDocManager-> appContextNewDocument (_T("acad.dwt"));
все прошло удачно - создался новый документ, но как теперь "перейти" в конекст документа ACRX_CMD_MODAL ? потому что
если продолжать работу   в ACRX_CMD_SESSION (а мне нужно работать с символьными таблицами в новом doc) - происходят фаталы.

Re: ACRX_CMD_SESSION контекст приложения

1) Не обязательно использовать команду с флагом ACRX_CMD_SESSION. Достаточно использовать acDocManager->executeInApplicationContext() (смотри пример samples\editor\docman)
2) Если все же использовать контекст приложения, то необходимо:
a) блокировать документ:

    AcDbDatabase *db = ... // Документ, который нужно править
    AcAxDocLock lockDoc(db);
    if (lockDoc.lockStatus() == Acad::eOk) {
      // Можем работать с документом
    }

b) устанавливать этот документ "рабочим":

    AcDbDatabase *db = ... // Документ, который нужно править
    AcDbDatabase *pOldDb = acdbHostApplicationServices()->workingDatabase();
    acdbHostApplicationServices()->setWorkingDatabase(db);
//
// Здесь твой код
//
    acdbHostApplicationServices()->setWorkingDatabase(pOldDb);

И обязательно анализируй коды возврата всех функций!