In looking at how the Workplace Shell is implemented, it is useful to separate the shell from the underlying workplace facilities, since the same facilities are needed by both the shell and by all applications which run under the shell. These facilities include:
These functions are implemented as WIN APIs which can be accessed from any language that has appropriate bindings. For example, "WinCreateObject" can be called from a C program. Some of these APIs, such as "SysRegisterObjectClass", have been mapped to a new version of REXX,
One of the most important points to make here is that, from an application's viewpoint, the WPS can be totally invisible provided the application only uses objects which are already defined in the WPS class hierarchy, such as data files. For example, templates for data files can be created and associated with the program.
Applications written for previous versions of OS/2 may take advantage of the basic functions supported by the class under which they are registered (typically WPProgram). For instance, a program can be started by dropping a data file on the program icon providing the program will accept a file name as a parameter.