The Win32 application programming interface (API) provides building blocks used by applications written for the Microsoft Windows operating system family. The Win32 API defines the 32-bit members of the Windows family from the programmer's point of view. Some members of the Windows family use the entire Win32 API, while others use subsets. For details, see Windows 95/98/Me Limitations.
The Microsoft Foundation Class Library (MFC) encapsulates, or "wraps," much (but not all) of the Win32 API. MFC versions 2.x and earlier encapsulated the 16-bit Windows API. MFC supplies classes representing key Windows objects, such as windows, dialog boxes, brushes, pens, and fonts. The member functions of these classes wrap most of the important Win32 API functions associated with the encapsulated object. The MFC class member function calls the Win32 API function, and might add functionality.
The Active Template Library (ATL) is a set of template-based C++ classes that let you create small, fast Component Object Model (COM) objects. ATL wraps Win32 and C run-time library APIs, but does not wrap Win32 to the extent that MFC does.
With Visual C++, you can program for Windows using either C or C++ and the Win32 API; using C++ and MFC; or using C++ and ATL. Visual C++ includes documentation for the latter two cases.
You should refer to Win32 API in the Platform SDK documentation for information about Win32 programming.