Yes, CComVariant was intended to be a direct replacement for VARIANT. It is based on the structure of options and does not add any virtual members and fields (and no virtual destructor) to ensure that the memory layout is the same. Many small helper classes like ATL / MFC such as CRect, CPoint, etc.
source share