MFC is an easier route if you are new to COM stuff: wizards are better and more useful. But it is much less flexible than ATL, which is probably not a problem if you just use a pair of simpole interfaces to implement.
In addition, IIRC MFC does not support two interfaces. Dual interfaces are interesting in two cases: - Performance is a problem. For example, a short method call is executed millions of times. - Users of objects are programmed in C ++. Invoking a native interface is easier in C ++ than invoking an automation interface.
In conclusion, the dual interfaces are cool, but they are really interesting only if you can download them for free. This means that you are using a framework that supports them. If you plan to work a lot on the basis of COM, it is interesting to explore in ATL and deeper knowledge of COM. If you just need to provide some simple MFC-based objects, just stick with MFC.
source share