Тема: AcDbHardPointerId и новая версия объекта
1) Есть MyEntity версии 1
2) В нем есть ссылка на блок как AcDbHandle
3) Команда PURGE убивает блок, если на него никто не ссылается как AcDbHardPointerId
4) Решил сделать MyEntity версии 2
5) Сделал AcDbHardPointerId blockPtr
6) В dwgInFields если версия 1, то blockPtr = (oldObjectIdPtr) если 2, то readHardPointerId(&blockPtr)
Проблема в том, что объекты на старых чертежах версии 1 не модифицируются при работе с чертежом и следовательно после закрытия не сохраняются, а значит не срабатывает dwgOutFields, а значит не пишется HardPointerId.
Получается, что сделав объект с новой версией я решил проблему с purge для новых создаваемых объектов, а старые объекты в старых чертежах - даже при открытии не ссылаются на блок через механизм HardPointerId ссылок... При этом если эти объекты не модифицировать в процессе работы - они так и остаются старой версии...
Как можно в dwgInFields сказать что объект надо записать. (assertWriteEnabled и так стоит - но объект видимо после завершения чтения помечается как не модифицированный и следовательно пытаться сказать что объект изменен в его загрузке не получиться )
Как можно решить такую проблему чтоб старые объекты записывались как новые после открытия и закрытия чертежа?