Microsoft Foundation Classes (MFC)



The C++ class library that
Microsoft provides with its C++ compiler to assist programmers in
creating Windows-based applications. MFC hides the fundamental Windows
API in class hierarchies so that programmers can write a Windows-based
application without needing to know the details of the native Windows
API.



Active Template Library (ATL)



A C++ template library
used to create ActiveX servers and other Component Object Model (COM)
objects. ActiveX controls created with ATL are generally smaller and
faster than those created with the Microsoft Foundation Classes.



Component Object Model (COM)



An
open architecture for cross-platform development of client/server
applications. It is based on object-oriented technology as agreed upon
by Digital Equipment Corporation and Microsoft Corporation. COM defines
the interface, similar to an abstract base class, IUnknown, from which
all COM-compatible classes are derived.




COM - It's a technology. ATL and MFC can help implement COM features.




MFC - Library/Framework used to build Win32 apps. Typically you will use it for building desktop applications.

ATL - Framework which helps building COM application. It can be used to build desktop applications as well but typically you will use to build

ActiveX controls(uses COM techonology) or other COM related stuff.

.NET - Its the latest techonology from MSFT. You dont need to use MFC, ATL or COM if you use .Net. .Net is much much more than this though.



ActiveX



A
set of technologies that enable software components to interact with
one another in a networked environment, regardless of the language in
which the components were created. ActiveX, which was developed as a
proposed standard by Microsoft in the mid 1990s and is currently
administered by the Open Group, is built on Microsoft's Component
Object Model (COM). Currently, ActiveX is used primarily to develop
interactive content for the World Wide Web, although it can be used in
desktop applications and other applications. ActiveX controls can be
embedded in Web pages to produce animation and other multimedia
effects, interactive objects, and sophisticated applications. See also
COM.



ActiveX client



An application or tool that calls an ActiveX object.



ActiveX object



An exposed object of the Component Object Model (COM).