An application that exposes programmable objects to other applications, which are called “automation clients.” Exposing programmable objects enables clients to “automate” certain fucntions by directly accessing those objects and using the services they make available. For example, a word processor might expose its spell-checking functionality so that other programs can use it.