Hi all,
Does anyone have a clue why this very simple code which is trying to set a read-only attribute on a new level results in epic fail?
(for the reference, this code works correctly in V8i)
LevelId levelId = 0; DgnModelRefP modelRef = mdlModelRef_getActive (); if ( SUCCESS == mdlLevel_create ( &levelId, modelRef, L"TestLevel", LEVEL_NULL_CODE ) ) { bool statOld = false, statNew = false; int ret = 0, stat = 0; mdlLevel_getReadOnly ( &statOld, modelRef, levelId ); ret = mdlLevel_setReadOnly ( modelRef, levelId, ! statOld ); // flip state stat = mdlLevelTable_rewrite ( modelRef ); if ( stat ) printf ( "TABLE REWRITE failed, ERROR %d\n", stat ); else printf ( "TABLE REWRITE OK\n" ); mdlLevel_getReadOnly ( &statNew, modelRef, levelId ); if ( ret || statOld == statNew ) { printf ( "EPIC FAIL! error %d, level %lu, state: Read%s\n", ret, levelId, statNew ? "Only" : "Write" ); } else { printf ( "PASSED! level %lu OK\n", levelId ); mdlLevel_setReadOnly ( modelRef, levelId, statOld ); } mdlLevel_delete ( modelRef, levelId ); }
Best Regards,
/Chris