What Is the ATL Control-Hosting API?

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at 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 ATL90.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.
AtlAxCreateControlLic Creates a licensed ActiveX control, initializes it, and hosts it in the specified window, similar to AtlAxCreateControl.
AtlAxCreateControlEx Creates a host object, connects it to the supplied window, then loads a control (also allows event sinks to be set up).
AtlAxCreateControlLicEx Creates a licensed ActiveX control, initializes it, and hosts it in the specified window, similar to AtlAxCreateControlLic.
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 seven 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 [Which ATL Classes Facilitate ActiveX Control Containment] $$brokenlink$$(../Topic/Which%20ATL%20Classes%20Facilitate%20ActiveX%20Control%20Containment.md).

See Also

Control Containment FAQ f