If interface A is a (direct or indirect) base of interface B, the following assignments do not require an explicit C++ cast:
B_var cannot be assigned to A_var or a compile-time error occurs. To assign B_var to A_var, use B::_duplicate on B_var to create B_ptr and assign B_ptr to A_var.