_msoListBase

Macro group for uni-directional lists

* _msoListBaseDefine( nodetype )
  Defines the nodetype list type by the name nodetypeList

* _msoListBaseBegin( list_ptr )
  Returns the head of the list

* _msoListBaseEnd( list_ptr )
  Returns the end of the list  (Actually NULL)

* _msoListBaseIsEmpty( list_ptr )
  Returns whether or not the list is empty

* _msoListBaseInit( list_ptr )
  Initializes the list

* _msoListBasePushFront( list_ptr, node_ptr )
  Adds a node from the head of the list

* _msoListBasePopFront( list_ptr )
  Deletes a node from the head of the list

Usage Examples 
* Create a list of MxxObject's called mxxObjectList 
  and create mxxObjectListPushFront( ) as follows.

  _msoListBaseDefine( MxxObject );
  #define _mxxObjectListPushFront(list_ptr,node_ptr) \
          _msoListBasePushFront(list_ptr,node_ptr)

* Scan MxxObject
  for ( node_ptr = mxxObjectListBegin( list_ptr );
        node_ptr != mxxObjectListEnd( list_ptr );
        node_ptr = node_ptr->next_ptr )
  {
      ....
  }