Einzelnen Beitrag anzeigen

Benutzerbild von NicoDE
NicoDE

Registriert seit: 16. Jul 2012
Ort: Darmstadt
26 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Gleiche Interface-Referenzen?

  Alt 6. Mär 2015, 12:31
COM schreibt vor, dass ein Objekt für IUnknown immer den selben Zeiger zurückgeben muss (damit die Identität geprüft werden kann).
Und ich gehe mal davon aus, dass Delphi sich mit seinem IInterface auch daran hält (was nicht für Quellen von dritten gelten muss).

ps: so in etwa (ungetestet)
Delphi-Quellcode:
function CompareInterface(AInterface1, AInterface2: IInterface): Integer;
var
  Lhs: IInterface;
  Rhs: IInterface;
begin
  if Assigned(AInterface1) then
    if Failed(AInterface1.QueryInterface(IInterface, Lhs)) then
      Pointer(Lhs) := nil;
  if Assigned(AInterface2) then
    if Failed(AInterface2.QueryInterface(IInterface, Rhs)) then
      Pointer(Rhs) := nil;
  if PAnsiChar(Lhs) > PAnsiChar(Rhs) then
    Result := 1
  else if PAnsiChar(Lhs) < PAnsiChar(Rhs) then
    Result := -1
  else
    Result := 0;
end;
Nico Bendlin

Geändert von NicoDE ( 6. Mär 2015 um 13:17 Uhr)
  Mit Zitat antworten Zitat