# IMAGE Sample: Creates an ActiveX Control That Downloads Asynchronously

The IMAGE sample demonstrates how to use MFC to build an ActiveX control that is capable of downloading data asynchronously. The control has a property based on the CDataPathProperty class.

The IMAGE control can display a bitmap image from a BMP file (but does not support BMP files with greater than 8-bit color depth, so files containing more than 256 colors cannot be displayed.) The `ImagePath` property of the control provides a path to the image. If the image is large and the download takes place over a slow link, the asynchronous support built into the CDataPathProperty object managing the path becomes active and renders the data to the control's painting code without blocking other processing.

The control features a simple property page that gives access to the `ImagePath` property as well as the `AutoSize` property. The `AutoSize` property, if set to TRUE, automatically snaps the size of the control to the size of the image it contains. If the `AutoSize` property is FALSE, the automatic sizing is disabled.

The image control also implements a read-only Boolean property named `ReadyState`. `ReadyState` is TRUE if the control has successfully read and presented all the data in the image stream. `ReadyState` is FALSE until the control is fully initialized.

See Controls Samples for details on adding a control to the Toolbox, manually registering a control, and using the ActiveX Control Test Container.

Note
Some samples, such as this one, have not been modified to reflect the changes in the Visual C++ wizards, libraries, and compiler, but still demonstrate how to complete your desired task.

Security Note
This sample code is provided to illustrate a concept and should not be used in applications or Web sites, as it may not illustrate the safest coding practices.