<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>On 30 Jan 11, at 22:28 , cobines wrote:</div><div><div><br class="Apple-interchange-newline"><blockquote type="cite"><div>it is now a pointer to IBaseInterface, because of implicit QueryInterface?<br></div></blockquote>The reference changes because you have explicitly cast (the implementing object) to another interface.</div><div><br><blockquote type="cite"><div>So, I think I can compare interface variables but first I have to<br>bring them to the same interface using "as", for example to IUnknown.<font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#144FAE"><br></font></font></div></blockquote><div>Yes. This function will confirm the two provided interfaces are implemented by the same object...</div><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "><span style="color: rgb(37, 51, 215); ">function</span> EqIntf(a, b: IUnknown): Boolean;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(37, 51, 215); ">begin</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; "> Result := (a <span style="color: rgb(37, 51, 215); ">as</span> IUnknown) = (b <span style="color: rgb(37, 51, 215); ">as</span> IUnknown);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; color: rgb(37, 51, 215); ">end<span style="color: rgb(0, 0, 0); ">;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><br></div></div><div>Regards Andrew.</div><div><br><div></div></div></div></div></body></html>