In SMO, system messages are represented by the SystemMessageCollection object that belongs to the Server object. Because the system messages cannot be modified, SystemMessage object properties are read-only.
User-defined messages are represented programmatically in SMO by the UserDefinedMessageCollection object. Existing user-defined messages can be discovered by iterating through the collection. New user-defined messages can be created by instantiating a new UserDefinedMessage object and setting the appropriate properties.