Interface Technology Basics
VST 3.6.14
SDK for developing VST Plug-in
|
Unlike C++ classes, VST-MA interfaces do not use inheritance to express specializations of objects. Usually all interfaces are derived from FUnknown. This is because interfaces must never change after they have been released. The VST Module Architecture Interfaces use inheritance only for versioning! All specializations will be modelled as separate interfaces!
For example the C++ classes
expressed in VST-MA, define an interface for each inheritance level:
In the next program version there need to be changes to the Shape
class that look like this:
The VST-MA representation now reflect the changes to Shape by adding a new interface that inherits from IShape and looks like the following code, while the former interface definitions remain the same: