ProcessMsg()

This method is used to perform a full ispec transaction. A GenericClass object is passed, containing the values of all ispec input fields. A full ispec cycle transaction is executed, including the ispecs Prepare(), Main() and Construct() methods (if refreshing or recalled). A new GenericClass object representing the returned ispec is passed back as a return value. This is for the same ispec if it has recalled itself or refreshed, or another ispec if recalled. The values from all ispec output fields can be retrieved from this returned GenericClass object.