Create a new copy of an existing DOFObject. 
- Resource Management:
 - This function allocates resources that must later be freed by calling DOFObject_Destroy. 
 
- Parameters
 - 
  
    | self | The DOFObject to be copied. This should not be NULL.  | 
  
   
- Returns
 - A new copy of the DOFObject. 
 
- Exceptions
 - 
  
    | NULL | is returned if self is NULL, or there are insufficient resources to create a copy.  |