A concrete implementation of a COM object may implement multiple interfaces. If you have a pointer to the concrete implementation, and you pass to a function that expects an IUnknown, you will probably get an error complaining that IUnknown is an ambiguous base, The post I’d like an IUnknown, I know you have many, I’ll take any of them appeared first on The Old New Thing....