I would do the following Var Descendant : IFirstDecendant; Begin NewObject = TNewClass.Create; //I am going with the assumption that your //NewObject is know to be an interfaced object If (NewObject as IInterface).QueryInterface(IFirstDescendant,Descendant)=0 then //Code here for first decendant object end;
HTH Ben -----Original Message----- From: Todd Martin [mailto:[EMAIL PROTECTED] Sent: Friday, 13 June 2003 1:53 p.m. To: Multiple recipients of list delphi Subject: [DUG]: Interface Inheritance Hi Does anyone know if there's a way to test for interface inheritance? For example IFirstDescendant = interface(IInterface); ISecondDescendant = interface(IFirstDescendant); TNewClass = class(TInterfacedObject,ISecondDescendant); NewObject = TNewClass.Create; is there a way to see whether NewObject supports the interface "IFirstDescendant" NewObject.GetInterface(IFirstDescendant,Descendant) returns a nil pointer for Descendant. I'm thinking the VTable entry for the ISecondDescendant interface, might link back to IFirstDescendant somehow. Todd. ------------------------------------------------------------------------ --- New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] Website: http://www.delphi.org.nz To UnSub, send email to: [EMAIL PROTECTED] with body of "unsubscribe delphi" Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ --------------------------------------------------------------------------- New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] Website: http://www.delphi.org.nz To UnSub, send email to: [EMAIL PROTECTED] with body of "unsubscribe delphi" Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/