In tB, here's a handy way to monitor objects for QueryInterface requests that aren't implemented:

Code:
[InterfaceId("D97ED766-D090-45C7-900C-C4A7B7612B09")]
Private Interface IUnsupportedInterface Extends stdole.IUnknown
    Sub UnsupportedInterfaceRequested(ByRef iid As GUID, ByRef out As stdole.IUnknown)
End Interface
Add this interface to your class using `Implements IUnsupportedInterface` as the final Implements statement, and then `UnsupportedInterfaceRequested` will be triggered when any request comes in that isn't implemented.