También podes valerte directamente del método QueryInterface de la interfaz IUnknown
Pero la rutina recibe on TObject, no un IUnknown (o IInterface) por lo que para usar QueryInterface primero tendría que obtener una interfaz a IUnknown y ver si esa implementa IMiInterface. Esto es más o menos lo que hace la función Supports.