| 
      
    | 
   
Create a new DOFObjectID by augmenting an existing DOFObjectID with specified Attribute type and a value buffer.  
- Resource Management:
 - This function allocates resources that must later be freed by calling DOFObjectID_Destroy. 
  
- Note
 - This function stores Attributes in increasing numerical order by type, as required by the protocol specification. 
  
- Parameters
 - 
  
    | self | The original DOFObjectID, which remains unchanged. This should not be NULL.  |  
    | type | The ID of the new Attribute. See DOFObjectIDAttributeType. Valid numeric range is 0 <= type <= 127.  |  
    | attributeDataSize | Size, in byte count, of the supplied new Attribute's data. Valid range is 0 <= attributeDataSize <= 255.  |  
    | attributeData | The new Attribute's data. This should not be NULL if valueSize > 0. The data must be appropriate for the given attribute type.  |  
   
   
 
- Returns
 - The new DOFObjectID. 
  
- Exceptions
 - 
  
    | NULL | is returned if
- an invalid parameter is detected; or
 
- the existing objectID already contains an Attribute with the same type; or
 
- insufficient resources exist to create the DOFObjectID. 
 
 
 |  
   
   
 
 
 
     |