Many novice COM programmers are confused by the fact that you can't ask an IUnknown pointer what interfaces it supports--you can only ask whether it supports a given interface. Where did Microsoft get this idea?