IUnknown interface is used sometimes (e.g. in WinRT implementation of wxNotificationMessage) alone, without other OLE routines, so it is helpful to have its code in the separate file to avoid coupling with main OLE code when only IUnknown implementation is required.