There are several ways to create a COM object. Fortunately, ATL provides creators flexible enough to be used in each situation.
Introduction Let's start at the beginning.
The combination of these macros determines the code to create the object. Before we take a closer look, let's first investigate how ATL implements IUnknown . However, an ATL class does not implement IUnknown . These classes are used by passing the ATL class as the template parameter. The template then derives from the parameter.