Тема: acDocManager->appContextOpenDocument( pszFileName ) возвращает Acad::eNotApplicable

Помогите, пожалуйста. У самого не получается отыскать решение.
 
  Мне необходимо в команде вызванной из одного документа открыть другой документ, сделав его временно текущим( acDocManager->curDocument() ), произвести в новом документе некоторые вычисления и закрыть документ без сохранения.

Документ открываю через вызов:
  acDocManager->appContextOpenDocument( pszFileName );
Но он возвращает Acad::eNotApplicable
 
  Команда зарегестрирована как ACRX_CMD_MODAL ! ACRX_CMD_SESSION. Может здесь, на этапе регистрации команды, я что-нибудь забыл?
 
  Такое ощущение, что причина гдето в этом комплексе проблем:
      - явное закрытие документа командой (Explicit Document Locking)
      - запрет не переключение между документами
      - контекст выполнения документ/приложение (Document/Application Execution Context)
      Однако я только начал со всем этим разбираться, и, как видите, самому трудновато. Пробовал кое-что из этого сделать, но характер этих моих действий можно описать так:"...дверью хлопал, колесо ногой пинал,..." :)
      В общем, не поможете?

Re: acDocManager->appContextOpenDocument( pszFileName ) возвращает Acad::eNotApplicable

Чаще всего проблема в контексте(хотя, если команда вызова функции зарегистрирована с флагом  ACRX_CMD_SESSION, то все должно быть нормально ), попробуйте явно проверить контекст:
?.
if (acDocManager->isApplicationContext()) {
    acDocManager->appContextOpenDocument(?);
    }
    else {
       acutPrintf("\nERROR\n");
    }
?
А для гарантированного запуска функции в application context лучше использовать функцию  executeInApplicationContext( void (*procAddr)(void *)pFunc,  void *pData );

Re: acDocManager->appContextOpenDocument( pszFileName ) возвращает Acad::eNotApplicable

Что называется:"Утро вечера мудренее."
Сегодня с утра ни с того, ни с сего, всё заработало. Без всяких изменений!
Похоже, помогло то, что вчера, когда я уже отчаялся, решил записать проект на дискету(ни как не разживусь USBDrive'ом), и поковыряться с ним дома. Конечно, для того, чтобы записать всё на одну дискету, пришлось удалить из проекта папку Debug. Ну а сегодня с утра, когда я по новой всё скомпилировал, всё получилось.

Тем не менее, спасибо за ответ. На метод executeInApplicationContext(...) я по началу как-то не обратил внимания. Попробовал - удобно.

Вот только новый вопрос появился. Как закрыть файл без сохранения; закрыть так, чтобы не было запроса на сохранение изменений в файле?

Метод closeDocument() вроде бы не позволяет этого сделать:(

Re: acDocManager->appContextOpenDocument( pszFileName ) возвращает Acad::eNotApplicable

acdbHostApplicationServices()->workingDatabase()->disableUndoRecording( Adesk::kTrue );