'OLE Automation' was developed to permit the (remote) control of other applications on the same computer. Applications which expose their functionality using OLE Automation are known as OLE Automation servers, and could be automated by code running in a completely separate application, known as OLE Automation clients or controllers.
OLE Automation servers exposed their functionality through structured object models, which are listings of the internal functions, methods and properties of the application object. All Microsoft Office applications are OLE Automation servers to some extent, and can be subsequently controlled by any OLE Automation compliant controller, using the appropriate syntax to manipulate and control the relevant application object model.
Not all applications that support OLE services support OLE Automation. For example, many products support drag-and-drop, and object linking and embedding, but do not support OLE Automation. Linking and embedding allow the user to access the object, whereas OLE Automation allows one application to control another application, possibly with minimal or no user interaction.