type IInterface = interface
Is a special base interface.
IUnknown is a base interface with features that are important to C++ programmers and also programmers who utilize COM objects.
Note: In Delphi code, IUnknown is simply another name for IInterface. Descending from IUnknown instead of IInterface informs the Delphi compiler that the interface must be compatible with COM objects. Cross-platform applications can use interfaces descended from IUnknown, but must not use them to access COM objects, which are only available under Windows.