Вы получаете объект через выбор,
ads_name objName);
Вообще, Вы получаете объект через выбор, и это возвращено в форме ads_name. Вы тогда должны обменять ads_name на AcDbObjectId и открывать это. Следующая функция демонстрирует этот процесс:
AcDbEntity*
selectEntity(AcDbObjectId& eId, AcDb::OpenMode openMode)
{
ads_name en;
ads_point pt;
acedEntSel("\nSelect an entity: ", en, pt);
// Exchange the ads_name for an object ID.
//
acdbGetObjectId(eId, en);
AcDbEntity * pEnt;
acdbOpenObject(pEnt, eId, openMode);
return pEnt;
}
Вы можете открывать объект в одном из трех режимов:
Следующая таблица показывает возвращенным кодам ошибки, когда Вы пытаетесь открывать объект в различных режимах, и объект уже открытый.
Открытие объектов в различных режимах
Object already opened for: | kForRead | kForWrite | kForNotify |
openedForRead | eAtMaxReaders (if readCount = 256; otherwise succeeds) | eWasOpenForRead | (Succeeds) |
openedForWrite | eWasOpenForWrite | eWasOpenForWrite | (Succeeds) |
openedForNotify | eWasOpenForNotify | eWasOpenForNotify | eWasOpenForNotify |
wasNotifying | (Succeeds) | eWasNotifying | eWasNotifying |
Undo | eWasOpenForUndo | eWasOpenForUndo | (Succeeds) |
Если Вы пробуете открывать объект для записи, и Вы получаете ошибку eWasOpenForRead, Вы можете использовать upgradeOpen () чтобы модернизировать открытого состояния, чтобы записать, если имеется только одно устройство считывания объекта. Тогда Вы использовали бы downgradeOpen () чтобы понизить его состояние, чтобы читать. Точно так же, если ваш объект открытый для, уведомляют — например, когда Вы получаете уведомление —, и Вы хотите открыть это для записи, Вы можете использовать upgradeFromNotify () чтобы модернизировать его открытого состояния, чтобы записать. Тогда Вы использовали бы downgradeToNotify () чтобы понизить его состояние, чтобы уведомить.
Для получения дополнительной информации относительно того, как управлять комплексными последовательностями открытия и закрытия объектов, см. “ Менеджер Транзакции ” на странице 451.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий