Quantcast
Channel: MicroStation Programming Forum - Recent Threads
Viewing all articles
Browse latest Browse all 4331

[MSCE Update 17.2, C] Why a new level can not be set ReadOnly? (mdlLevel_setReadOnly fail)

$
0
0

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


Viewing all articles
Browse latest Browse all 4331

Trending Articles