What Is the ATL Control Hosting API?

ATL's control hosting API is the set of functions that allows any window to act as an ActiveX control container. These functions can be statically or dynamically linked into your project since they are available as source code and exposed by ATL.dll. The control hosting functions are listed in the table below.

Function Description
AtlAxAttachControl Creates a host object, connects it to the supplied window, then attaches an existing control.
AtlAxCreateControl Creates a host object, connects it to the supplied window, then loads a control.
AtlAxCreateControlEx Creates a host object, connects it to the supplied window, then loads a control (also allows event sinks to be set up).
AtlAxCreateDialog Creates a modeless dialog box from a dialog resource and returns the window handle.
AtlAxDialogBox Creates a modal dialog box from a dialog resource.
AtlAxGetControl Returns the IUnknown interface pointer of the control hosted in a window.
AtlAxGetHost Returns the IUnknown interface pointer of the host object connected to a window.
AtlAxWinInit Initializes the control hosting code.
AtlAxWinTerm Uninitializes the control hosting code.

The HWND parameters in the first three functions must be an existing window of (almost) any type. If you call any of these three functions explicitly (typically, you won't have to), do not pass a handle to a window that's already acting as a host (if you do, the existing host object won't be freed).

The first five functions call AtlAxWinInit implicitly.

Note   The control hosting API forms the foundation of ATL's support for ActiveX control containment. However, there is usually little need to call these functions directly if you take advantage of or make full use of ATL's wrapper classes. For more information, see How Do I Create a Control Instance? and Which ATL Classes Facilitate ActiveX Control Containment?

ATL Control Containment FAQ