We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.


These articles explain the fundamentals of OLE programming using MFC. MFC provides the easiest way to write programs that use OLE:

  • To use OLE visual editing (in-place activation).

  • To work as OLE containers or servers.

  • To implement drag-and-drop functionality.

  • To work with date and time data.

  • To manage the state data of MFC modules, including exported DLL function entry points, OLE/COM interface entry points, and window procedure entry points.

You can also use Automation or Remote Automation to operate another program from your program.


The term OLE denotes the technologies associated with linking and embedding, including OLE containers, OLE servers, OLE items, in-place activation (or visual editing), trackers, drag and drop, and menu merging. The term Active applies to the Component Object Model (COM) and COM-based objects such as ActiveX controls. OLE Automation is now called Automation.

OLE Background

Discusses OLE and provides conceptual information about how it works.


Describes the role of activation in editing OLE items.


Provides links to using containers in OLE.

Data Objects and Data Sources

Provides links to topics discussing the use of the COleDataObject and COleDataSource classes.

Drag and Drop

Discusses using copying and pasting with OLE.

OLE Menus and Resources

Explains the use of menus and resources in MFC OLE document applications.


Discusses server installation and initialization.


Describes how to create OLE items (or components) for use by container applications.


Provides information about the CRectTracker class, which provides a graphical interface to enable users to interact with OLE client items.

Connection Points

Explains how to implement connection points (formerly known as OLE connection points) using the MFC classes CCmdTarget and CConnectionPoint.

Container/Server COM Components

Describes the steps necessary to incorporate optional advanced features into existing container applications.

The Component Object Model

Describes using OLE without MFC.

Other Resources