Другие соображения по прикладному контексту выполнения
Имеются также некоторые возможности и ограничения, которые применяются к коду, выполняющему в прикладном контексте выполнения.
§
когда контекст выполнения ваш код выполняется под, не неявен в вашей структуре кода, Вы можете делать этот запрос, чтобы найти,является ли это прикладной контекст выполнения:
Adesk::Boolean
AcApDocManager::isApplicationContext() const;
§ Все ActiveX члены ввода пользователя может использоваться, но удостовериться, что Вы вызываете их на сервисный объект, связанный с активным и текущим документом. Как отмечено выше, переключение документа будет заблокировано, когда ввод пользователя получен в этом контексте. Вы можете получить IACADDOCUMENT* образец, который соответствует потоку AcApDocument через запрос:
acDocManager()->curDocument()->cDoc()->GetIDispatch( BOOL bAddRef);
§ Все ObjectARX функции ввода пользователя может быть вызван с текущим активным документом, неявно используемым. Как отмечено выше, переключение документа будет заблокировано, когда ввод пользователя получен в этом контексте.
§ Прикладной код, выполняющийся от прикладного контекста может использовать следующую функцию члена, чтобы переключить или текущий и активный документ, вместе или индивидуально, как желательно.
virtual Acad::ErrorStatus
setCurDocument(
AcApDocument* pDoc,
AcAp::DocLockMode = AcAp::kNone,
bool activate = false) = 0;
§ чередуясь между запросом ввода пользователя и изменения или формирования текущего документа, можно запрашивать относительно ввода от множественных документов от единственного контекста выполнения и единственной последовательности кода. Недостаток{*препятствие*} - то переключение документа пользователем, заблокирован при запросе ввода, так что код должен знать, к которому документу требуется переключить.
§ когда активные и текущие документы отличаются, знать что ActiveX и ObjectARX ввод пользователя функции не будет работать должным образом. Используйте curDocument () и mdiActiveDocument () функции, чтобы проверить текущие и активные документы.
§ если приложение выгружается с текущим документом и активным отличным документом, следующее входное событие восстановит текущий документ назад к активному документу.
§ когда код, выполняющийся от прикладного контекста запрашивает ввод пользователя, используя ActiveX функции ввода пользователя, автоматическое интерактивное переключение документа заблокирован, хотя текущее переключение документа может быть выполнено.