SOM predates COM, and is even cooler, as it supported class inheritance, metaclasses and Smalltalk as target language.
On OS/2, Smalltalk enjoyed a role similar to what would be .NET and VB on Windows.
Sure you can use delegation with aggregation, and type libraries (nowadays .NET metadata), but still isn't as ergonomic.