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 Object Pascal code, IUnknown is simply another name for IInterface. Descending from IUnknown instead of IInterface informs the Object Pascal 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.