In order to define public attributes, you have to specify properties of the public attributes in R3TAGNAME array and implement four methods which deal with the tagname array.
Let's imagine your want to study the properties of an object that you don't know. To do this, call:
R3LIST list; R3TAGLISTNODE *n; R3INT tag; R3TYPEID type; R3NewList(&list); R3DoA(obj, R3RM_MAKETAGLIST, &list); for(n = (R3TAGLISTNODE*)list->head; n->n.next; n = (R3TAGLISTNODE*)n->n.next) { for (i = 0; n->tagsarray && n->tagsarray[i].name; i++) { tag = n->tagsarray[i].tag; type = n->tagsarray[i].type; ... } } R3DoA(obj, R3RM_FREETAGLIST, &list);
Note that each node in the list corresponds to a class. The inner for loop scans through the attributes in a class.