Для подтверждения моей правоты я написал такой код:
static void TestId () {
ads_name en; ads_point p;
if (acedEntSel(_T("\nSelect ent: "), en, p) != RTNORM)
return;
AcDbObjectId id; acdbGetObjectId(id, en);
acutPrintf(_T("\nid=%p"), (AcDbStub *)id);
AcDbEntityPointer pEnt(id, AcDb::kForRead);
if (pEnt.openStatus() == Acad::eOk) {
acutPrintf(_T("\nptr=%p"), pEnt.object());
}
}
Для одного и того же примитива pEnt.object() стабильно, т.е. имеет один и тот же указатель в памяти.