I found this sentence in the document of IProgramListData.
A component can either support program list data via this interface or unit preset data (IUnitData), but not both!
If I understand correctly, IProgramListData and IUnitData are respectively used for saving/loading a specific program state and a specific unit state by a host application instead of saving/loading the whole IComponent state of the plugin by IComponent::get/setState().
I wonder why supporting both IProgramListData and IUnitData by a plugin is prohibited.
Because I suppose that ordinary plugins can support both classes and work correctly.
Would anyone like to tell me why supporting both IProgramListData and IUnitData is prohibited?