Okay, vielen lieben Dank an alle.
Ich wollte vor allen sichergehen, dass ich nicht irgendetwas übersehe und die
function GetGUIDFromInterfaceInstanceWithMagic()
einfach nur nicht finde.
Die Erklärung von Stevie ist einleuchtend.
Falls jemand in Zukunft ein ähnliches Problem hat, hier meine entgültige Lösung:
Delphi-Quellcode:
const
MyDriveInterfaces : array[1..3] of TGUID = (SID_CAR, SID_TRUCK, SID_MOPED);
function TMyList.GetInterfaceGUID(const AInterfaceInstance : ICanDrive) : TGUID;
var
InterfaceGUID : TGUID;
begin
Result := ICanDrive;
for InterfaceGUID in MyDriveInterfaces do
begin
if Supports(AInterfaceInstance, InterfaceGUID) then
begin
Result := InterfaceGUID;
break;
end;
end;
end;