COM is not the only architecture where interfaces are used. CORBA knows interfaces, UNO (the
OpenOffice API) uses interfaces, and Java as well. These languages do not know the IUnknown
interface used as the basis of all interfaces in COM. It would therefore be a bad idea if an interface
automatically descended from IUnknown if no parent interface was specified. Therefore, a directive
{$INTERFACES} was introduced in Free Pascal: it specifies what the parent interface is of an
interface, declared without parent. More information about this directive can be found in the
Programmers guide.
Note that COM interfaces are by default reference counted. CORBA interfaces are not necessarily
reference counted.