Outside the Workplace Shell environment, objects are DLLs that consist of data and code that operates on that data when objects are instantiated in the Workplace Shell run-time environment. Workplace Shell objects have no meaning outside the Workplace Shell environment. Workplace Shell classes take form when the class is registered with the Workplace Shell and the class is instantiated. The Workplace Shell and SOM provide the underlying code (predefined Workplace Shell objects' methods) that supports an object.
The Workplace Shell calls the appropriate object's methods when the user interacts with the object. In this sense, the Workplace Shell is the client of all Workplace Shell objects. The Workplace Shell manipulates the object (its code) on behalf of its users.
On the other hand, applications cannot call Workplace Shell objects' methods directly. They are not clients of Workplace Shell objects, in the same sense that applications can be clients of SOM objects. Workplace Shell objects are derived from the WPObject class, which, in turn, is derived from the SOMObject class. They share all the features of SOM objects-encapsulation, inheritance, and polymorphism-but only the Workplace Shell can directly manipulate them.
Because there are times when applications might need to effect changes to the Desktop and objects on the Desktop, the Workplace Shell provides functions that permit you to proceed these changes.