Einzelnen Beitrag anzeigen

Fingolfin

Registriert seit: 7. Okt 2003
62 Beiträge
 
#9

Re: Interfaces: Ich werd' irre!

  Alt 11. Jul 2004, 19:45
Hallo mirage. Mit

Code:
  if QueryInterface(ITest, t) = S_OK then
  begin
    t.InterfaceMethode;
  end;
funktioniert es.

Allerdings steht in der OH ja, daß man gerade QueryInterface vermeiden und GetInterface nutzen soll. GetInterface macht eigentlich auch nur Folgendes:

Code:
  if GetInterface(IID, Obj) then
    Result := S_OK
  else
    Result := E_NOINTERFACE;
Was an der QueryInterface-Variante dann auch noch komisch ist, ist die Tatsache, daß ein danach ausgeführtes

Code:
  t := nil;
anscheinden nix bewirkt.

Jetzt bin ich echt verwirrt, soll ich jetzt direkt QueryInterface nehmen weil's funktioniert, obwohl die OH es nicht gut findet? Ich habe da etwas Angst, daß mir das später noch irgendwelche Probleme bereitet.

Danke im Voraus,

Fingolfin
  Mit Zitat antworten Zitat