Supports the WRL infrastructure and is not intended to be used directly from your code.
Makes a type that is equivalent to an IUnknown-based type, but has nonvirtual QueryInterface, AddRef, and Release member functions.
By default, COM methods provide virtual QueryInterface, AddRef, and Release methods. However, ComPtr doesn't require the overhead of virtual methods. RemoveIUnknown eliminates that overhead by providing private, nonvirtual QueryInterface, AddRef, and Release methods.
A synonym for a type that is equivalent to template parameter T but has nonvirtual IUnknown members.