Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Supports verständnis problem

  Alt 30. Mai 2014, 10:17
Warum sollte das auch nicht gehen?
Delphi-Quellcode:
IWmpEffects = interface( IUnknown )
...
end;

IWmpEffects2 = interface( IWmpEffects )
...
end;

var
  ObjInstance : IUnknown;
  _IWmpEffects : IWmpEffects;
  _IWmpEffects2 : IWmpEffects2;

// Wenn die Referenz in _IWmpEffects das Interface IID_IWMPEffects2 unterstützt
// dann stelle eine Interface-Referenz in _IWmpEffects2, ansonsten NIL
Supports( _IWmpEffects, IID_IWMPEffects2, _IWmpEffects2 );

// Wenn die Referenz in _IWmpEffects das Interface IID_IWMPEffects2 unterstützt
// dann stelle eine Interface-Referenz in ObjInstance, ansonsten NIL
Supports( _IWmpEffects, IID_IWMPEffects2, ObjInstance );

// Wenn die Referenz in _IWmpEffects das Interface IID_IWMPEffects unterstützt
// dann stelle eine Interface-Referenz in ObjInstance, ansonsten NIL
Supports( _IWmpEffects, IID_IWMPEffects, ObjInstance );
es geht ja auch das einfach so
Delphi-Quellcode:
ObjInstance := _IWmpEffects;
// oder
ObjInstance := _IWmpEffects2;
Fraglich ist ja nur, welchen Sinn Supports( _IWmpEffects, IID_IWMPEffects2, ObjInstance ); haben kann. Mit ObjInstance habe ich ja nur die Möglichkeit auf IUnknown zuzugreifen und müsste schon wieder mit Supports prüfen/casten.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (30. Mai 2014 um 10:22 Uhr)
  Mit Zitat antworten Zitat